7

Mac OS X は初めてで、Windows には精通しています。Windows には、DirectShow、多数の組み込みフィルター、COM プログラミング、および GraphEdit があり、コードで作成したグラフの非常に高速なプロトタイピングとスヌーピングを行うことができます。

カメラ、ウェブカメラ、マイク、カラー スペース、ファイル、分割、同期、レンダリング、ファイルの読み取り、ファイルの保存、および DirecShow で当然のことと思っている多くのことを Mac で操作しようとしています。ライブの申し込みをまとめるとき。Mac 側では、これまでのところ何も見つかりませんでした。どこを見ればいいのかわからないか、Mac のメディアの扱いやすさの評判と、そこに侵入してメディア操作の構成要素をいじり始める一貫したプログラム機能を結び付けるのに最も苦労しています。

gstreamer や QT 用のライブラリを使用するという弱い提案を見たことがありますが、これが Apple の進むべき道であるとは信じられません。そして、QuickTime のドキュメントに出くわしましたが、トランジション、スプライト、ブロードキャストなどを行うつもりはありません...

DirectShow で頭脳を訓練したということは、Apple が DirectShow のような機能を提供することについてどのように考えているかさえ知らないということです。つまり、適切なキーワードがわからず、どこを見ればいいのかもわかりません。本?いくつか買った。これで、あなたの妹の結婚式のビデオを編集できるコードを書くことができるかもしれません (このトピックについてうまく進められない場合、次はあなたにとってどのような価値があるかを尋ねることになるかもしれません)。そして、それらをつなぎ合わせる方法...何もありません。提案?

4

1 に答える 1

10

現在、Mac でのビデオ処理は大きな転換期を迎えています。QuickTime は非常に古いものですが、大きく強力であるため、過去 5 年ほどの間、段階的な置き換えプロセスが行われてきました。

つまり、QTKitは、今後サポートされる QuickTime サブセット (キャプチャ、再生、フォーマット変換、および基本的なビデオ編集) です。従来の QuickTime API は今のところまだ残っており、少なくともその主要な機能が他の場所で利用できるようになるまではおそらく残りますが、32 ビットのみです。一部の関連するビデオについては、場所で使用する必要がある場合があります。

現時点では、iOS が Mac よりも進んでいます。なぜなら、AV Foundationでゼロから始めることができるからです。Mac メディア フレームワークの将来は、おそらく直接 AV Foundation (QTKit がその上にある軽量のシム) になるか、非常によく似た QTKit の拡張になるでしょう。

オーディオには、Mac と iOS にある Core Audio があり、すぐになくなることはありません。それは非常に強力ですが、場所によってはやや鈍いです。幸いなことに、オンライン サポートは非​​常に優れています。メーリング リストは不可欠なリソースです。

フィルターとフレームレベルの処理については、他の誰かが言及したようにCore VideoとCore Imageがあります。モーション グラフィックスには、独自のパッチを追加するためのグラフィカル エディターとプラグイン アーキテクチャを含むQuartz Composerがあります。プログラムによるプロシージャル アニメーションと、レンダリング モデル (OpenGL、Quartz、ビデオなど) の簡単な混合には、Core Animationがあります。

これらすべてに加えて、当然ながら、ビルトイン機能が期待どおりに動作しないオープン ソース ライブラリを使用できない理由はありません。


以下のコメントに対処するには:

QuickTime (および QTKit) では、オーディオやビデオなどの個々のデータ タイプがトラックとして表されます。QuickTime がオーディオとビデオのファイル形式を開くことができるかどうかは、すぐにはわからないかもしれません。オーディオとビデオを組み合わせる一般的な方法は次のとおりです。

  1. QTMovieビデオ ファイルで を作成します。
  2. QTMovieオーディオ ファイルで を作成します。
  3. QTTrackオーディオを表すオブジェクトを取得し、ビデオを含む に追加しますQTMovie
  4. ムービーをフラット化して、他のムービーへの参照を単に含めるのではなく、実際にオーディオ データを含めるようにします。
  5. ムービーをディスクに書き込みます。

これは Blender の例です。関数で A/V 多重化がどのように行われるかがわかりますend_qt。そこにはCore Audioの使用もあります(AudioConverter*)。(古典的な QuickTime エクスポート コードがいくつかありますがquicktime_export.c、オーディオを実行していないようです。)

于 2011-04-08T20:39:21.487 に答える