1

libav を使用してビデオをエンコードしようとすると、少し問題が発生します。

ratecontrol.c : 766それを言うとアサートエラーが発生しますq>0.0

何が起こっているのかわかりませんが、文字 q は通常品質を表し、0 はロスレスであることを知っています。

しかし、この場合、私は何が間違っているのか理解できません。

これに関するコードはたくさんありますが、ここに投稿することはできません。gpl と libx264 で ffmpeg パッケージ 1.0 を使用しています。crf値が1のlibx264エンコーダーを使用してエンコードしようとしています。

入ってくる値を確認しましたが、それらは賢明なようです。指定された画像を個別の .bmp ファイルに保存しようとしましたが、すべてが順調であるようです。

編集:

了解しました。ビットレートがエンコーダーと互換性がありませんでした。

この問題を示すためにこのようなことをする必要があるのは奇妙です..

4

1 に答える 1

1

問題のファイルはlibavratecontrol.cのようです

それを囲む線は次のとおりです。

 763         q= modify_qscale(s, rce, q, picture_number);
 764 
 765         rcc->pass1_wanted_bits+= s->bit_rate/fps;
 766 
 767         assert(q>0.0);

ですから、深く掘り下げて理解する必要があるようですmodify_qscale

この質問は非常に一般的であるため、コードを少し理解してみることをお勧めします。

于 2012-11-26T10:18:11.143 に答える