ffmpeg libを使用して、rtspストリームをデコードせずにローカルmp4ファイルに保存したいと思います。inpoutストリームと出力ファイルの両方がH264+AACコーデックを使用します。今のところ、次のコードを使用して、入力ストリームからパケットを読み取り、出力ファイルに書き込みます。
...
av_write_header(oFmtCtx);
av_init_packet(&packet);
int j = 0;
while (av_read_frame(pIFmtCtx, &packet) >= 0 && j < 140/*temp use to get a period of the stream*/)
{
//now I only output the audio stream
if (packet.stream_index == audioStream)
{
AVPacket pkt;
av_init_packet(&pkt);
pkt.size = packet.size;
pkt.data = packet.data;
pkt.dts = AV_NOPTS_VALUE;
pkt.pts = AV_NOPTS_VALUE;
pkt.flags |= PKT_FLAG_KEY;
pkt.stream_index = oStream->index;
if (av_interleaved_write_frame(oFmtCtx, &pkt) != 0)
{
LOGI("Error while writing audio frame\n");
break;
}
}
j++;
}
av_write_trailer(oFmtCtx);
ファイルが生成されます。VLCを使用して開くと、再生は適切な時間続きますが、オーディオは出力されません。どんな助けでも大歓迎です、事前に感謝します。
ボルトン