init
commit
2d84df63dc
@ -0,0 +1,77 @@
|
||||
# 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](https://pkg.go.dev/github.com/Danile71/joy4/av#Demuxer) [example](https://github.com/Danile71/joy4/blob/master/examples/open_probe_file/main.go))
|
||||
- Audio Decoder ([doc](https://pkg.go.dev/github.com/Danile71/joy4/av#AudioDecoder) [example](https://github.com/Danile71/joy4/blob/master/examples/audio_decode/main.go))
|
||||
- Transcoding ([doc](https://pkg.go.dev/github.com/Danile71/joy4/av/transcode) [example](https://github.com/Danile71/joy4/blob/master/examples/transcode/main.go))
|
||||
- Streaming server ([example](https://github.com/Danile71/joy4/blob/master/examples/http_flv_and_rtmp_server/main.go))
|
||||
|
||||
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](https://pkg.go.dev/github.com/Danile71/joy4/av/pubsub))
|
||||
|
||||
- Customize publisher buffer time and subscriber read position
|
||||
|
||||
|
||||
- Multiple channels live streaming ([example](https://github.com/Danile71/joy4/blob/master/examples/rtmp_server_channels/main.go))
|
||||
|
||||
Packet filters ([doc](https://pkg.go.dev/github.com/Danile71/joy4/av/pktque))
|
||||
|
||||
- Wait first keyframe
|
||||
- Fix timestamp
|
||||
- Make A/V sync
|
||||
- Customize ([example](https://github.com/Danile71/joy4/blob/master/examples/rtmp_server_channels/main.go#L19))
|
||||
|
||||
FFMPEG Golang-style binding ([doc](https://pkg.go.dev/github.com/Danile71/joy4/cgo/ffmpeg))
|
||||
- Audio Encoder / Decoder
|
||||
- Video Decoder
|
||||
- Audio Resampler
|
||||
|
||||
Support codec and container parsers:
|
||||
|
||||
- H264 SPS/PPS/AVCDecoderConfigure parser ([doc](https://pkg.go.dev/github.com/Danile71/joy4/codec/h264parser))
|
||||
- AAC ADTSHeader/MPEG4AudioConfig parser ([doc](https://pkg.go.dev/github.com/Danile71/joy4/codec/aacparser))
|
||||
- MP4 Atoms parser ([doc](https://pkg.go.dev/github.com/Danile71/joy4/format/mp4/mp4io))
|
||||
- FLV AMF0 object parser ([doc](https://pkg.go.dev/github.com/Danile71/joy4/format/flv/flvio))
|
||||
|
||||
# Requirements
|
||||
|
||||
Go version >= 1.6
|
||||
|
||||
ffmpeg version >= 3.0 (optional)
|
||||
|
||||
# TODO
|
||||
|
||||
HLS / MPEG-DASH Server
|
||||
|
||||
ffmpeg.VideoEncoder / ffmpeg.SWScale
|
||||
|
||||
# License
|
||||
|
||||
MIT
|
Loading…
Reference in New Issue