2016-05-26 8 views
3

Electron(つまり、Node.jsとChromeブラウザシェルが一緒に詰め込まれた)をベースにしたデスクトップアプリケーションで作業しています。その機能の1つに、ローカルファイルシステムからの任意のビデオファイルの読み込みが含まれます。JavaScriptでビデオのコーデックを検出する

私が直面している課題は、任意のビデオファイルで使用されているコーデックがわからないことです。ファイル拡張子(つまり.mp4.webmなど)でフィルタリングできますが、MP4ファイルではファイル拡張子からはっきりしない多数のコーデックを使用できます。 HTML5ビデオプレーヤーが空になるまでビデオファイルがサポートされていないことは本当にわかりません(そして、これがのときに、プログラムでどのように検出するかわからなくても)。

私はすでにloadedmetadataイベントハンドラを使用してビデオのサイズを検出していますが、基礎となるコーデックに関する情報は公開されていないようです。

これを回避する手段はありますか?私は、ブラウザのレベルでそれを検出しようとするのではなく、Chromeのレンダラープロセスにネイティブ "メイン"プロセスのコーデックを識別できるNode.jsパッケージを探しています。しかし、私が見ているNode.jsビデオパッケージはすべて、ffmpeg実行ファイルに依存しています。これは私のElectronアプリと簡単にバンドルできません。

ブラウザがサポートするコーデックを検出するための100万のコードサンプルがあります。しかし、それはあなたが既知のビデオファイルと未知のブラウザを扱っているという前提から来ています。逆の場合は...既知のブラウザが保証されているが、未知のビデオファイルがある場合はどうなりますか?

+0

"私は電子アプリと簡単に同梱できません" - https://www.npmjs.com/package/ffbinariesを使用して、ユーザーのプラットフォームに一致するバイナリをダウンロードできます。だから、何も束縛する必要はありません。 – Michael

答えて

1

mux.jsを使用すると、ファイル内のMP4アトムを検査できます。ファイルをUInt8Arrayにロードしてから、muxjs.mp4.tools.inspect(bytes)を呼び出して、解析されたアトムのリストを取得する必要があります。

関連する問題