gpt4 book ai didi

c# - DirectShow(.net) h264 编码器/解码器

转载 作者:行者123 更新时间:2023-11-30 22:00:54 24 4
gpt4 key购买 nike

在我的项目中我必须遵循这个工作流程

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

我已经使用 Direct Show .net 来实现它,并且我已经成功地实现了步骤 1,但我现在陷入了从 2 开始的点

我进行了大量搜索,因为我需要与 .net 兼容的东西,但很少有真正有用的结果我知道有 direct show decoder using h264(msdn)但我认为这不是我要找的。我也发现很多关于窗口媒体基础的讨论,但我认为它只适用于 native 代码。

请帮我说说你的想法(我需要一个起点)。

最佳答案

my question how to encode/decode stream from directshow using h264

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

解码器的简单搜索返回了这个:

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

您的捕获图应如下所示:捕获过滤器 -> [色彩空间转换器] -> H264 编码器 -> [多路复用器(例如 mp4)] -> 编写器过滤器(文件编写器或第三方文件接收器过滤器)

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

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

关于c# - DirectShow(.net) h264 编码器/解码器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28192564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com