プログラムはrtp自体をパイプでつなぐことができますffmpeg-を使用してそれを呼び出すことさえできpopen3()ます。
中間SDPファイルを使用する必要があるようです-名前付きパイプとして作成したファイル、またはtmpfile()アプリケーションが書き込むファイルを指定できると思います-ファイルを中間として使用します。
コマンドラインは次のようになります。
int p[3];
const char* const out_fmt = "avi";
const char* cmd[] = {"ffmpeg","-f",,"-i",temp_sdp_filename,"-vcodec","copy","-f",out_fmt,"-",NULL};
if(-1 == popen3(p,cmd)) ...
// write the rtp that you receive to p[STDIN_FILENO]
// read the avi from p[STDOUT_FILENO]
// read any messages and error text from p[STDERR_FILENO]
この状況では、ffmpegは、ビデオとオーディオをトランスコードせずにコンテナー(rtpストリームとAVI)を再パッケージ化するのに十分賢いと思います(これは-vcodec copyスイッチです)。したがって、品質が低下することはなく、非常に高速になります。