2010-12-10 12 views
1

H264でRgb24フレームをエンコードすると、「入力幅がストライドよりも大きい」ということになります... ところで、私がYuv420pの生の画像を与えると、私は、私にそれを知りたいと思った何が...FFmpeg:H264へのRGbフレーム(AvFrames)の符号化

i)は、我々が符号化YUVフォーマットを与えることはありますか? h264をエンコードするためのrgbフレームを与えることができませんか? ii)rgbフレームを与えることができれば、そのトリックは何ですか?

+0

コマンドラインからffmpegを使用しているのですか、またはlibav *ライブラリC APIを使用していますか? –

+0

libav * library C APIを使用する – NoviceAndNovice

答えて

0

これはちょっと遅かったです(2010年以降の回答はありません)。画像データの折り返しを調整する必要があるようです。次のMSDNの記事(私はそれがMSDNだ知っているが、関係する概念のその説明は本当に良いです)から

映像をメモリに格納されている場合、メモリバッファは、余分なパディングを 含まれている場合がありますピクセルの各行の後のバイト。パディングの バイトは、画像がメモリにどのように格納されるかに影響しますが、画像がどのように表示されるのかには影響しません。

ストライドは、メモリ内の1行のピクセルからメモリ内の次のピクセル行の までのバイト数です。ストライドはピッチとも呼ばれます。 パディングバイトが存在する場合、次の図に示すように、ストライドは イメージの幅よりも広くなります。

Image stride illustration

Read more here

あなたは画像の幅と画像ストライドの両方に指定されてきたものを見てください。行のために供給しているデータはどれも、ストライドに指定されているビット数よりも多いビット数を持っています(また、一致していれば、幅も推測しています)。