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