codec-from-scratch
go-m3u8
Our great sponsors
codec-from-scratch | go-m3u8 | |
---|---|---|
5 | 4 | |
244 | 112 | |
- | - | |
2.0 | 0.0 | |
about 1 year ago | over 1 year ago | |
Go | Go | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
codec-from-scratch
-
Video Codec in 100 lines of Rust
I discovered this while looking for more resources for my own codec from scratch project: https://github.com/kevmo314/codec-from-scratch
-
QOIR: A fast, simple, lossless image file format
> For example, if you have a relatively wimpy camera that streams out a 160×120 grayscale image, it might be fun to see how far you can push something like combining:
I'm typically not one for self-promo but I did this with video and you can get 90% compression with exactly those three basic steps. RGB -> YUV420, delta encoding, then basically-upgraded-RLE. You can find the guide here: https://github.com/kevmo314/codec-from-scratch
- Video Encoding from Scratch
go-m3u8
-
AV1 live streaming with m3u8/HLS?
Apple is a part of AOMedia now. I think it will happen eventually. Also HLS has an IETF entry (RFC 8216).
-
EXT-X-CUE-OUT vs EXT-X-DISCONTINUITY
The reference standard for ad markers in HLS manifest files is EXT-X-DATERANGE in the HLS RFC. https://tools.ietf.org/html/rfc8216#section-4.3.2.7 Unfortunately, very few systems support the EXT-X-DATERANGE markup format in the RFC as yet since vendor implementations exist.
-
When adding caption to HLS, I get errors. Unable to find mapping variant stream av_interleaved_write_frame(): Cannot allocate memory
Recommend taking a look at SUBTITLES sections 3.5 and 4.3.4.1 of https://tools.ietf.org/html/rfc8216. I can see how multi-language could get messy with the FFmpeg implementation, but it is relatively new functionality.
-
It... YouTube does..... What?
EDIT: they do use .ts and m3u8 but a bit fancier .m2ts (maybe mp4s as well?) and m3u8, at the very least for livestreaming. src and the standard it is based on.
What are some alternatives?
gamut - Image encoding and decoding library for D. Detailed layout control. Experimental codec QOIX.
rtsp-simple-server - Also known as rtsp-simple-server. ready-to-use RTSP / RTMP / LL-HLS / WebRTC server and proxy that allows to read, publish and proxy video and audio streams. [Moved to: https://github.com/aler9/mediamtx]
jcodec - JCodec main repo
go-mpd - Go library for parsing and generating MPEG-DASH Media Presentation Description (MPD) files
less-avc - less Advanced Video Coding (H.264) encoding
Pion WebRTC - Pure Go implementation of the WebRTC API
rtsp-stream - Out of box solution for RTSP - HLS live stream transcoding. Makes RTSP easy to play in browsers.
go-libav - Go language bindings for ffmpeg libraries
IPTV-Channels - A collection of IPTV channels that can be accessed across the world!
go-astits - Demux and mux MPEG Transport Streams (.ts) natively in GO
libvlc-go - Go bindings for libVLC and high-level media player interface
goav - Golang bindings for FFmpeg (This repository is no longer maintained)