JOY4
Golang audio/video library and streaming server
JOY4 is powerful library written in golang, well-designed interface makes a few lines of code can do a lot of things such as reading, writing, transcoding among variety media formats, or setting up high-performance live streaming server.
Features
Well-designed and easy-to-use interfaces:
- Muxer / Demuxer (doc example)
- Audio Decoder (doc example)
- Transcoding (doc example)
- Streaming server (example)
Support container formats:
- MP4
- MPEG-TS
- FLV
- AAC (ADTS)
RTSP Client
- High level camera bug tolerance
- Support STAP-A
RTMP Client
- Support publishing to nginx-rtmp-server
- Support playing
RTMP / HTTP-FLV Server
- Support publishing clients: OBS / ffmpeg / Flash Player (>8)
- Support playing clients: Flash Player 11 / VLC / ffplay / mpv
- High performance
Publisher-subscriber packet buffer queue (doc)
-
Customize publisher buffer time and subscriber read position
-
Multiple channels live streaming (example)
Packet filters (doc)
- Wait first keyframe
- Fix timestamp
- Make A/V sync
- Customize (example)
FFMPEG Golang-style binding (doc)
- Audio Encoder / Decoder
- Video Decoder
- Audio Resampler
Support codec and container parsers:
- H264 SPS/PPS/AVCDecoderConfigure parser (doc)
- AAC ADTSHeader/MPEG4AudioConfig parser (doc)
- MP4 Atoms parser (doc)
- FLV AMF0 object parser (doc)
Requirements
Go version >= 1.6
ffmpeg version >= 3.0 (optional)
TODO
HLS / MPEG-DASH Server
ffmpeg.VideoEncoder / ffmpeg.SWScale
License
MIT