Go bindings for FFmpeg and libav with an idiomatic API, full test coverage, and mirrored examples.
astiav is a Go library that provides C bindings for FFmpeg and libav, allowing developers to perform multimedia processing tasks like encoding, decoding, filtering, and remuxing directly in Go. It solves the problem of integrating low-level multimedia libraries into Go applications by offering an idiomatic API that mirrors FFmpeg's functionality.
Go developers working on multimedia applications, such as video processing tools, streaming services, or audio manipulation software, who need reliable and performant bindings to FFmpeg.
Developers choose astiav for its Go-idiomatic design, comprehensive test coverage, and direct mapping to FFmpeg examples, which reduces the learning curve and ensures correctness compared to other bindings.
Golang ffmpeg and libav C bindings
Uses standard Go error patterns, typed constants, and struct-based functions for a natural developer experience, as highlighted in the README's goals.
Includes Go versions of official FFmpeg examples covering demuxing, decoding, filtering, and hardware acceleration, providing practical starting points for common tasks.
Backed by continuous integration and high test coverage, ensuring reliability in multimedia operations, as evidenced by the Coveralls badge and test workflow.
Each method is documented with links to corresponding C functions in FFmpeg's source, serving as an authoritative reference for deep dives into underlying behavior.
Only compatible with FFmpeg n8.0, restricting access to newer features and fixes, which may necessitate forks or workarounds for evolving projects.
Breaking changes are introduced without using the Go v2 pattern, as stated in the README, leading to potential instability and maintenance overhead for users.
Requires manual installation of FFmpeg from source and environment variable configuration, adding significant setup time compared to package-managed alternatives.
Golang bindings for FFmpeg (This repository is no longer maintained)
Go Media Framework
RTSP client and server library for the Go programming language
Manipulate subtitles in GO (.srt, .ssa/.ass, .stl, .ttml, .vtt (webvtt), teletext, etc.)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.