1

swscaleを介してpng画像データを実行してYUV420Pデータを取得し、MSMPEG4V1コーデックを使用してそのフレームをエンコードすることにより、iPhoneでビデオをエンコードしています。API ドキュメントでは、avcodec_encode_video は、そのエンコード操作によって出力バッファーから使用されたバイト数を返す必要があります。エンコーダーには 234,000 バイトが入っていますが、avcodec_encode_video によって返される結果は単純に "4" です。結果は、24 フレームにわたってまったく同じです。ここで何かが怪しいようです...何か洞察はありますか?

コードへのペーストビン リンクは次のとおりです。

http://pastebin.com/ht94FWva

(SOから離れたリンクで申し訳ありません。コードをいくつかの場所で複製したくありませんでした)

編集:

また、ffmpeg が使用するカスタム ログ コールバックを設定し、ログ レベルを「Verbose」(libavutil/log.h) に設定しているため、libavcodec はコンソールに問題を記録する必要がありますが、avcodec は静かです。彼は全体の操作。(注:ログコールバックが機能していることを確認するためにテストを行いました)

4

1 に答える 1

0

コーデックに関連している可能性があります。私はそれをMSMPEG4V1コーデックからMPEG1VIDEOに切り替えました、そしてavcodec_encode_videoは私が期待していたものにもう少し一致する値を返しています。

于 2010-05-12T16:40:27.017 に答える