Go bindings for FFmpeg libraries enabling video/audio manipulation in Go applications.
goav is a Go binding for FFmpeg that provides comprehensive access to FFmpeg's multimedia libraries, enabling Go developers to manipulate video and audio files, streams, and devices. It wraps core FFmpeg components like libavcodec, libavformat, and libavutil, allowing tasks such as format conversion, codec handling, filtering, and resampling directly from Go applications.
Go developers who need to integrate advanced video/audio processing, streaming, or multimedia manipulation capabilities into their applications without leaving the Go ecosystem.
It offers a direct, consistent mapping to FFmpeg's C API, making it easier for developers familiar with FFmpeg to transition to Go while providing powerful multimedia functionality that is otherwise complex to implement natively in Go.
Golang bindings for FFmpeg (This repository is no longer maintained)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Wraps all core FFmpeg libraries like libavcodec and libavformat, enabling encoding, decoding, filtering, and streaming directly from Go code.
Function names match the underlying FFmpeg C API, easing adoption for developers already experienced with FFmpeg.
Supports audio/video processing across codecs, formats, devices, and filters, as evidenced by the inclusion of libraries like avfilter and swresample.
Includes examples in the repository, such as basic file opening with avformat, to help users get started quickly.
The README states it is no longer maintained, meaning no bug fixes, security updates, or compatibility with newer FFmpeg versions.
Requires manual setup of FFmpeg dependencies, environment variables, and system libraries, which can be error-prone and platform-specific.
The TODO list highlights missing error handling and garbage collection, leading to non-idiomatic Go code and potential memory issues.
Go tests are listed as TODO, indicating untested bindings that may introduce instability or bugs in production use.