An attempt at making a transcoder a la ffmpeg in rust
Find a file
2023-10-26 16:35:08 +05:00
src every 30 frames, one conversion to jpg done 2023-10-26 16:35:08 +05:00
Cargo.toml init 2023-10-05 14:18:14 +05:00
README.md added README 2023-10-26 14:01:14 +05:00

hls-transcoder-2

Extremely basic hls segmenter for live video written in Rust. 1st was scrapped since I had 0 clue what I was doing at all. Singular clue has since been acquired. Would not recommend using or expanding on this for anything other than figuring out the how and what.

Currently only works with FLV input (so RTMP only), H264 and AAC codec inputs, and outputs AV1 and Opus codecs in a fragmented mp4 playlist. Decoding and encoding happens via 3rd party programs accessible on $PATH. (ffmpeg and faad for decoding, SvtEncAv1App and opusenc for encoding). Would use lib versions, but would only do so for a proper project using extern crates

Uses only uses Rust's stdlib.

Not intended for actual use. Will have limitations and some aspects are just not well implemented, also relies on progs being installed for encoding and decoding.

cargo build to a bin. Usage is hls-transcoder-2 <hls_time> <uri_prepend> <hls_list_size>

  • hls_time: duration of each segment (usize only currently)
  • uri_prepend: string to add to each segment and init.mp4, for http server uris
  • hls_list_size: max number of segments to include in the playlist, older segments will be deleted, (usize)