Using ffmpeg to stream from Blackmagic "H.264Pro" Card

Ask software engineering and SDK questions for developers working on Mac OS X, Windows or Linux.
  • Author
  • Message
Offline

Dave Afshari

  • Posts: 5
  • Joined: Sat Jun 11, 2016 11:55 am

Using ffmpeg to stream from Blackmagic "H.264Pro" Card

PostTue Jun 14, 2016 3:22 am

Hi,
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:
Code: Select all
[b]>ffmpeg -f dshow -list_devices true -i dummy [/b]
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-11D..."
[dshow @ 0000005f5272ad40]  "screen-capture-recorder"
[dshow @ 0000005f5272ad40]     Alternative name "@device_sw_{860BB310-5D01-11D...
[dshow @ 0000005f5272ad40] DirectShow audio devices
[dshow @ 0000005f5272ad40]  "Microphone (High Definition Audio Device)"
[dshow @ 0000005f5272ad40]     Alternative name "@device_cm_{33D9A762-90C8-11D..."
[dshow @ 0000005f5272ad40]  "virtual-audio-capturer"
[dshow @ 0000005f5272ad40]     Alternative name "@device_sw_{33D9A762-90C8-11D...
[dshow @ 0000005f5272ad40]  "Decklink Audio Capture"
[dshow @ 0000005f5272ad40]     Alternative name "@device_sw_{33D9A762-90C8-11D..."
dummy: Immediate exit requested


and when I use "Decklink Video Capture" to identify its options, here is the output:
Code: Select all
[b]>ffmpeg -f dshow -list_options true -i video="Decklink Video Capture" [/b]
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


It's the same when I use "Decklink Audio Capture" to identify its options. I have a H264 Pro blackmagic device witch attached with usb port to my PC. I've tested this card and it worked with other softwares such as blackmagic audio video ot mxlight or mxptiny.
Here is another log when I use "decklink" as an input type:
Code: Select all
[b]>ffmpeg -f decklink -list_devices 1 -i dummy[/b]
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

[decklink @ 0000009e86efade0] Blackmagic DeckLink devices:
dummy: Immediate exit requested


Thanks
Dave Afshari
Offline

Dave Afshari

  • Posts: 5
  • Joined: Sat Jun 11, 2016 11:55 am

Re: Using ffmpeg to stream from Blackmagic "H.264Pro" Card

PostSun Aug 28, 2016 10:47 am

It seems that ffmpeg doesn't support "H264 Pro" and now I want to use BM SDK to retrieve input and pipe to ffmpeg or other streaming software.
Dave Afshari
Offline

Matt Jefferson

Blackmagic Design

  • Posts: 130
  • Joined: Fri Aug 31, 2012 12:50 am

Re: Using ffmpeg to stream from Blackmagic "H.264Pro" Card

PostMon Aug 29, 2016 10:10 pm

The H.264 Pro Recorder is a standalone box that does H264 encoding from HDMI or SDI or Analog capture ports. It uses part of the Decklink SDK. The basic overview of the SDK support of that device is on page 32 of the SDK Manual See section 2.4.5 and 2.4.5.1 for basic capture overview.

This device uses a different part of the SDK than general Decklink, Intensity and Ultrastudio capture functions. The H.264 Pro Recorder support was implemented by the software team of MXPTiny outside of Blackmagic Design and it is an independent developer who supported this hardware.

Matt Jefferson
Offline

Dave Afshari

  • Posts: 5
  • Joined: Sat Jun 11, 2016 11:55 am

Re: Using ffmpeg to stream from Blackmagic "H.264Pro" Card

PostWed Aug 31, 2016 10:19 am

Thanks a a lot for the information. I will use it and report the result.
As you mentioned, "MXPTiny" can use H.264 Pro as an input device. There is also "MXLight" software which is not an open source solution that can use H.264 Pro as an input device.
Dave Afshari
Offline

Grega Podrekar

  • Posts: 24
  • Joined: Fri Jan 06, 2017 7:06 am

Re: Using ffmpeg to stream from Blackmagic "H.264Pro" Card

PostThu Jul 15, 2021 8:21 am

Hi,
have you managed to get h.264 from Recorder and stream it with ffmpeg?
Grega

Return to Software Developers

Who is online

Users browsing this forum: No registered users and 23 guests