Blackmagic Deck Link Quad 2和多个流与FFmpeg

时间:2018-06-06 21:31:57

标签: ffmpeg video-streaming video-processing

我正在尝试使用FFmpeg作为我的代码转换器从DeckLink Quad 2在本地显示器上完成4个或更多源的流式视频。我可以播放两个不同的视频(我只能在我的办公桌上同时使用两个来源)很好,但很难将它们连接成一个视频如果它们都在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卡中读取两个流(尽管我觉得我已经读过了)。这里也引入了另一个问题:我的一个流不能以帧速率设置为60fps运行,我需要将其设置为59.94fps才能工作,否则它是一个黑屏。

我是否需要将这些拆分为多个处理以同时运行每个流,将它们保存到临时文件或管道,然后将它们组合在另一个流中进行显示?我担心程序会引入的延迟。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您尚未在手机中启用USB Debugging

因此启用Develope ModeUSB Debugging来运行以下命令

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

等待10到15秒,然后您应该会在PC上看到屏幕