1

私は FFmpeg を使用して mp4 ファイルを書き込んでいます。リモート IP カメラからビットマップ画像を取得し、h.264 でエンコードしています。メディア コンテナーは mp4 ファイルです。数分しか記録しない場合、MP4 ファイルを生成するのに問題はありません。問題は次のとおりです。 FFmpeg は、 method を呼び出したときにバッファー データをディスクにav_interleaved_write_frameフラッシュしません (メモリ内のすべてのエンコードされたデータは決して解放しません)。 method を呼び出した場合にのみ、エンコードさavio_close(oc->pb);れたすべてのデータをディスクにフラッシュします。効果。私はFFmpegの初心者です。FFmpegに精通している場合は、助けてください。avcodec_flush_buffersav_interleaved_write_frame

前もって感謝します。

ショーン

4

2 に答える 2

0

別の提案 (私の場合はうまくいきました) は、NULL AVPacket ポインターで呼び出すことです。

av_interleaved_write_frame(AVFormatContext*, NULL);

次に、バッファにあるストリームをフラッシュします。

于 2016-06-09T20:16:40.530 に答える