0

C# で記述されたクライアント アプリがあり、MOV ファイルの長さを読み取りたいと考えています。Windows フォームで Quicktime COM コントロールを作成してホストし、そこにムービーをロードして再生時間を取得する必要があります。私の場合、クライアント アプリは Windows フォームではないため、これは実行できません。

私が実際に行った別の方法は、MOVファイルを生で開き、クリップのムービーヘッダーアトム(「mvhd」)を12バイト超えるまでバイトを調べ、そこからタイムスケールとデュレーションを取得することです. このハックは、Apple が将来ファイル形式を変更した場合に機能しない可能性があるため、私は快適ではありません。

MOV をコントロールにロードすることは避けたいと思います。クリップの長さを取得することだけに関心があり、他には何も関心がないからです。理想的には、mov ファイルのパスを含む文字列をアプリに提供し、そのような期間を取得する必要があります。アンマネージ コードで実行した人はいますか?

4

4 に答える 4

5

まず第一に、特殊なファイル形式を処理する「組み込み」の方法はありません。ファイルを自分で解析するか、何らかのコンポーネントに解析してもらう必要があります。

実際、コードがドキュメントに準拠していれば、解析はハックではありません。公式のフォーマット仕様を入手し (一部の会社の場合は購入)、仕様に従ってファイル ヘッダーを解析する必要があります。仕様は必須であるため、同じファイルタイプでフォーマットが変わるとは思わないでください。

あなたのためにそれを行うコンポーネントを見つけることを試みることができます. ムービーを表示するためのコントロールを含むライブラリには、いくつかのユーティリティ クラスが含まれている場合もあります。もちろん、コンポーネントはユーザーが行うのとまったく同じ方法でヘッダーを解析するため、Quicktime 形式が変更された場合 (個人的には疑問です)、すべてのコンポーネントが同じように失敗します。

于 2011-07-06T12:54:16.930 に答える
2

ファイル raw を読み取るのが正しい方法です。

于 2011-07-06T12:53:50.390 に答える
0

今後この投稿を読むユーザーのために、次のリンクから .mov ファイル形式について説明している Apple Quick Time File Format ドキュメントを見つけることができます。

QuickTime ファイル形式仕様のクラシック バージョン:

QuickTime ファイル形式仕様のクラシック バージョンを説明する実際の PDF

QuickTime ファイル形式仕様の現在のバージョン

于 2015-02-05T17:16:17.837 に答える
-1

これを行うには、後でオプションを提供してアプリケーションを改善する別の良い方法があります。これにより、quicktime .mov ファイルと他のメディア コンテナーの継続時間やその他の情報を検索したい場合に使用できます。参照できる MediaInfo.dll を使用します。プロジェクトでそれを見つけて、デュレーションとメディア ファイルの他のほぼすべての側面を見つけます。

于 2013-02-07T19:20:22.327 に答える