[問題] 利用 ffmpeg 工具來轉換 RTP 檔案

        想利用 ffmpeg 工具將 RTP 檔案轉換成 wav 檔,但是似乎過程會出現錯誤。我將 RTP stream 儲存成 RTP 檔案,分別儲存成三種檔案類型,而只有一種類型可以被轉換成功。三種類型的描述如下:
    第一種 -- 保存來自網路的每個 RTP 完整封包,每個封包包含 RTP header 加上 payload。
    第二種 -- 只保存第一筆 RTP header,其餘封包的 header 不保存,每筆 payload 依序儲存下來。
    第三種 -- 只保存所有的 payload,不含 RTP header。

我將上述這三種檔案的範例放在底下的連結,https://drive.google.com/file/d/1aCznHT_3Wp45Ndm50dUb_G_0hyje0O49/view?usp=share_link,接下來透過 ffmpeg 工具來進行轉換,下面是依序採用三種檔案類型來轉換成 wav。

"ffmpeg.exe -loglevel debug -f rtp -i input.sdp -i AudioRx_RTP_Packets.rtp out1.wav" ==> 出現錯誤

"ffmpeg.exe -loglevel debug -f rtp -i input.sdp -i AudioRx_RTP_Header.rtp out2.wav" ==> 出現錯誤

"ffmpeg.exe -f mulaw -ar 8000 -ac 1 -i AudioRx_Raw_Data.raw -codec:a pcm_mulaw out3.wav" ==> 成功

        過程出現錯誤時,返回的錯誤訊息為 "Unsupported RTP version packet received",實在找不出問題點在哪裡,詢問了網站 stackoverflow 也沒有人能回答。https://stackoverflow.com/questions/75955112/got-error-to-convert-rtp-files-by-using-ffmpeg-tool,希望後續有人能解答。

留言

此網誌的熱門文章

[筆記] Raspberry Pi 樹莓派的軟體開發

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[筆記] Visual Studio 遠端偵錯的設定步驟

[筆記] Android APP 藍芽範例說明 -- BluetoothChat

[應用] 藍芽 BLE client/server 架構:BLE remote controller

[模組] LD3320 離線語音辨識晶片與 ESP32 無線傳輸