私はwebmビデオにする必要があるjpgの束を生成するアプリケーションを持っています。私はjpegsからvpxencサンプルに自分のrgbデータを取得しようとしています。出力ビデオのオリジナルのjpgから基本的な形を見ることができますが、すべてが緑色に塗りつぶされています(黒でなければならないピクセルも緑の半分程度です)。は、RGBフレームからwebmビデオを作成する必要があります
私はそれをVPX_IMG_FMT_YV12私は同様に構成されていると仮定していたデータは、供給しようとしている:フレーム毎に
8ビットのYデータの各2×2のVブロックの 8ビット平均を 8-ここで、各2×2のビット平均値Uが
ブロックは、ソース画像と出ている映像のスクリーンショットである。
それはentiですRGB-> YV12変換を間違って実行している可能性がありますが、8ビットのYデータをエンコードしてUブロックとVブロックを0に設定しても、ビデオはほぼ同じように見えます。私は基本的にこの式を通じて私のRGBデータを実行している:
// (R, G, and B are 0-255)
float y = 0.299f*R + 0.587f*G + 0.114f*B;
float v = (R-y)*0.713f;
float u = (B-v)*0.565f;
...そして私はvpxencに書き込むUとVのための2x2のフィルタリングされた値を生成するために、私は(A + B + C + Dを行います)/ 4であり、ここで、a、b、c、dは各2×2画素ブロックのUまたはV値である。
だから私は思ったんだけど:
がいいWEBMのビデオを取得するためにvpx_codec_encodeするRGBデータを取得し、それを養うために(コードで)もっと簡単な方法はありますか?
RGB-> YV12変換がどこか間違っていますか?
ご協力いただければ幸いです。
最新のコードを教えていただけますか?ここにまったく同じ問題の前に立っている私は012- ありがとう –