c# - 解码 H264 帧 C#

标签 c# video decode h.264

我在 C# 中使用托管媒体聚合 - https://net7mma.codeplex.com/ .

我有一个 Rtsp 客户端,它接收以 h264(有效负载类型 96)编码的 RTP 帧。 我希望能够将帧保存到视频文件中,并且能够告诉视频何时开始\结束。

我做了一些阅读,我读到一个一个地解码 h264 帧是一个问题。我真的不明白为什么。

这是为我收到的每个 RTP 帧引发的方法

void Client_RtpFrameChanged(object sender, Media.Rtp.RtpFrame frame)
{
    // Decode
}
  1. 谁能解释为什么逐个解码 h264 帧会出现问题?
  2. 是否有用于此的开源/库/dll?

非常感谢!

最佳答案

RtspServer 项目中有一个包含的类。

类是 RFC6184Media,它包含打包和解包的方法,并处理所有已定义的 Nal Unit 类型。

调用 Depacketize 后,有一个包含原始比特流有效负载的缓冲区,您必须添加一个由 0x000001 组成的起始代码,然后是原始比特流中包含的数据。

该项目的讨论区中有几个示例。

之后,您可以将流提供给解码器进行解码,然后才能显示帧;通常通过从 Yuv 到 Rgb 的转换,分别对应编码时使用的子采样。

我可以看到关于为对应于一个帧的几个静态数据包添加一个小演示,并展示如何实现预期的结果。

将来如果您在项目页面上进行讨论,我可能会更快地进行讨论。

关于c# - 解码 H264 帧 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25604108/

相关文章:

c# - 使用 System.Net.Mail 时格式化电子邮件的最佳方法是什么

即使按照建议修改了 .htaccess,VideoJS 也无法在 Firefox 中播放

ios - 在 iOS 应用程序中播放视频 .mov 文件的解决方法?也与 Adob​​e Flash 动画相关

video - FFMPEG:将 mkv 和 mka 合并到 mp4 会减慢 mp4 输出

ios - 如何将包含\u转义字符的JSON解码为UTF8 NSString?

javascript - 如何将变量传递给 asp.net 中的外部 JS 文件?

C# Struct 没有无参数构造函数?看看我需要完成什么

c# - 有人可以给我一些关于 WPF 的建议吗?

python - 为什么我不能在 python2.7 中解码 ‘utf8’ 字符串?

Python 3字节在CGI脚本中使用非ascii字符进行解码