繁体   English   中英

DirectShow(.net)h264编码器/解码器

[英]DirectShow(.net) h264 Encoder/decoder

在我的项目中,我必须遵循此工作流程

  1. 我必须拍摄网络摄像头捕获的图像并预览
  2. 在后台使用H264对其进行编码
  3. 保存在桌子上
  4. 解码保存的文件以播放。

我已经使用Direct Show .net实现了这一点,并且已经成功实现了步骤1,但是现在我陷入了从2开始的问题

我进行了很多搜索,因为我需要与.net兼容的东西,但真正有用的结果却很少,我发现有直接显示解码器使用h264(msdn),但我认为这不是我想要的。 我也发现很多人都在谈论窗口媒体基础,但我认为它仅适用于本机代码。

请帮我解决您的想法(我需要一个起点)。

我的问题如何使用h264从DirectShow编码/解码流

由于您使用的是DirectShow,因此正确的方法是为两种情况创建两个不同的过滤器图(即,捕获:1、2、3和回放:4)。 要进行编码/解码,请在过滤图中使用H264编码器/解码器过滤器。 据我所知,DirectShow不提供内置的H264编码过滤器,但是您可以使用第三方DShow过滤器为您完成工作。

简单搜索解码器返回以下内容:

如果您对未压缩的捕获视频流使用RGB / A像素格式,请注意,某些编码器过滤器可能要求您的视频流为Luma-chroma像素格式,例如YV12或NV12,在这种情况下,您必须使用彩色空间转换器滤镜,幸运的是,DShow类别中的DShow(作为DMO)支持该滤镜。

您的捕获图应如下所示:捕获过滤器-> [Colorspace Converter]-> H264编码器-> [Multiplexor(例如,mp4)]-> Writer过滤器(File writer或第三方文件接收器过滤器)

(方括号-[]表示不需要使用这些过滤器。)

播放图应为:File Source-> [Splitter]-> H264 Decoder-> Render filter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM