私はglReadPixels()から生成されたrgbデータの配列を持っています。
RGBデータはピクセルパック(r1、g1、b1、r2、g2、b2、...)であることに注意してください。OpenCVまたは他の画像処理ライブラリを使用してRGBデータからYUV 420ビデオフレームを書き込む方法は?
OpenCVまたは別のC++ライブラリを使用してYUVビデオフレームをすばやく書き込むことができます。そのため、FFMPEGにストリームすることができますか? RGBピクセルをYUVピクセルに変換することは、オンラインで利用可能な変換式が数多くあるため問題にはなりません。しかし、YUVフレームを書くことが私の主な問題です。私は最後の数日からYUVビデオフレームを書き込もうとしていて、それを成功させることはできませんでした。
これは、私が遭遇した問題とYUVフレームの書き方についての私の他の質問の1つです。Issue with writing YUV image frame in C/C++ YUVフレームをファイルに書き込む際の私の現在のアプローチが何であるか分かりません。
これで、既存のライブラリ(存在する場合)を使用し、RGBデータを受け入れてYUVに変換し、YUVフレームをファイルまたはパイプに直接書き込むことができます。もちろん、私の既存のプログラムを修正してYUVフレームを書くことができればもっと良いでしょうが、すべてのソフトウェア開発プロジェクトに期限がありますので、私とプロジェクトチームのメンバーにとっても時間が優先されます。
FFMPEGでswscaleを試しましたか? swscaleでピクセル形式とスケーリング画像を変換するには、3行のコードが必要です。 – BlueWanderer
YUVデータをFFmpegにストリームする必要があるのはなぜですか?なぜRGBデータをフィードしないのですか? – TheJuice
YUVフレームを書き込むためのライブラリは必要ありません。 RGBデータをY、U、Vに変換できると言ったのですが、そのデータを同じ順序でファイルに書き込んでください。代替値を取ってU&Vをサブサンプルすることができます。それから、そのファイルを見るには良いYUVプレーヤーが必要です。私はこれを何度もやってきました。とても簡単です。 – nac