今まで紹介したQuickTime APIを使用して、動画ファイルのDimension(Videoの表示サイズ)を取得するためのサンプルコードは、下記のとおりになります。
出来る限りエラー処理を省いて、短く書いたつもりなのですが長くなってしまった・・・
|c|
include <stdio.h>
include <QTML.h>
include <Movies.h>
int main(void) { //! QuickTime Media Layerの初期化 if (InitializeQTML(0L) != 0) return 1;
//! Movie Toolboxの初期化 if (EnterMovies() != 0) return 1;
//! WindowsネイティブパスをFSSpecへ変換 FSSpec fsspec; NativePathNameToFSSpec("c:\060604_1600~01.3G2", &fsspec, 0L);
//! 動画ファイルを開く short refNum; OpenMovieFile(&fsspec, &refNum, fsRdPerm);
//! Movie作業領域を確保 Movie theMovie; short movieRefId; NewMovieFromFile(&theMovie, refNum, &movieRefId, 0, newMovieActive, 0); if(theMovie != 0) {
//! Movieのトラック数を取得
int trackNum = GetMovieTrackCount(theMovie);
//! ビデオトラックを取得
Track videoTrack;
for(int i=0; i<=trackNum; i++) {
videoTrack = GetMovieIndTrackType(theMovie, i, VideoMediaType, movieTrackMediaType);
if(videoTrack) break;
}
//! 表示サイズを取得
Fixed width,height;
GetTrackDimensions(videoTrack, &width, &height);
printf("width:%d height:%d\n", FixRound(width), FixRound(height));
//! Movie作業領域を解放
DisposeMovie(theMovie);
}
//! 動画ファイルを閉じる CloseMovieFile(refNum);
//! Movie Toolboxの終了処理 ExitMovies();
//! QuickTime Media Layerの終了処理 TerminateQTML();
return 0; } ||<
- 関連記事
QuickTime SDKについての情報はとても少なくて苦労しています。僕が書いたQuickTime SDKを使って動画データを解析する方法については以下の通りまとめております。もしよければご参照ください。
- VC++からQuickTimeの機能を使えるようにQuickTime7 SDKをインストールする - 酢ろぐ!
- 動画データ解析ツールを作成する(1) - 3GPP2のフォーマットの資料を探す - 酢ろぐ!
- 動画データ解析ツールを作成する(2) - QuickTime SDKの初期化をおこなう - 酢ろぐ!
- 動画データ解析ツールを作成する(3) - QuickTime SDKを使ってトラック情報から動画サイズを取得する - 酢ろぐ!
- 動画データ解析ツールを作成する(4) - トラック情報を取得するAPIを調べる - 酢ろぐ!
- 動画データ解析ツールを作成する(5) - QuickTime SDKを使って動画ファイルのDimensionを取得する - 酢ろぐ!
- 動画データ解析ツールを作成する(6) - 3GPP2のフォーマットについて考える - 酢ろぐ!