我需要与期望来自相机的MPEG-4 RTP流(实际上来自多个不同相机的多个流)的硬件接口。我们想要做的就是从一组小的.mp4文件中提供视频,无休止地循环播放。循环播放MP4视频
我想要现在的问题是使用libVLC在服务器模式,用“--loop”的说法。代码如下:
libvlc_vlm_add_broadcast(vlc, "test", ("file:///" + video).c_str(),
"#rtp{dst=localhost,port=1234,sdp=rtsp://localhost:8080/test.sdp}",
1, broadcast_options, true, true);
const auto play_result = libvlc_vlm_play_media(vlc, "test");
这似乎是在我的桌面上,有一个问题:我必须把玩家循环太。如果我只是要求播放器播放一次,则在到达服务器文件末尾时停止播放。
有没有什么办法让它像一个连续的(永不结束)流一样看待客户端? VLC不是必需品,而是RTP MP4流。
1 - 不,我不想抢劫博物馆。这是模拟器。
在这种情况下,真正的客户端(从我们的角度来看)挂在以太网链路上的黑盒子。这意味着我们必须准确地*给他们*他们的期望,他们的协议并没有提到RTSP(只是RTP和MP4)。所以我不确定是否涉及RTSP和/或SDP。该议定书文件很难提及ICMP和ARP,所以你会认为如果涉及RTSP或SDP,他们会这么说。但也许RTP意味着其中的一个或两个,这只是我的无知而已?我会试试看看会发生什么。 –
我只是想象它是一个连续的RTP/MP4流(广播到一个多播地址),客户端可以跳入和跳出。 –
我以为你使用的是SDP,因为你的示例命令说'sdp = rtsp:// localhost:8080/test.sdp'。如果没有会话描述协议,它可能不知道如何播放流,因为FFmpeg使用动态负载类型ID(96),因此需要将其映射到SDP中的实际流类型。你到目前为止如何测试它? – aergistal