0

画像を H264 MP4 ビデオにエンコードしようとしています。私が抱えている問題は、いくつかの画像がスキップされたり、ビデオの最後に単に欠けていることです. アニメーションであるため、エンコードしたすべての画像を再生するにはビデオが必要です。

エンコーダを適切に設定するための助けがあれば、大歓迎です!

エンコーダ設定:

AVCodecContext *c;
...
c->codec_id = AV_CODEC_ID_H264;
c->bit_rate = mOutputWidth*mOutputHeight*4;//400000;
/* Resolution must be a multiple of two. */
c->width    = mOutputWidth;
c->height   = mOutputHeight;
    /* timebase: This is the fundamental unit of time (in seconds) in terms
     * of which frame timestamps are represented. For fixed-fps content,
     * timebase should be 1/framerate and timestamp increments should be
     * identical to 1. */
c->time_base.den = mFps;
c->time_base.num = 1;
c->gop_size      = 12; /* emit one intra frame every twelve frames at most */
c->pix_fmt       = AV_PIX_FMT_YUV420P;
...
av_dict_set(&pOptions, "preset", "medium", 0);
av_dict_set(&pOptions, "tune", "animation", 0);

/* open the codec */
ret = avcodec_open2(c, codec, &pOptions);
if (ret < 0) {
    LOGE("Could not open video codec: %s", av_err2str(ret));
    return -1;
}

2013 年 7 月 24 日更新:を設定し、最後のビデオ フレームを繰り返し書き込むことで
、より良いビデオを実現できました。すべての問題が解決したようです。私にはそれを行うのは奇妙に思えますが、ビデオエンコーディングの世界では標準的なことでしょうか? これに関するヒントはありますか?gop_size=FPSFPS+1

4

1 に答える 1