[FFmpeg-user] Using ffmpeg to stream to or from Blackmagic Decklink Card

davood afshari afshari.davood at gmail.com
Sun Aug 28 09:35:53 EEST 2016


Hi,
As Reuben mentioned, we can not use "H264 Pro" with ffmpeg and there should
be another way to use this card. But about quality, It depends on
application. It can be use in some lightweight projects when you should
transcode your live content again and send to origin servers(to
webcasters).
But here is another question: With which Blackmagic cards we can use
ffmpeg? Now I have these cards:
*Encoders:*
1. H264 Pro (Encodes input stream to h264 - USB interface)
2. Ultrastudio Mini Recorder (Gives RAW video - Thunderbolt interface)
*Decoders(Playout):*
1. Decklink Mini Monitor (send video to HDMI/SDI output - PCIe interface -
Decklink family)

I expect to be able to use Decklink family with ffmpeg. I've tested H264
and Mini Monitor on windows with no success.  also installed ffmpeg on MAS
OS and used with Mini Recorder But still no success. I also should mention
there is no decklink support on mac.
Here is my installation script:

>   brew install ffmpeg --with-fdk-aac --with-ffplay --with-freetype
--with-frei0r --with-libass --with-libvo-aacenc --with-libvorbis
--with-libvpx --with-opencore-amr --with-openjpeg --with-opus
--with-rtmpdump --with-schroedinger --with-speex --with-theora --with-tools
--with-decklink

and here is my ffmpeg command to list input devices:

MacBook-Air:bmdtools $* ffmpeg -f avfoundation -list_devices true -i ""*
ffmpeg version 2.8.6 Copyright (c) 2000-2016 the FFmpeg developers
   built with Apple LLVM version 7.0.2 (clang-700.1.81)
   configuration: --prefix=/usr/local/Cellar/ffmpeg/2.8.6 --enable-shared
--enable-pthreads --enable-gpl --enable-version3 --enable-hardcoded-tables
--enable-avresample --cc=clang --host-cflags= --host-ldflags=
--enable-opencl --enable-libx264 --enable-libmp3lame --enable-libvo-aacenc
--enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis
--enable-libvpx --enable-librtmp --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libfaac --enable-libass --enable-ffplay
--enable-libspeex --enable-libschroedinger --enable-libfdk-aac
--enable-libopus --enable-frei0r --enable-libx265 --enable-libopenjpeg
--disable-decoder=jpeg2000
--extra-cflags=-I/usr/local/Cellar/openjpeg/1.5.2_1/include/openjpeg-1.5
--enable-nonfree --enable-vda
   libavutil      54. 31.100 / 54. 31.100
   libavcodec     56. 60.100 / 56. 60.100
   libavformat    56. 40.101 / 56. 40.101
   libavdevice    56.  4.100 / 56.  4.100
   libavfilter     5. 40.101 /  5. 40.101
   libavresample   2.  1.  0 /  2.  1.  0
   libswscale      3.  1.101 /  3.  1.101
   libswresample   1.  2.101 /  1.  2.101
   libpostproc    53.  3.100 / 53.  3.100
[AVFoundation input device @ 0x7f8bd0d00300] AVFoundation
video devices:
[AVFoundation input device @ 0x7f8bd0d00300] [0] FaceTime HD Camera
[AVFoundation input device @ 0x7f8bd0d00300] [1] Capture screen 0
[AVFoundation input device @ 0x7f8bd0d00300] AVFoundation
audio devices:
[AVFoundation input device @ 0x7f8bd0d00300] [0] Blackmagic Audio
[AVFoundation input device @ 0x7f8bd0d00300] [1] Built-in Microphone
: Input/output error


Can any one help me about at least using ffmpeg with compatible divices?
Thanks



On 14 June 2016 at 19:42, Roger Pack <rogerdpack2 at gmail.com> wrote:

