FFmpeg 的 Golang 绑定。
全面绑定到 ffmpeg 视频/音频操作库。
文档
用法
import "github.com/giorgisio/goav/avformat" func main() { filename := "sample.mp4" // Register all formats and codecs avformat.AvRegisterAll() ctx := avformat.AvformatAllocContext() // Open video file if avformat.AvformatOpenInput(&ctx, filename, nil, nil) != 0 { log.Println("Error: Couldn't open file.") return } // Retrieve stream information if ctx.AvformatFindStreamInfo(nil) < 0 { log.Println("Error: Couldn't find stream information.") // Close input file and free context ctx.AvformatCloseInput() return } //... }
库
- avcodec 对应于 ffmpeg 库:libavcodec [提供更多编解码器的实现]
- avformat 对应于 ffmpeg 库:libavformat [实现流媒体协议、容器格式和基本的I/O访问]。
- avutil 对应于 ffmpeg 库:libavutil [包括哈希器、解压器和其他实用功能] 。
- avfilter 对应于 ffmpeg 库:libavfilter [提供了一种通过过滤器链来改变已解码的音频和视频的方法]。
- avdevice 对应于 ffmpeg 库:libavdevice [提供了一个访问捕获和播放设备的抽象概念] 。
- swresample 对应 ffmpeg 库:libswresample [实现音频混合和重采样例程]。
- swscale 对应于 ffmpeg 库:libswscale [实现颜色转换和缩放例程]。
安装
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libsdl1.2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texi2html zlib1g-dev sudo apt install -y libavdevice-dev libavfilter-dev libswscale-dev libavcodec-dev libavformat-dev libswresample-dev libavutil-dev sudo apt-get install yasm export FFMPEG_ROOT=$HOME/ffmpeg export CGO_LDFLAGS="-L$FFMPEG_ROOT/lib/ -lavcodec -lavformat -lavutil -lswscale -lswresample -lavdevice -lavfilter" export CGO_CFLAGS="-I$FFMPEG_ROOT/include" export LD_LIBRARY_PATH=$HOME/ffmpeg/lib
go get github.com/giorgisio/goav
更多例子
编码示例可在 examples/ 目录下找到。
说明
贡献
- Fork 这个 Repo 并创建你自己的特性分支。
- 遵循标准的 Go 惯例
- 测试您的代码。
- 创建拉请求
待办事项
- 返回错误
- 垃圾收集
- 审查每个库中包含/排除的函数
- Go 测试
- 重组包的可能性
- Tutorial01.c
- 更多教程
许可证
该库采用 MIT 许可。
(The first version translated by vz on 2020.09.09)