1

I'm using an Intensity Pro 4K to capture with ffmpeg via the decklink commands.

According to the documentation:

video_input

Sets the video input source. Must be ‘unset’, ‘sdi’, ‘hdmi’, ‘optical_sdi’, ‘component’, ‘composite’ or ‘s_video’. Defaults to ‘unset’.

audio_input

Sets the audio input source. Must be ‘unset’, ‘embedded’, ‘aes_ebu’, ‘analog’, ‘analog_xlr’, ‘analog_rca’ or ‘microphone’. Defaults to ‘unset’.

So I set -video_input hdmi, which guarantees I will get the video via HDMI even if the Blackmagic driver is set to something else (e.g., component, which for some reason every time I reboot it gets reset to component).

But, while I get video, I don't get audio. I tried setting -audio_input to embedded (no effect) aes_ebu, and microphone (not supported by device error).

So, I still have to go to the Blackmagic video drivers and switch the input signal to HDMI.

Is there a way to specify the hdmi audio feed together with the hdmi video feed on the ffmpeg command line?

Reference

Full command I am using:

ffmpeg -rtbufsize 1500M -f decklink -video_input hdmi -i "Intensity Pro 4K@20" -pix_fmt yuv420p -c:a copy -c:v v210 abc.mov

list_formats output:

E:\>ffmpeg -f decklink -list_formats 1 -i "Intensity Pro 4K"
ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --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. 34.100 / 55. 34.100
  libavcodec     57. 64.100 / 57. 64.100
  libavformat    57. 56.100 / 57. 56.100
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
[decklink @ 0000000000f66460] Supported formats for 'Intensity Pro 4K':
[decklink @ 0000000000f66460]   1       720x486 at 30000/1001 fps (interlaced, lower field first)
[decklink @ 0000000000f66460]   2       720x576 at 25000/1000 fps (interlaced, upper field first)
[decklink @ 0000000000f66460]   3       1920x1080 at 24000/1001 fps
[decklink @ 0000000000f66460]   4       1920x1080 at 24000/1000 fps
[decklink @ 0000000000f66460]   5       1920x1080 at 25000/1000 fps
[decklink @ 0000000000f66460]   6       1920x1080 at 30000/1001 fps
[decklink @ 0000000000f66460]   7       1920x1080 at 30000/1000 fps
[decklink @ 0000000000f66460]   8       1920x1080 at 25000/1000 fps (interlaced, upper field first)
[decklink @ 0000000000f66460]   9       1920x1080 at 30000/1001 fps (interlaced, upper field first)
[decklink @ 0000000000f66460]   10      1920x1080 at 30000/1000 fps (interlaced, upper field first)
[decklink @ 0000000000f66460]   11      1920x1080 at 50000/1000 fps
[decklink @ 0000000000f66460]   12      1920x1080 at 60000/1001 fps
[decklink @ 0000000000f66460]   13      1920x1080 at 60000/1000 fps
[decklink @ 0000000000f66460]   14      1280x720 at 50000/1000 fps
[decklink @ 0000000000f66460]   15      1280x720 at 60000/1001 fps
[decklink @ 0000000000f66460]   16      1280x720 at 60000/1000 fps
[decklink @ 0000000000f66460]   17      3840x2160 at 24000/1001 fps
[decklink @ 0000000000f66460]   18      3840x2160 at 24000/1000 fps
[decklink @ 0000000000f66460]   19      3840x2160 at 25000/1000 fps
[decklink @ 0000000000f66460]   20      3840x2160 at 30000/1001 fps
[decklink @ 0000000000f66460]   21      3840x2160 at 30000/1000 fps
Intensity Pro 4K: Immediate exit requested

Output of E:\>ffmpeg -rtbufsize 1500M -f decklink -video_input hdmi -audio_input embedded -i "Intensity Pro 4K@20" -pix_fmt yuv420p -c:a copy -c:v v210 abcde.mov

ffmpeg version 3.2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --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. 34.100 / 55. 34.100
  libavcodec     57. 64.100 / 57. 64.100
  libavformat    57. 56.100 / 57. 56.100
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
[decklink @ 0000000002872cc0] Found Decklink mode 3840 x 2160 with rate 29.97
[decklink @ 0000000002872cc0] Frame received (#1) - Input returned - Frames dropped 1
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, decklink, from 'Intensity Pro 4K@20':
  Duration: N/A, start: 0.000000, bitrate: 3978870 kb/s
    Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
    Stream #0:1: Video: rawvideo (UYVY / 0x59565955), uyvy422, 3840x2160, 3977334 kb/s, 29.97 tbr, 1000k tbn, 1000k tbc
Incompatible pixel format 'yuv420p' for codec 'v210', auto-selecting format 'yuv422p'
Output #0, mov, to 'abcde.mov':
  Metadata:
    encoder         : Lavf57.56.100
    Stream #0:0: Video: v210 (v210 / 0x30313276), yuv422p, 3840x2160, q=2-31, 200 kb/s, 29.97 fps, 30k tbn, 29.97 tbc
    Metadata:
      encoder         : Lavc57.64.100 v210
    Stream #0:1: Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, 1536 kb/s
Stream mapping:
  Stream #0:1 -> #0:0 (rawvideo (native) -> v210 (native))
  Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
  • What's the full command you're using? And does list_formats show any audio selection? – Gyan Jan 29 '17 at 10:54
  • @Mulvya Updated my question. – Patrick Kenny Jan 29 '17 at 11:04
  • With the audio option set to embedded, does ffmpeg show any input audio stream? – Gyan Jan 29 '17 at 11:07
  • @Mulvya When I enter the command E:\>ffmpeg -f decklink -video_input hdmi -audio_input embedded -list_formats 1 -i "Intensity Pro 4K", the output is the same as when I do not specify -audio_input. – Patrick Kenny Jan 29 '17 at 11:10
  • 2
    It does detect audio: Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s. If it's silent, then this may be need to be changed at the driver level. – Gyan Jan 29 '17 at 11:43
1

Using embedded (or omitting -audio_input) is the intended way to get the audio of HDMI or SDI signals.

Please make sure that there is a 2ch-stereo audio signal on HDMI. If it is 5.1 or 7.1 you might have to use -channels 8 in the commandline before the -i.

Note: please pay attention to the pix_fmt warning. Leave that option out of your commandline.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.