2009-07-15 8 views
2

私は古いビデオフォーマットをデコードすることができ、BMPのビデオフレームとWAVのオーディオをコールバック関数で返すことができるビデオデクリプタライブラリを持っています。今、私は窓の下で任意の標準フォーマットで新しいビデオをエンコードする必要があります。Visual Cでビデオをエンコードするにはどうすればよいですか?

これを行うための標準的な方法は何でしょうか?私はWin32/Cを使用しています。私はWindowsには独自のエンコーディングライブラリとドライバがあり、FFMPEGを使う必要はないと思う。サンプルコードへのポインターや、少なくとも見るためのライブラリへのポインターは非常に役に立ちます。

編集:承諾します。 FFMPEGはこれを行う最も簡単な方法です。

答えて

5

Windowsでは、2つのネイティブの選択肢があります。

  1. 真剣に考えるにはあまりにも古代のですが、Video Compression Managerを持っている古いWindows Multimediaライブラリ。
  2. そして、DirectShowがあります。

これは確かにDirectShowで実行できますが、COMプログラミングとフィルタ、グラフ、モニカの概念を楽しむ方がいいですね。クラッシュコースのため、このチュートリアルを参照してください。

Recompressing an AVI File

MSDN documentation

より簡単なアプローチは、確かにFFMPEGまたはVLCのようなライブラリを使用することです。

1

私はVirtualDubのソースコードを見ることをお勧めします。これは、VFWを使用するよく知られたエンコーダです。あなたは、そのソフトウェアからいくつかのアイデアを得ることができるかもしれません。

4

自分の心を救うために、FrankはFFMPEGを使うことを提案します。正しい引数を指定して別のFFMPEGプロセスを実行すると、エンコードの目標を達成する最も簡単な方法になります。

あなたの他のオプションは、次のとおりです。

libavcodec - FFMPEGで使用される中央図書館を。私は利用可能なlibavcodecの多くのWindowsバイナリが存在しないように見えるので、おそらくCygwinやMingWの設定が必要な、自分自身をコンパイルする必要があるでしょう。

ffdshow-tryouts - libavcodecに基づくDirectShowフィルタとして実装されたビデオコーデックライブラリ。彼らはそれを操作するためにAPIを持っているようですが、それは.NETライブラリです。

関連する問題