Blackmagic Deck Link Quad 2 и несколько потоков с FFmpeg - PullRequest
0 голосов
/ 07 июня 2018

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

Нужно ли мне разделить их на несколько обработанных, чтобы запустить каждый поток одновременно, сохранить их во временный файл или конвейер, а затем объединить их в другом потоке для отображения?Я обеспокоен задержкой, которую привнесет эта программа.Заранее спасибо!

1 Ответ

0 голосов
/ 23 июня 2018

Вы не включили USB Debugging на своем мобильном телефоне.

Так что включите Develope Mode и USB Debugging для запуска команды ниже

 adb shell screenrecord --output-format=h264 - | ffplay -

Подождите 10 или 15 секунд, затем выдолжен видеть ваш экран на вашем компьютере

...