> On 6/13/16, davood afshari <afshari.davood at gmail.com> wrote:
> > Hello,
> > I want to use blackmagic cards with ffmpeg to stream their input but
> there
> > is a problem.
> > When I use "H264 Pro" Encoder as a "decklink" or "dshow" input, I see
> this
> > error in command line output of ffmpeg. Device is ok and I can Use it
> with
> > other applications like MXPTiny or MXLight.
> > Here is the command and output:
> > *>ffmpeg -f dshow -list_devices true -i dummy*
> > ffmpeg version 3.0.1 Copyright (c) 2000-2016 the FFmpeg developers
> >   built with gcc 5.3.0 (GCC)
> >   configuration: --enable-gpl --enable-version3 --disable-w32threads
> > --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
> > --enable-gnutls --enable-iconv --enable-libass --enable-libbluray
> > --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype
> > --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug
> > --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb
> > --enable-libopenjpeg --enable-libopus --enable-librtmp
> > --enable-libschroedinger --enable-libsoxr --enable-libspeex
> > --enable-libtheora --enable-libtwolame --enable-libvidstab
> > --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
> > --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265
> > --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma
> > --enable-decklink --enable-zlib
> >   libavutil      55. 17.103 / 55. 17.103
> >   libavcodec     57. 24.102 / 57. 24.102
> >   libavformat    57. 25.100 / 57. 25.100
> >   libavdevice    57.  0.101 / 57.  0.101
> >   libavfilter     6. 31.100 /  6. 31.100
> >   libswscale      4.  0.100 /  4.  0.100
> >   libswresample   2.  0.101 /  2.  0.101
> >   libpostproc    54.  0.100 / 54.  0.100
> > [dshow @ 0000005f5272ad40] DirectShow video devices (some may be both
> video
> > and audio devices)
> > [dshow @ 0000005f5272ad40]  "Decklink Video Capture"
> > [dshow @ 0000005f5272ad40]     Alternative name
> > "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{
> 44A8B5C7-13B6-4211-BD40-35B629D9E6DF}"
> > [dshow @ 0000005f5272ad40]  "screen-capture-recorder"
> > [dshow @ 0000005f5272ad40]     Alternative name
> > "@device_sw_{860BB310-5D01-11D0-BD3B-00A0C911CE86}\{
> 4EA69364-2C8A-4AE6-A561-56E4B5044439}"
> > [dshow @ 0000005f5272ad40] DirectShow audio devices
> > [dshow @ 0000005f5272ad40]  "Microphone (High Definition Audio Device)"
> > [dshow @ 0000005f5272ad40]     Alternative name
> > "@device_cm_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\wave_{
> CBA42E33-151B-4975-B9A5-68B2552152F4}"
> > [dshow @ 0000005f5272ad40]  "virtual-audio-capturer"
> > [dshow @ 0000005f5272ad40]     Alternative name
> > "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{
> 8E146464-DB61-4309-AFA1-3578E927E935}"
> > [dshow @ 0000005f5272ad40]  "Decklink Audio Capture"
> > [dshow @ 0000005f5272ad40]     Alternative name
> > "@device_sw_{33D9A762-90C8-11D0-BD43-00A0C911CE86}\{
> AAA22F7E-5AA0-49D9-8C8D-B52B1AA92EB7}"
> > dummy: Immediate exit requested
> >
> >
> > and when I use "Decklink Video Capture" to identify its options, here is
> > the output:
> > *>ffmpeg -f dshow -list_options true -i video="Decklink Video Capture"*
> > ffmpeg version 3.0.1 Copyright (c) 2000-2016 the FFmpeg developers
> >   built with gcc 5.3.0 (GCC)
> >   configuration: --enable-gpl --enable-version3 --disable-w32threads
> > --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r
> > --enable-gnutls --enable-iconv --enable-libass --enable-libbluray
> > --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype
> > --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug
> > --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb
> > --enable-libopenjpeg --enable-libopus --enable-librtmp
> > --enable-libschroedinger --enable-libsoxr --enable-libspeex
> > --enable-libtheora --enable-libtwolame --enable-libvidstab
> > --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
> > --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265
> > --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma
> > --enable-decklink --enable-zlib
> >   libavutil      55. 17.103 / 55. 17.103
> >   libavcodec     57. 24.102 / 57. 24.102
> >   libavformat    57. 25.100 / 57. 25.100
> >   libavdevice    57.  0.101 / 57.  0.101
> >   libavfilter     6. 31.100 /  6. 31.100
> >   libswscale      4.  0.100 /  4.  0.100
> >   libswresample   2.  0.101 /  2.  0.101
> >   libpostproc    54.  0.100 / 54.  0.100
> > [dshow @ 00000036677bad40] Unable to BindToObject for Decklink Video
> Capture
> > [dshow @ 00000036677bad40] Could not find video device with name
> [Decklink
> > Video Capture] among source devices of type video.
> > video=Decklink Video Capture: I/O error
>
> Hmm I have run into that BindtoObject failure only once but it was in
> some freak situation where a DLL was removed, probably not yours.  Are
> you sure the other software are creating dshow graphs?
> Anyway ffmpeg also has a "native" decklink input option (that I know
> nothing about) maybe that will work better.
>
> https://www.ffmpeg.org/ffmpeg-devices.html#decklink
>
> This thread may be useful: https://ffmpeg.zeranoe.com/
> forum/viewtopic.php?t=1126
> GL!
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>



-- 
Best Regards
Davood Afshari
http://ir.linkedin.com/pub/davood-afshari/60/35a/b32


More information about the ffmpeg-user mailing list