Description
This is still a work in progress. This package still lacks a lot of the libav's functionality. Please expect many additions/changes in the future.
go-libav alternatives and similar packages
Based on the "Video" category.
Alternatively, view go-libav alternatives based on common mentions on social networks and blogs.
-
go-m3u8
Parse and generate m3u8 playlists for Apple HTTP Live Streaming (HLS) in Golang (ported from gem https://github.com/sethdeckard/m3u8)
CodeRabbit: AI Code Reviews for Developers
Do you think we are missing an alternative of go-libav or a related project?
Popular Comparisons
README
go-libav
Go language bindings for ffmpeg libraries.
This is still a work in progress. This package still lacks a lot of the libav's functionality. Please expect many additions/changes in the future.
Why
I am aware of other Go language bindings for ffmpeg. The reason I decided to build go-libav was because I wanted to have:
- A more Object-Oriented Programming approach.
- A more Go-like approach to error handling.
- Easier garbage collection.
Installation
First, install ffmpeg 3.x libraries on your system.
If you need ffmpeg2.x support, use ffmpeg2 branch (deprecated).
Then, open the terminal and install the following packages:
go get -u github.com/imkira/go-libav/avcodec
go get -u github.com/imkira/go-libav/avfilter
go get -u github.com/imkira/go-libav/avformat
go get -u github.com/imkira/go-libav/avutil
Documentation
For advanced usage, make sure to check the following documentation:
Examples
Please check here for examples.
FFmpeg versions
This library supports multiple versions of FFmpeg 3.x, to build, use
go build -tags ffmpeg33
go test -tags ffmpeg33
go run -tags ffmpeg33 examples/mediainfo/mediainfo.go
Use ffmpeg30
for FFmpeg 3.0 API, ffmpeg33
for FFmpeg 3.3 API.
Contribute
Found a bug? Want to contribute and add a new feature?
Please fork this project and send me a pull request!
License
go-libav is licensed under the MIT license:
www.opensource.org/licenses/MIT
Copyright
Copyright (c) 2015 Mario Freitas. See LICENSE for further details.
*Note that all licence references and agreements mentioned in the go-libav README section above
are relevant to that project's source code only.