У меня есть MPEG-2 TS с потоком видео и парой метаданных KLV. Я могу использовать ffmpeg-python для обработки каждого из этих потоков независимо. Например, я могу получить видеопоток, обрабатывать каждый кадр, используя numpy, как показано в документации. Я также могу получить поток данных и показать его следующим образом (используя библиотеку klvdata):
process = (
ffmpeg
.input(in_filename)
.output('pipe:', format='data', codec='copy', map='data-re')
.run_async(pipe_stdout=True, pipe_stderr=True)
)
for packet in klvdata.StreamParser(process.stdout.read()):
packet.structure()
process.wait()
Как мне сделать это одновременно? Мне нужно разделить данные TS на их потоки и обработать их оба, синхронизируя их. ffmpeg сам по себе может демультиплексировать потоки в отдельные файлы, но как мне обрабатывать потоки в python. У KLV есть информация, которую я хочу показать поверх видеопотока (поля распознавания).