m1k1o / go-transcode

On-demand transcoding origin server for live inputs and static files in Go using ffmpeg. Also with NVIDIA GPU hardware acceleration.
Apache License 2.0
208 stars 38 forks source link

Adaptiv Bitrates #46

Open c-o-m-m-a-n-d-e-r opened 1 year ago

c-o-m-m-a-n-d-e-r commented 1 year ago

Hi, first of all great project ... just did a few quick tests and its working great. in the next days i will get a system with an nvidia p4000 for testing and so i was thinking about how about a profile with adaptiv bitrates?

after reading the specs the p4000 should do round about 22 x h264 or 26 x h265 streams simultan.

m1k1o commented 1 year ago

Do you mean vod transcoding or live transcoding? Because for live transcoding there is only missing playlist that aggregates them, since all layers are available already.

For VOD there is currently missing GPU support, but it has adaptive streaming.

c-o-m-m-a-n-d-e-r commented 1 year ago

Hi, thanks for your reply. I'm talking about Live Stream. I build something similear some time ago written in nodejs but dropped all code after server change.

i think this is a good note about ABR (and also DASH) : https://blog.zazu.berlin/internet-programmierung/mpeg-dash-and-hls-adaptive-bitrate-streaming-with-ffmpeg.html

m1k1o commented 1 year ago

Should be easy to integrate, by adding new profile to profiles/. I already have some ABR profiles in my other project: https://github.com/m1k1o/hls-restream/tree/master/profiles

c-o-m-m-a-n-d-e-r commented 1 year ago

Hey, i did some teste and i think i created a good (cuda based) profile, BUT .... in my opinion i think this is not as easy as you think cause switching the playlist files breaks the routing ...

i think we have to handle the different resolutions playlist files as well in the routing ...

m1k1o commented 1 year ago

If you have something you can share, or open PR, i would take a look.

c-o-m-m-a-n-d-e-r commented 1 year ago

i think its to early for an PR, i will try it here. i see the files in the tmp folder ... but i think nothing happens cause there is no routing for the different playlists

wait will attach both files ... Archiv.zip