joy4

package module
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2021 License: MIT Imports: 11 Imported by: 0

README

PLEASE USE joy5 INSTEAD

joy5

  • High performance Copy-on-write gop cache code
  • Better av.Packet design code

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

Documentation

Overview

Package joy4 is a 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.

  • @Description:
  • @Author: dotwoo@gmail.com
  • @Github: https://github.com/dotwoo
  • @Date: 2021-08-02 13:30:47
  • @FilePath: /joy4/stream_capture.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Capture

func Capture(streamURL string) (out []byte, err error)

func StreamRead

func StreamRead(ctx context.Context, streamURL string, capturePerSecond int, brokeErrs int, imgCh chan image.Image) (err error)

Types

This section is empty.

Directories

Path Synopsis
av
Package av defines basic interfaces and data structures of container demux/mux and audio encode/decode.
Package av defines basic interfaces and data structures of container demux/mux and audio encode/decode.
pktque
Package pktque provides packet Filter interface and structures used by other components.
Package pktque provides packet Filter interface and structures used by other components.
pubsub
Packege pubsub implements publisher-subscribers model used in multi-channel streaming.
Packege pubsub implements publisher-subscribers model used in multi-channel streaming.
transcode
Package transcoder implements Transcoder based on Muxer/Demuxer and AudioEncoder/AudioDecoder interface.
Package transcoder implements Transcoder based on Muxer/Demuxer and AudioEncoder/AudioDecoder interface.
cgo
ffmpeg
* @Description: * @Author: dotwoo@gmail.com * @Github: https://github.com/dotwoo * @Date: 2021-07-22 13:10:06 * @FilePath: /joy4/cgo/ffmpeg/ffmpeg.go
* @Description: * @Author: dotwoo@gmail.com * @Github: https://github.com/dotwoo * @Date: 2021-07-22 13:10:06 * @FilePath: /joy4/cgo/ffmpeg/ffmpeg.go
h264parser
* @Description: * @Author: dotwoo@gmail.com * @Github: https://github.com/dotwoo * @Date: 2021-07-29 16:46:02 * @FilePath: /joy4/codec/h264parser/parser.go
* @Description: * @Author: dotwoo@gmail.com * @Github: https://github.com/dotwoo * @Date: 2021-07-29 16:46:02 * @FilePath: /joy4/codec/h264parser/parser.go
* @Description: * @Author: dotwoo@gmail.com * @Github: https://github.com/dotwoo * @Date: 2021-07-22 13:10:06 * @FilePath: /joy4/examples/main.go
* @Description: * @Author: dotwoo@gmail.com * @Github: https://github.com/dotwoo * @Date: 2021-07-22 13:10:06 * @FilePath: /joy4/examples/main.go
aac
flv
mp4
ts
utils

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL