ffmpeg - DirectShow 捕获源和 FFMPEG

标签 ffmpeg directshow video-capture

我有一张 AJA Capture 卡。随卡安装的驱动程序包括一些 DirectShow 过滤器。如果我将过滤器弹出到 GraphEdit 中,我会看到:

AJA Capture Filter in GraphEdit

如果我运行 ffmpeg 命令

ffmpeg -f dshow -list_options true -i video="AJA Capture Source"

我懂了
[dshow @ 0034eec0] DirectShow video device options
[dshow @ 0034eec0]  Pin "Video"
[dshow @ 0034eec0]   pixel_format=yuyv422  min s=720x486 fps=27.2604 max s=1024x
486 fps=29.985
...
[dshow @ 0034eec0]  Pin "Audio 1-2"
[dshow @ 0034eec0]  Pin "Line21"
video=AJA Capture Source: Immediate exit requested

所以我看到了我需要的视频和音频引脚。但是当我尝试运行 ffmpeg 命令来捕获两者时,我只能弄清楚如何做视频部分。我如何连接到那个音频引脚?似乎所有示例和文档都指向使用单独的音频设备,而没有任何关于连接到引脚的内容。我现在像这样从批处理文件中运行它,我使用 ^ 来换行
ffmpeg.exe ^
-y ^
-rtbufsize 100M ^
-f dshow ^
-i video="AJA Capture Source" ^
-t 00:00:10 ^
-aspect 16:9 ^
-c:v libx264 ^
"C:\VCS_AUD_SAMPLE.mp4"

同样,上面的命令会给我一些漂亮的视频,但我不知道音频部分。 ffmpeg 是否支持这一点,还是我必须修改 ffmpeg dshow 代码?

最佳答案

我是这个过滤器的开发者。

实际上,相同的设备用于音频和视频流。此外,两个流的数据都是一个函数调用的结果。在其他卡(例如 - DeckLink)中通过单独的音频和视频过滤器进行划分是人为的(它们必须在内部连接)。划分的可能原因 - 试图简化图表。但是,这可能会导致其他问题(使用来自不同设备的流)。

为什么 ffmpeg 不能使用相同过滤器的引脚 - 我不清楚。 ffmpeg 开发者的这个问题。

大约只有一个实例访问 - 使用了非常旧版本的 AJA Capture Source 过滤器。过滤器的更新版本允许您同时创建多个实例(但只有一个实例可能处于“播放”状态)。请查看 AJA 网站以下载最新版本的过滤器。如果您想查看 AJA 过滤器的最新测试版,请通过 support@avobjects.com 给我写信

关于ffmpeg - DirectShow 捕获源和 FFMPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16618686/

相关文章:

ffmpeg - 视频处理 - 使用空白视频创建过渡

video - 无法使用 ffmpeg 将视频关键帧间隔更改为 1

ffmpeg - 使用#EXT-X-DISCONTINUITY-SEQUENCE [ffmpeg] 下载 ts 流

c++ - 如何使用 directshow 从相机创建 avi?

DirectShow介绍资料

ios - 选择视频时可以更改 `UIImagePickerController`的标题吗?

video - FFMPEG Doodstream 压缩方法

c++ - 自定义过滤器不兼容?

python - 使用 OpenCV python 捕获 rtsp 相机

c++ - 将位图保存到视频(libavcodec ffmpeg)