avgo
is a Golang library providing C bindings for ffmpeg
forked from bubbajoe/avgo
It's only compatible with ffmpeg
n4.4
.
Its main goals are to:
- provide a better GO idiomatic API
- typed constants and flags
- standard error pattern
- struct-based functions
- use of common go interfaces
- provide the GO version of ffmpeg examples
- be fully tested
- be fully documented
- be fully compatible with all
ffmpeg
libs
Examples are located in the examples directory and mirror as much as possible the ffmpeg examples.
name | avgo | ffmpeg |
---|---|---|
Demuxing/Decoding | see | see |
Filtering | see | see |
Remuxing | see | see |
Transcoding | see | see |
Resampling | TODO | TODO |
AVIO | TODO | TODO |
GOCV | TODO | TODO |
Tip: you can use the video sample located in the testdata
directory for your tests
If you don't know how to install ffmpeg
, you can use the following to install it from source:
$ make install-ffmpeg
ffmpeg
will be built from source in a directory named tmp
and located in you working directory
For your GO code to pick up ffmpeg
dependency automatically, you'll need to add the following environment variables:
(don't forget to replace {{ path to your working directory }}
with the absolute path to your working directory)
export CGO_LDFLAGS="-L{{ path to your working directory }}/tmp/n4.4/lib/",
export CGO_CXXFLAGS="-I{{ path to your working directory }}/tmp/n4.4/include/",
export CGO_CFLAGS="-I{{ path to your working directory }}/tmp/n4.4/include/",
export PKG_CONFIG_PATH="{{ path to your working directory }}/tmp/n4.4/lib/pkgconfig",