Search code examples
ffmpegdirectshowvideo-captureaudio-capture

ffmpeg DirectShow capture 2 pins


Here is ffmpeg DirectShow options

 DirectShow video device options
  Pin "Capture"
   pixel_format=yuyv422  min s=720x480 fps=59.9402 max s=720x480 fps=59.9402
   pixel_format=yuyv422  min s=720x480 fps=29.97 max s=720x480 fps=29.97
   pixel_format=yuyv422  min s=720x576 fps=50 max s=720x576 fps=50
   pixel_format=yuyv422  min s=720x576 fps=25 max s=720x576 fps=25
   pixel_format=yuyv422  min s=640x480 fps=59.9402 max s=640x480 fps=59.9402
   pixel_format=yuyv422  min s=1920x1080 fps=29.97 max s=1920x1080 fps=29.97
   pixel_format=yuyv422  min s=1920x1080 fps=25 max s=1920x1080 fps=25
   pixel_format=yuyv422  min s=1920x1080 fps=24 max s=1920x1080 fps=24
   pixel_format=yuyv422  min s=1280x720 fps=59.9402 max s=1280x720 fps=59.9402
   pixel_format=yuyv422  min s=1280x720 fps=50 max s=1280x720 fps=50
  Pin "Audio"

What ffmpeg command will capture both Pins?

Update

My device name is 7160 HD Capture ffmpeg -f dshow -i video="7160 HD Capture" out.mp4

Following command works fine:-

ffmpeg -f dshow -s 1280x720 -i video="7160 HD Capture" -rtbufsize 2000M out19.mp4

I tried

ffmpeg -f dshow -s 1280x720 -i "video=7160 HD Capture:audio=7160 HD Capture" -rtbufsize 2000M out20.mp4

it does not work and returns error:-

[dshow @ 000000000250b540] Could not enumerate audio devices. video=7160 HD Capture:audio=7160 HD Capture: Input/output error

I seen that audio Pin has different names on different cards. May be I should explicitly name it.

Update 2

GraphEdit

I do not have Audio capture devices but Video Capture definitely has Audio.

I am able to play that audio pin on default audio device


Solution

  • OK support for this was (hopefully) added recently in FFmpeg dshow, you can specify ffmpeg -f dshow -i video="AJA Capture Source":audio="AJA Capture Source" now and it work.

    There are even new parameters for selecting which pin you want to use, if you need them. https://www.ffmpeg.org/ffmpeg-devices.html#dshow

    If it doesn't work for somebody/anybody please let me know [email protected] or comment here.