// the find
nareix/joy4
Golang audio/video library and streaming server
joy4 is a Go library for reading, writing, and proxying audio/video streams — RTMP server, RTSP client, MP4/FLV/TS muxers/demuxers, and CGo bindings to ffmpeg. It's for developers building live streaming infrastructure in Go without wanting to shell out to ffmpeg for everything. The README itself tells you to use joy5 instead.
The interface design is genuinely clean — Muxer/Demuxer abstractions mean you can pipe between formats in a handful of lines. The packet filter chain (keyframe waiting, timestamp fixing, A/V sync) solves real problems you'd otherwise hand-roll. H264 and AAC bitstream parsers are included as standalone packages, which is useful even if you don't use the rest. The pubsub queue with configurable buffer time is a solid foundation for a multi-subscriber live relay.
Abandoned — last commit 2021, and the author's own README says to migrate to joy5, so you'd be adopting a dead library with a known successor. No HLS or MPEG-DASH support despite being in the TODO since the beginning; anything browser-native is out. The ffmpeg CGo dependency is a build pain: cross-compilation breaks, static linking is messy, and the bindings only cover audio decode/encode plus video decode — no video encoder. MP4 muxer has no fragmented MP4 support, so live-to-MP4 recording isn't really viable.