使用FFmpeg捕获AJA板SDI嵌入音频的DirectShow问题
解决AJA板SDI嵌入式音频FFmpeg录制问题
你已经搞定了DirectShow滤镜图和视频录制,卡在音频引脚的正确映射上很正常——AJA设备的DirectShow音频引脚经常需要精准匹配参数。我分享几个针对性的排查和解决步骤:
1. 先确认设备和引脚的准确信息
首先得确保你用的引脚名称和设备实际支持的完全一致,别凭经验猜。执行这条命令,枚举AJA音频设备的所有可用参数:
ffmpeg -list_options true -f dshow -i audio="AJA S-Capture KonaLHi- 0"
输出里会明确显示音频设备支持的引脚名称、采样率、格式等细节。重点看音频引脚的准确命名——比如可能是"Audio 1-2"而非你用的"Aud 1-2",大小写、空格差异都可能导致失败。
2. 优先尝试音视频复合输入(嵌入式音频推荐)
因为你的音频是SDI嵌入式的,AJA设备通常支持音视频同步捕获的复合输入。试试这条命令,同时捕获音视频再单独提取音频:
ffmpeg -y -rtbufsize 2048M -f dshow -i video="AJA S-Capture KonaLHi- 0":audio="AJA S-Capture KonaLHi- 0" -map 0:a -acodec pcm_s24le -ar 48000 output.wav
-map 0:a表示只提取输入流里的音频部分,能确保你捕获的是和视频同步的嵌入式音频,避免单独指定音频设备时的引脚匹配问题。
3. 修正单独音频捕获的命令
如果坚持要单独捕获音频,用第一步得到的准确引脚名,加上格式强制参数试试:
ffmpeg -y -rtbufsize 2048M -f dshow -audio_pin_name "你的准确引脚名" -sample_rate 48000 -sample_fmt s24 -i audio="AJA S-Capture KonaLHi- 0" -acodec pcm_s24le output.wav
强制指定采样率和格式,和输出编码参数对齐,能避免FFmpeg自动协商格式时出现不兼容的情况。
4. 隐性设备冲突排查
虽然你说滤镜没被占用,但可以用FFmpeg附带的dshowcap工具,或者第三方DirectShow设备查看器,确认AJA音频的目标引脚确实处于可用状态——有时候系统后台进程会隐性占用设备资源,表面看不出来。
如果还是不行,把ffmpeg执行后的具体错误信息贴出来,能更精准定位问题,但按上面的步骤排查,大概率能解决嵌入式音频的映射问题。
内容的提问来源于stack exchange,提问作者NiCO
相关产品推荐
相关产品推荐

