[FFmpeg-user] Blackmagic DeckLink Quad 2

Robert Frazier robertfrazier8 at gmail.com
Thu Jun 7 00:52:48 EEST 2018


Hi there, I am very very new to this and have a big project to tackle.

I am trying to accomplish streaming videos from 4 or more feeds on a local
display from a DeckLink Quad 2 using FFmpeg. I can play two different
videos (I only have two sources I can use simultaneously at my desk) fine,
but struggle with connecting them into a single video if they are both on
the DeckLink. The code I have for a two videos running as a .bat in a box
of 4 is below..

*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*


Full console is below:


>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> * 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:720ffmpeg version N-91024-g293a6e8332
> Copyright (c) 2000-2018 the FFmpeg developers  built with gcc 7.3.0 (GCC)
> configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib
> --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass
> --enable-libbluray --enable-libfreetype --enable-libmp3lame
> --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg
> --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr
> --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack
> --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2
> --enable-libzimg --enable-lzma --enable-zlib --enable-gmp
> --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc
> --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom
> --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid
> --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2
> --enable-avisynth  libavutil      56. 18.100 / 56. 18.100  libavcodec
>  58. 19.101 / 58. 19.101  libavformat    58. 13.102 / 58. 13.102
> libavdevice    58.  4.100 / 58.  4.100  libavfilter     7. 21.100 /  7.
> 21.100ffplay version N-91024-g293a6e8332 Copyright (c) 2003-2018 the FFmpeg
> developers  libswscale      5.  2.100 /  5.  2.100  built with gcc 7.3.0
> (GCC)  libswresample   3.  2.100 /  3.  2.100  configuration: --enable-gpl
> --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig
> --enable-gnutls --enable-iconv --enable-libass --enable-libbluray
> --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb
> --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus
> --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora
> --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp
> --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg
> --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab
> --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa
> --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx
> --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va
> --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth  libavutil
>     56. 18.100 / 56. 18.100  libpostproc    55.  2.100 / 55.  2.100
> libavcodec     58. 19.101 / 58. 19.101  libavformat    58. 13.102 / 58.
> 13.102  libavdevice    58.  4.100 / 58.  4.100  libavfilter     7. 21.100
> /  7. 21.100  libswscale      5.  2.100 /  5.  2.100  libswresample   3.
> 2.100 /  3.  2.100  libpostproc    55.  2.100 / 55.  2.100Input #0, dshow,
> from 'video=Decklink Video Capture (5)':0B f=0/0  Duration: N/A, start:
> 0.140463, bitrate: N/A    Stream #0:0: Video: rawvideo (HDYC / 0x43594448),
> uyvy422(tv), 1280x720, 60 fps, 60 tbr, 10000k tbn, 10000k tbcvideo=Decklink
> Video Capture: No such file or directorypipe:: Invalid data found when
> processing inputKB sq=    0B f=0/0*


And that stream works running on its own too. So my optimistic concern is
just that I'm using the wrong naming scheme; my only other idea is that I
can't read two streams from the DeckLink card simultaneously (though I feel
like I've read I can). Another concern is introduced here too: one of my
streams does not run with frame rate set to 60fps, I need to set it to
59.94fps to work, otherwise it is a black screen.

Would I need to split these into multiple processed to run each stream
simultaneously, save them to a temporary file or a pipeline, then combine
them in another stream to display? I am concerned about the latency that
program would introduce though.

Thank you in advance!

Robert


More information about the ffmpeg-user mailing list