我正在尝试编写一个程序,它将连接到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,可以播放。
我尝试在多播和单播地址上以UDP和RTP的身份连接到重定向流,但都没有成功。在重新发送数据报之前,我是否需要添加或删除数据报中的内容?或者是我尝试在VLC中查看它的方式有问题?谢谢你的帮助。
发布于 2013-09-30 17:30:43
为了播放原始UDP流,VLC需要关于流的信息(该信息在DESCRIBE和SETUP消息中通过RTSP传输)。尝试创建sdp文件,指定端口号、视频类型等(您需要阅读DESCRIBE response from serer),然后在vlc中打开它。
我已经设法让它工作了,但是像这样使用VLC,我遇到了同步和视频输出的问题(视频中断)。
https://stackoverflow.com/questions/19035364
复制相似问题