【发布时间】:2013-10-02 20:12:44
【问题描述】:
我正在尝试编写一个程序,该程序将连接到 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 中查看它的方式有什么问题?感谢您的帮助。
【问题讨论】:
-
你确定 VLC 能够播放“原始”UDP 数据包吗?通常需要一些更高级别的协议,例如 RTP。
标签: ffmpeg udp boost-asio rtsp