我需要與期望來自相機的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