astiav
is a Golang library providing C bindings for ffmpeg
It's only compatible with ffmpeg
n4.4.1
.
Its main goals are to:
- provide a better GO idiomatic API
- standard error pattern
- typed constants and flags
- struct-based functions
- ...
- provide the GO version of ffmpeg examples
- be fully tested
Examples are located in the examples directory and mirror as much as possible the ffmpeg examples.
name | astiav | ffmpeg |
---|---|---|
Demuxing/Decoding | see | see |
Filtering | see | see |
Remuxing | see | see |
Transcoding | see | see |
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.1/lib/",
export CGO_CXXFLAGS="-I{{ path to your working directory }}/tmp/n4.4.1/include/",
export PKG_CONFIG_PATH="{{ path to your working directory }}/tmp/n4.4.1/lib/pkgconfig",
After maintaining for several years the most starred fork of goav, I've decided to write from scratch my own C bindings to fix most of the problems I still encountered using goav
.