Я пытаюсь создать поток MPEG-TS с помощью FFmpeg. Я передаю видео FFmpeg из файла и двоичные данные из потока UDP.
ffmpeg -re -i video.mp4 \
-f data -i udp://localhost:5000 \
-map 0:0 -map 0:1 -map 1:0 -codec copy \
-f mpegts test.ts
Я использую socat для подключения к FFmpeg и набираю случайные данные:
socat udp:localhost:5000 -
Когда я пытаюсь демультиплексировать канал данных (канал 2 для данных), он пуст:
ffmpeg -i test.ts -map 0:2 -c:d copy -f data -
Я также попытался сделать это напрямую для подачи текстовых файлов, и это прекрасно работает (я могу демультиплексировать поток данных из полученного .ts файл и он равен). Я также пытался использовать именованные каналы, подключенные к сценарию Python, но это не сработало (FFmpeg, кажется, ожидает EOF, а затем не продолжает читать именованный канал).
Как сделать Я объединяю видео и двоичные данные из разных источников в один транспортный поток MPEG?