JOY4 是用 golang 编写的强大库,精心设计的界面使得几行代码可以做很多事情,例如读取、写入、在各种媒体格式之间转码,或者设置高性能的直播服务器。
Go to file
2023-11-20 09:21:57 +01:00
.idea fix for timeout + add h265 parser 2022-04-07 22:32:35 +02:00
av fix: retry with and without backchannel, some cameras might fail on this if not supported 2023-11-20 09:21:57 +01:00
cgo/ffmpeg Add support for Audio Backchannel, expand codec information to take into account direction 2023-11-16 23:35:21 +01:00
codec Add support for Audio Backchannel, expand codec information to take into account direction 2023-11-16 23:35:21 +01:00
examples fmp4: add muxer for fragmented MP4's. 2021-08-03 23:19:57 +02:00
format fix: retry with and without backchannel, some cameras might fail on this if not supported 2023-11-20 09:21:57 +01:00
utils/bits change logic, add possibility to trail with a "lastpacket" + reduce bufio.writer 1 mb 2023-01-29 16:40:38 +01:00
doc.go add doc.go 2016-08-08 17:12:04 +08:00
go.mod Create go.mod 2021-11-18 16:40:53 +01:00
LICENSE Add license file to make it more official 2017-02-24 18:30:14 -05:00
README.md new repo 2019-08-27 09:50:31 +02:00

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:

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