ffmpeg y decklink: ¿cómo especificar audio_input para video hdmi?

Estoy usando un Intensity Pro 4K para capturar a ffmpegtravés de los decklinkcomandos.

Según la documentación :

entrada de video

Establece la fuente de entrada de vídeo. Debe ser 'unset', 'sdi', 'hdmi', 'optical_sdi', 'component', 'composite' o 's_video'. El valor predeterminado es 'desarmado'.

entrada de audio

Establece la fuente de entrada de audio. Debe ser 'desarmado', 'incrustado', 'aes_ebu', 'analógico', 'analog_xlr', 'analog_rca' o 'micrófono'. El valor predeterminado es 'desarmado'.

Así que configuré -video_input hdmi, lo que garantiza que obtendré el video a través de HDMI incluso si el controlador Blackmagic está configurado en otra cosa (por ejemplo, componente, que por alguna razón, cada vez que reinicio, se restablece a componente).

Pero, mientras recibo video, no recibo audio. Intenté configurar (sin efecto) y (no compatible -audio_inputcon el error del dispositivo).embeddedaes_ebumicrophone

Entonces, todavía tengo que ir a los controladores de video Blackmagic y cambiar la señal de entrada a HDMI.

¿Hay alguna manera de especificar la fuente de audio hdmi junto con la fuente de video hdmi en la línea de comando ffmpeg?

Referencia

Comando completo que estoy usando:

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_formatsproducción:

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

Salida deE:\>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
¿Cuál es el comando completo que estás usando? ¿Y list_formats muestra alguna selección de audio?
@Mulvya actualizó mi pregunta.
Con la opción de audio configurada como incrustada, ¿ffmpeg muestra algún flujo de audio de entrada?
@Mulvya Cuando ingreso el comando E:\>ffmpeg -f decklink -video_input hdmi -audio_input embedded -list_formats 1 -i "Intensity Pro 4K", el resultado es el mismo que cuando no especifico -audio_input.
Por supuesto, eso se debe a que está enumerando formatos. Debe agregarlo al comando de captura y verificar.
@Mulvya Ok, agregó la salida del comando de captura.
Sí detecta audio: Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s. Si es silencioso, es posible que sea necesario cambiarlo a nivel del controlador.

Respuestas (1)

Usar embedded(u omitir -audio_input) es la forma prevista de obtener el audio de las señales HDMI o SDI.

Asegúrese de que haya una señal de audio estéreo de 2 canales en HDMI. Si es 5.1 o 7.1, es posible que deba usarlo -channels 8en la línea de comandos antes de -i.

Nota: preste atención a la pix_fmtadvertencia. Deje esa opción fuera de su línea de comandos.