我已經使用Wireshark將視頻呼叫保存到.pcap文件,並且我想從RTP數據包中獲取視頻。 RTP包有效載荷類型是vp8,我可以通過使用C++中的libpcap庫找到vp8 RTP包。然後我將所有RTP vp8數據包的內容保存到一個文件中。但我無法通過使用ffmpeg將此原始vp8數據轉換爲.mp4。轉換過程中ffmpeg給出錯誤。 的ffmpeg轉換錯誤:無效的數據發現處理輸入將RTP vp8淨荷數據包保存爲.webm文件
是怎麼得到VP8 RTP包.MP4或.webm視頻文件的步驟是什麼時候?
編輯:我可以得到除VP8有效載荷描述符,有效載荷頭和關鍵幀頭之外的原始VP8數據。然後我說每個VP8原始幀IVF頭和幀頭,根據IVF文件 IVF Document
但是當我想用ffmpeg的
的ffmpeg -i轉換我的IVF文件(輸出1)至output1.mp4輸出1 -c:v VP8 output1.mp4
我得到的錯誤
「然後我將所有RTP vp8數據包的內容保存到一個文件中。」 - 你保持數據包邊界嗎?即它只是二進制連接的垃圾或每個數據包仍然是一個單獨的VP8幀與有效的時間戳等? –
我得到所有包括VP8的RTP數據包,然後我從這些數據包中提取了RTP頭,並保存了RTP有效載荷數據。我保存的數據只是連接的RTP有效負載。現在我想從原始數據中獲取視頻。可能首先,我必須找到每個幀的邊界,然後我必須爲每個幀添加一個頭以便能夠以vp8格式播放。 我可以通過使用S位和部件ID來提取vp8有效負載標頭。所以我認爲我可以找到每個框架的邊界。 – Ibrahim