私は大学向けにC言語でいくつかの物理シミュレーションを書いていますが、今では一連の数百のpngを出力し、それを高速で見ています...単純なロスレスコーデックライブラリを使用して、それらをC言語のビデオにマージする方法はありますか? ?
PS私はcairoグラフィックスを使用しており、一般的なグラフィックスプログラミングの経験はほとんどありません
外部プログラムの使用を避けたい場合は、libavcodecがおそらくビデオを生成するための最良の方法です。それはCであり、非常によく文書化されています(上記のリンクを参照)。
Mencoderを使用したJonasのソリューションに関するその他のドキュメントはこちらです。
あなたが求めているものとは正確には異なりますが、私は自分でロールバックしません.mencoderを使用します:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o output.avi
PS。mencoder は MPlayer の一部であり、オープン ソースです。DS。
PNGをビデオとして見たいだけですか?それらをマージする必要はありません:
mplayer -fps 2 mf://*.png
PNG を書き込む代わりにそれを行いたい場合は、ffmpeg の libavcodec に高速なロスレス コーデックがあります。例: ffvhuff、または huffyuv。
または、libavcodec を使用したくない場合は、y4m の生の出力を書き込んでパイプすることができます。yuv4mpeg は、フレーム レートとフレーム サイズを含むヘッダーであり、各フレームの非圧縮ピクセルはそのままです。