У меня есть прямая трансляция HLS [https: //82-80-192-30.vidnt.com/ipbc_IPBCchannel11LVMRepeat/definst /IPBCchannel11LVM_3.stream/playlist.m3u8], и я хочу преобразовать его в MPEG-DASH.
Какая лучшая практика?
Поток уже h264 aac, поэтому я понимаю, что мне не нужно перекодировать, и мне просто нужно преобразовать.
Что мне использовать? ffmpeg? mp4box?
Примечания:
Я использовал модуль nginx-rtmp (https://github.com/ut0mt8/nginx-rtmp-module/) для создания DASH из потока RTMP согласно этому руководству: https://isrv.pw/html5-live-streaming-with-mpeg-dash Но модуль nginx-rtmp может получать в качестве входных данных только потоки rtmp, и у меня это не сработало с потоком HLS.
Я использовал ffmpeg для создания тире из m3u8 следующим образом:
ffmpeg -i https://82-80-192-30.vidnt.com/ipbc_IPBCchannel11LVMRepeat/_definst_/IPBCchannel11LVM_3.stream/playlist.m3u8 -strict -2 -min_seg_duration 2000 -window_size 5 -extra_window_size 5 -use_template 1 -use_timeline 1 -f dash out.mpd
Но это очень ограничено. Я не могу контролировать продолжительность сегмента. Параметр min_seg_duration
ffmpeg у меня не очень хорошо работает, а также он может установить минимальную продолжительность, в то время как я хочу ограничить максимальную продолжительность каждого сегмента (сегмент выходит с ~ 10 секундами, в то время как мне нужно, чтобы это было ~ 2 -4 секунды как играю вживую).