rtpdumpファイルはrtpplay
とFFmpeg
を使用してmp4に変換できます。例えば
、のは、これらのファイルを考えてみましょう:
はそれらを分析します
$ rtpdump -Fascii -f narwhals-audio.rtpdump | head -n 1
0.000000 RTP len=15 from=0.0.0.0:0 v=2 p=0 x=0 cc=0 m=1 pt=97 (????,0,0) seq=1679 ts=249986024 ssrc=0xf944ac63
$ rtpdump -Fascii -f narwhals-audio.rtpdump | tail -n 1
65.570000 RTP len=15 from=0.0.0.0:0 v=2 p=0 x=0 cc=0 m=1 pt=97 (????,0,0) seq=4959 ts=253134824 ssrc=0xf944ac63
Analyis結果:
Audio sample rate = (253134824 - 249986024)/(65.57 - 0) ~= 48000
Audio codec: probably opus
Audio payload type: 97
Video sample rate: 90000
Video codec : probably VP8
Video payload type: 96
コーデック名は、すべての推測/投資/すべてを試す必要があります。
のは、オーディオ用のビデオと4848のポート4646を割り当て、いくつかのSDPファイルを作成してみましょう:
v=0
c=IN IP4 127.0.0.1
m=video 4646 RTP/AVP 96
a=rtpmap:96 VP8/90000
m=audio 4848 RTP/AVP 97
a=rtpmap:97 opus/48000
さんはその後、MP4ファイルに保存するSDPによると、これらのポートをリッスンするようにFFmpegを開始するには、コマンドラインを準備してみましょう:
を
ffmpeg -v warning -protocol_whitelist file,udp,rtp -f sdp -i narwhals.sdp -copyts -c copy -y narwhals.mkv
FFmpegは、パケットを受信できなかったので10秒後に終了するので、まだコマンドラインを起動しないでください。
その後、別のコンソール]タブで、rtpplayコマンドラインを準備します
rtpplay -T -f narwhals-video.rtpdump 127.0.0.1/4646 & rtpplay -T -f narwhals-audio.rtpdump 127.0.0.1/4848
もまだそれを起動しないでください。同時に起動する必要があるのは2つです。
すぐに、準備されたFFmpegコマンドラインを起動し、次にrtpplay
を起動します。 rtpplaysが終了するまで待ちます(約1分)。 FFmpegはタイムアウトしてファイルが完成します。
mkvファイルはMP4に変換される可能性がありますが、MP4ではVP8がサポートされていないため、トランスコードが必要です。トランスコードはFFmpegでも行うことができます。
残念ながら、オーディオ/ビデオ同期が問題となる可能性があります。これはFFmpegトリッキーを使用しても解決できます。またはSDPのサンプルレートをVP8/95000
のように調整することによって調整できます。