video - 如何在 directshow 中使用 x264 编码器

标签 video directshow directshow.net x264 libx264

我不知道如何将 x264 与 directshow 结合使用。我安装了许多认为假装有 x264 编码器但没有用的东西 我下载了 videoLAN x264 二进制文件,当我运行它时,它显示如此快的控制台窗口,但什么也没有之后发生

这些是我拥有的编码器

enter image description here

我正在使用 Windows 8.1 x64

请帮助解决这个问题,它只会让我发疯,我想使用x264,因为我安装的其他编码器要么不起作用,要么编码的尺寸太大。

最佳答案

x264本身没有DirectShow接口(interface),所以你需要一个包装器(或者,你需要自己实现它)。 x264vfw正在包装 x264 并将编码器公开为 VFW 编解码器,DirectShow 通过 AVI Compressor Filter 使用 VFW 编解码器。类似的选项有:direct264x264 wrapper by Monogram 。无论哪种方式,已安装的编解码器都会显示在 DirectShow 过滤器列表中,并且可以通过编程方式使用(确保最简单的方法是 SDK GraphEdit 工具,或 GraphStudioNext 或类似工具)。

安装编解码器后,您可以在过滤器列表中找到它。通常,过滤器会注册到视频压缩器类别中(此处以 x264vfw 为例):

DirectShow Filter List

该过滤器扩展了 DirectShow 基础设施,并且可以像其他压缩器一样使用...如文档所示。视频编码器本身并不单独使用,为了构建有效的 DirectShow 图形,通常在拓扑中具有源/渲染器过滤器,而视频编码器是介于两者之间的东西。

下面是 DirectShow 过滤器图的示例,它利用 x264vfw 视频编码器,并将 Windows Media .WMV 文件转码为 H.264 .MP4 文件:

WMV to MP4

关于video - 如何在 directshow 中使用 x264 编码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26346810/

相关文章:

c# - DirectShow ISampleGrabber.SetCallback 在显示 C# MessageBox 后抛出 InvalidCastException

来自两个摄像头的 ffmpeg 流视频具有相同的设备名称

OpenCV:VideoCapture 不适用于 DSHOW 后端

c++ - 这个 C++ [out] 参数是指向枚举的指针,还是只是一个值?

webcam - DirectShow - 在观看时捕获网络摄像头?

javascript - Javascript 中的 MediaSource 与 MediaStream

css - Chrome v52 html5 视频变长了吗?

c# - .Net 的 Blackmagic Decklink 接口(interface)

ios - AVAssetExportSession 完成导出后不告诉我

android - Air Mobile 中的 StageVideo 回退不起作用。视频组件无法播放 .mp4