将RTP流数据写入文件

时间:2012-03-05 12:46:44

标签: c++ streaming udp rtp

我编写了一个应用程序,触发IP摄像机在MPEG4上传输数据(RTP)。到目前为止,此工作正常 - 我开始使用相应的RTSP命令(DESCRIBESETUPPLAY)设置并启动流。

流式传输时,我会收到通常的Sender Reports并发送自己的Receiver Reports - 这里的一切正常。

现在使用上面提到的应用程序,我 NOT 读取流。我有一个单独的硬件,它只记录通过以太网的所有东西(有点像Wireshark)。现在,当整个流媒体完成后,我可以从我的硬件下载这些日志并从中提取数据。

那么我所拥有的是一个日志文件,其中RTP流中的所有数据都是原始数据。

我现在的问题是:如何将其恰当地写入MPEG4文件?我知道这是一个非常广泛的问题,我不希望得到一步一步的教程。但实际上我有点不知所措,不知道从哪里开始。如果我只是将RTP消息中的所有Payload顺序存储到MPEG4文件中,它就不起作用了。现在我也被SDP和东西搞糊涂了。 好吧也许有人给我一个链接或帮助..?

2 个答案:

答案 0 :(得分:1)

您应首先阅读RFC3016,其中描述了MPEG-4流的RTP格式,然后您将了解如何从RTP流中提取MPEG-4帧。

答案 1 :(得分:0)

我实际上已经从MPEG4改为H.264 - 实际上编写像这样的视频文件要容易一些。对于H.264,这个答案几乎涵盖了它:

How to process raw UDP packets so that they can be decoded by a decoder filter in a directshow source filter