我在C#中使用托管媒体聚合 - https://net7mma.codeplex.com/。
我有一个Rtsp客户端,它接收以h264编码的RTP帧(有效负载类型96)。 我希望能够将帧保存到视频文件中,并且还可以判断视频何时开始\结束。
我做了一些阅读,我读到一个一个一个地解码h264帧的问题..并不是真的理解为什么。
以下是我收到的每个RTP帧的方法
void Client_RtpFrameChanged(object sender, Media.Rtp.RtpFrame frame)
{
// Decode
}
非常感谢!
答案 0 :(得分:0)
RtspServer项目中有一个包含的类。
该类是RFC6184Media,它包含打包和解包的方法,并处理所有已定义的Nal单元类型。
在调用Depacketize之后,有一个包含原始比特流有效载荷的缓冲区,你必须添加一个由0x000001组成的起始码,然后是原始比特流中包含的数据。
项目的讨论区域有几个例子。
之后,您可以将流提供给解码器进行解码,然后才能显示帧;通常通过从Yuv到Rgb的转换分别对应于编码时使用的子采样。
我可以看到为一些与帧对应的静态数据包添加一个小型演示,并展示如何实现所需的结果。
将来,如果你在项目页面上进行讨论,我可能会更快地完成它。