IPカメラからH.264画像を取得していて、エンコードされた画像を(デコードせずに)保存したい。この目的のために、ffmpegのoutput-example.c (libavformat / output-example.c)を使用しています。生のH.264画像を保存するには、次のようにします。
AVPacket pkt;
av_init_packet(&pkt);
if (c->coded_frame->pts != AV_NOPTS_VALUE)
pkt.pts= av_rescale_q(c->coded_frame->pts, c->time_base, st->time_base);
if(c->coded_frame->key_frame)
pkt.flags |= PKT_FLAG_KEY;
pkt.stream_index= st->index;
pkt.data= (uint8_t *)ulAddr;//video_outbuf;
pkt.size= out_size;
save_image(pkt.data, out_size);
ここで、 ulAddrは画像へのアドレスポインタであり、out_sizeは画像サイズです。画像をメディアビデオファイルに保存する代わりに、個々の画像を保存したいと思います。save_image関数は、基本的なfopen関数とfwrite関数を使用して画像を保存するだけです。フレームをデコードして保存すると、すべて正常に動作します。しかし、エンコードされたフレームの保存に問題があります。エンコードされたフレームは非常に小さいサイズで保存されるため、デコードできません。何か問題でもありますか?私はこの点でどんな助けにも本当に感謝します。