Как выполнить ретрансляцию видео в реальном времени с помощью VLC (cli on linux) в плейлист m3u8
? В настоящее время у меня есть кусок кода, но он работает неправильно.Регенерировать поток с VLC в режиме реального времени
["cvlc","-v",url,"--drop-late-frames","--skip-frames","--sout","#std{access=livehttp{seglen=1,delsegs=false,numsegs=5, index=/var/www/x/test.m3u8, index-url=http://hello.com/_x/test-########.ts}, mux=ts{use-key-frames}, dst=/var/www/xxx/test-########.ts}}"
Код выше по какой-то причине ждет 3-10 секунд, чтобы генерировать новые файлы .ts - что должно быть сделано в режиме реального времени. Какие аргументы командной строки следует использовать для исправления этой проблемы?
ffmpeg может выполнить это, поэтому vlc также должен это сделать. Эта команда делает то, что мне нужно: ["ffmpeg", "- fflags", "nobuffer", "- re", "- i", url, "- codec", "copy", "- map", "0" , "- ф", "сегмент", "- segment_time", "2", "- hls_list_size", "5", "- hls_wrap", "5", "- segment_list_type", "m3u8", "- segment_format" , "mpeg_ts", "- segment_list", "/ Var/WWW/х/test.m3u8", "- segment_list_flags", "+ вживую", "/ Var/WWW/х/тест% 03d.ts"]. Мне просто нужно сделать это с помощью vlc. – JohnDoeJ
m3u8 обновляется каждые X секунд, когда сегмент завершен. Итак, вы хотите, чтобы ts медленно расти в реальном времени, вместо того, чтобы сразу промывать весь сегмент? – szatmary
Он может расти в реальном времени (было бы здорово увидеть, если что-нибудь случится), но не видя, что он растет, это не проблема. С vlc я должен получать новые .ts-файлы каждые X секунд (или каждую секунду с помощью команды выше), но теперь я получаю кучу файлов, и они делаются каждые 3-10 секунд. Я был бы счастлив, если бы они были созданы один за другим каждую секунду. – JohnDoeJ