1

私はフレームの行からビデオを作成する方法を探しています。私は OpenGL でレンダリングし、glGetTexImage 関数を使用して int 配列として RAM に転送しました。これをRAMで直接達成することは可能ですか(〜10秒のビデオ)、または各フレームをハードディスクに保存してからビデオをエンコードする必要がありますか?

このサンプルhttp://cekirdek.pardus.org.tr/~ismail/ffmpeg-docs/api-example_8c-source.htmlを別のSOの質問で見つけましたが、これはまだ最善の方法ですか?

4

2 に答える 2

4

今日、私はこの例を使用するためのヒントを得ましたhttp://git.videolan.org/?p=ffmpeg.git;a=blob;f=doc/examples/decoding_encoding.c;h=cb63294b142f007cf78436c5d81c08a49f3124be;hb=HEAD h264を達成できます。openglによってレンダリングされたフレームをエンコードする場合の問題は、それらがRGB(A)であり、ほとんどのコーデックがYUVを必要とすることです。変換にはswscale(ffmpeg)を使用できます-使用方法の例はここにありますhttp://web.me.com/dhoerl/Home/Tech_Blog/Entries/2009/1/22_Revised_avcodec_sample.c.html

ananthonlineが述べたように、フレームの直接エンコーディングはCPUを集中的に使用しますが、ffmpegを使用してフレームをrawvideo形式として書き込み、rgb24 pixelformatをサポートし、ffmpegのcmdコマンドを使用してオフラインに変換することもできます。

于 2012-05-10T13:08:07.013 に答える
0

クロスプラットフォームの方法が必要な場合は、おそらく ffmpeg/libavcodec を使用する必要がありますが、Windows では、こちらのリソースを使用して非常に簡単に AVI を作成できます。

于 2012-05-03T16:00:31.597 に答える