将RTSP视频保存并重新流式传输为直接UDP

时间:2013-09-26 18:00:29

标签: ffmpeg udp boost-asio rtsp

我正在尝试编写一个程序,该程序将连接到RTSP视频源,并使用UDP将视频数据重定向到另一个位置。我也在保存RTSP数据包,以便能够在后一时刻重放视频流。现在我的程序可以连接到RTSP视频流并重定向并保存,但是当我尝试查看重定向的视频时,我没有使用VLC。

目前,该程序只是从其开放UDP套接字中接收的RTSP视频数据包中删除数据报,然后使用boost asio库使用此代码重新发送它们。

newVideoSocket->send_to(&dg.data[0], dg.data.size() ,Endpoint);

当我使用Wireshark查看流量时,我发现它实际上是将数据发送到新地址并且它被识别为UDP数据包,但是当我尝试使用VLC查看视频时没有任何反应。视频流是Mpeg4,视频编码为H.264,VLC可以播放。

我尝试在多播和单播地址连接到重定向的流作为UDP和RTP但是没有成功。在重新发送之前,我是否需要在数据报中添加或取出某些内容?或者我是如何在VLC中查看它的?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

要播放原始UDP流,VLC需要有关流的信息(此信息通过DESCRIBE和SETUP消息中的RTSP传输)。尝试创建sdp文件,指定端口号,视频类型等(您需要从serer读取DESCRIBE响应),然后在vlc中打开它。

我设法让它工作,但是像这样使用VLC我遇到了同步和视频输出问题(视频被破坏)。