2016-02-03 3 views
0

Как выполнить ретрансляцию видео в реальном времени с помощью 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 - что должно быть сделано в режиме реального времени. Какие аргументы командной строки следует использовать для исправления этой проблемы?

ответ

0

m3u8 - фрагментированный формат. Это означает, что манифест не может быть обновлен до тех пор, пока фрагмент не будет завершен (без частичных фрагментов). Поскольку мы не можем перемещаться во времени, мы должны ждать всех кадров фрагмента. 3 секунды в вашем случае.

+0

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

+0

m3u8 обновляется каждые X секунд, когда сегмент завершен. Итак, вы хотите, чтобы ts медленно расти в реальном времени, вместо того, чтобы сразу промывать весь сегмент? – szatmary

+0

Он может расти в реальном времени (было бы здорово увидеть, если что-нибудь случится), но не видя, что он растет, это не проблема. С vlc я должен получать новые .ts-файлы каждые X секунд (или каждую секунду с помощью команды выше), но теперь я получаю кучу файлов, и они делаются каждые 3-10 секунд. Я был бы счастлив, если бы они были созданы один за другим каждую секунду. – JohnDoeJ

Смежные вопросы