Я пытаюсь выполнить потоковое видео из 4 или более каналов на локальном дисплее из DeckLink Quad 2, используя FFmpeg
в качестве моего транскодера.Я могу воспроизвести два разных видео (у меня есть только два источника, которые я могу использовать одновременно на своем рабочем столе), но я не могу соединить их в одно видео , если они оба на DeckLink.Код, который у меня есть для отдельного потока, запускаемого как .bat
, приведен ниже ...
ffplay -video_size 1280x720 -framerate 60 -pixel_format uyvy422 -f dshow -i video="Decklink Video Capture" \ pause
При чтении большинства форумов может показаться, что склеивание их вместе со сложным фильтром должно работать так:
ffmpeg -video_size 1280x720 -pixel_format uyvy422 -framerate 60 -vsync drop -f dshow -rtbufsize 150M -i video="Decklink Video Capture (5)" -i video="Decklink Video Capture" -i video="Decklink Video Capture (5)" -i video="Decklink Video Capture" -an -filter_complex "[0:v][1:v]hstack[t]; [2:v][3:v]hstack[b]; [t][b]vstack" -c:v libx264 -preset ultrafast -f mpegts pipe: | ffplay pipe: -vf scale=1280:720 \ pause
И с двумя видео, не из DeckLink (т.е. файл DeckLink и ), он работает!Но с обоими выходами из DeckLink я получаю в консоли следующее:
Input #0, dshow, from 'video=Decklink Video Capture (5)':0B f=0/0
Duration: N/A, start: 71582788.354257, bitrate: N/A
Stream #0:0: Video: rawvideo (HDYC / 0x43594448), uyvy422(tv), 1280x720, 60 fps, 60 tbr, 10000k tbn, 10000k tbc
video=Decklink Video Capture: No such file or directory
pipe:: Invalid data found when processing inputKB sq= 0B f=0/0
И этот поток тоже работает сам по себе.Так что моя оптимистическая проблема в том, что я использую неправильную схему именования;Моя единственная другая идея - я не могу читать два потока с карты DeckLink одновременно (хотя я чувствую, что прочитал, что могу).Здесь также представлена другая проблема: один из моих потоков не работает с частотой кадров 60 кадров в секунду, мне нужно установить его на 59,94 кадров в секунду, иначе это черный экран.
Нужно ли мне разделить их на несколько обработанных, чтобы запустить каждый поток одновременно, сохранить их во временный файл или конвейер, а затем объединить их в другом потоке для отображения?Я обеспокоен задержкой, которую привнесет эта программа.Заранее спасибо!