AIRアプリで動画ファイルの解像度の取得したかっただけなのだが、ActionScriptでは動画を読み込まないとそれがわからないのです。解像度の取得だけに容量の大きなファイルを読み込むのは現実的ではなかったためffmpegを使用して解像度を取得することにしました。

今回AIRからffmpegコマンドラインを実行させていますが、同様なことをすればUnityやOFなど他の言語からでも取得できます。

環境:Windows10

ffmpegについて

ffmpegは動画のコンバートをするのに便利なソフトでコマンドラインでも使うことができます。ダウンロードはこちらから。

ffmpegで動画の解像度を取得する方法

以下のように本来はコンバートに使うコマンドのですが

今回はコンバートしないので以下のように[movieFile]は一つだけにします。

実際にコマンドを実行させるとこのようになります。本来の使い方と違うためエラー情報が表示されます。その20行目にファイルサイズが記載されています。

このコマンドをAIRから実行して文字列を加工すれば解像度を取得できます。

参考: http://tohka383.hatenablog.jp/entry/20111212/1323648512

AIRからffmpegを実行して解像度を取得する

コマンドラインからffmpegを実行するので nativeProcessStartupInfo.executable を使用し、後は文字列を加工していきます。