我想從本地文件上用RTP傳輸的mpegts複製一堆SD源。 (VBR mpeg2video,mp2音頻)。它工作正常的一個組播源用下面的命令:Ubuntu中的FFmpeg RTP網絡問題
ffmpeg -i rtp://@IP1:PORT -c copy video1.mpg
但是當我跑了第二ffmpeg的情況下使用下面的命令:
ffmpeg -i rtp://@IP2:PORT -c copy video2.mpg
然後我得到了來自FFmpeg的情況下錯誤(」 RTP:丟棄收到的舊數據包太晚「),並在兩個文件(video1.mpg和video2.mpg)中錄製來自第二個來源(rtp:// @ IP2:PORT)的視頻。
這個問題只發生在Linux(我查了Ubuntu 14.04 - 16.04)。我在Windows中沒有問題,並且可以正確地從文件並行轉碼視頻。在Ubuntu下,即使兩個調諧到不同來源的ffplay實例也會播放相同的內容(來自最後打開的來源)。我試着用VLC回放,沒有這樣的問題。
我可以使用FFmpeg的使用-f選項時解決此問題:
ffmpeg的-f MPEGTS -i RTP:// @ IP1:PORT -c複製video1.mpg
和
ffmpeg的-f MPEGTS -i rtp:// @ IP2:PORT -c複製video2.mpg,但後來出現以下錯誤:「[mpegts @ 0x306e240] PES數據包大小不匹配」並接收這兩個文件(video1.mpg和video2 .mpg)與工件和凍結效果。兩個操作系統都會出現此問題。
如何在Ubuntu下同時在多個RTP流中使用FFmpeg對視頻進行編碼轉換,而不會出現錯誤和僞像?
你解決你的問題?我得到了RTP包丟失,並且圖片丟失了錯誤。 –
使用udp到http代理(udpxy)爲我解決了這個問題。 –
我想在android中運行ffmpeg,所以我想我不能使用udpxy解決方案。你同意增加最大UDP緩衝區大小可以幫助嗎? –