ffmpeg работает с именованными каналами - Ubuntu 18 - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь работать с ffmpeg с именными каналами, но не могу заставить его работать так, как я хочу. Моя идея проста: у меня есть несколько сегментов видео и аудио, я буду использовать ffmpeg, чтобы использовать их в качестве входных данных и создать один файл, который содержит как аудио, так и видео. Результат этого будет отправлен в канал имен, а затем я снова выполню ffmpeg для чтения из канала имен и, наконец, отправлю вывод в виде потока hls.

Вот что я пытался до сих пор

mkfifo stream

L oop через файлы

ffmpeg -i video01.mp4 -i audio01.mp3 -c copy pipe:1 > stream

Эта команда будет внутри python кода для чтения следующего video02.mp4 и audio02.mp3 и отправки вывода в поток.

Теперь ffmpeg должен читать данные из потока. Вот команда, которую я попробовал

ffmpeg -i stream -c copy -hls_time 6 -hls_flags delete_segments stream.m3u8

Когда я пытаюсь выполнить первую команду ffmpeg, она не "записывает данные" в мой канал с именем stream. Поэтому, когда я пробую второй ffmpeg, ему нечего читать, и он зависает. Я заметил, что если я запускаю обе команды, используя | он выведет мой поток.m3u8, но проблема в том, что я хочу непрерывно отправлять данные в мой именованный канал и другой экземпляр ffmpeg для непрерывного чтения из указанного именованного канала.

Что я делаю неправильно? Я пробовал эти ответы до сих пор Работая с mkfifo и транспортными потоками, возможно ли это? Как заставить ffmpeg записывать свои выходные данные в именованный канал https://superuser.com/questions/901339/continuous-streaming-from-an-empty-pipe-then-adding-data-to-the-pipe-on-demand

На первый взгляд это казалось чем-то действительно простым, но я что-то здесь упускаю, и я надеюсь, что кто-то может мне помочь.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...