0

混合ビデオ ファイル (Web ディスプレイ mp4、ogv、webm の複数の形式) のフォルダーがあります。これらのファイルを Java で取得する場合、ファイル名から拡張子を取得することで形式を確認できます。ファイルからビデオやオーディオ コーデック データなどの他の情報を取得する方法はありますか?

ファイルを作成するために、Java 内から ffmpeg を使用してビデオ ファイルを必要な形式とサイズにトランスコードしているため、ファイルを作成するときにコーデック情報を知っています。ファイルのどこかに自動的に保存されない場合、後で取得できるように、メタデータなどを設定して情報を手動で保存する方法はありますか? ファイルの場所やその他のデータを格納するためにデータベースを使用するのではなく、単にファイル システムをスキャンして取得するだけです。

4

3 に答える 3

2

ユーティリティffmpegのソースとして指定したファイルからビデオとオーディオのフォーマットを自動的に取得できると思います。ffmpeg

他の目的でメタデータが必要な場合は、Red5 サーバー ソース (Java) を試すことができます。MP4Readerメタデータの取得に使用できるリーダー ( を含む) は多数あります。

たとえば、mp4ファイルの場合MP4Reader、クラス コンストラクターでファイル全体をスキャンし、最初のタグからメタデータを取得できます。

reader = new org.red5.io.mp4.impl.MP4Reader(myFile)
String v = reader.getVideoCodecId();  // e.g. "avc1" (for h.254), "VP6F"
String a = reader.getAudioCodecId();  // e.g. "mp4a" (for aac), ".mp3" (for mp3)
...
于 2013-12-04T15:58:44.717 に答える
0

ビデオおよびオーディオ データ ストリーム (例: H.264/AVC ビデオ、AAC、Dolby Digital オーディオなど) は、コンテナー形式として知られるファイル形式内で多重化 (または「多重化」) されます。MP4 はそのようなコンテナ形式の 1 つで、さまざまな種類のビデオおよびオーディオ ストリームを保持できるように設計されています (公式に登録されている種類の一部については、 http://www.mp4ra.org/codecs.htmlを参照してください)。

さまざまなコンテナー形式には、特定のメディア ストリームをデコードするために使用する必要があるデコーダーの種類を決定するのに役立つように、含まれているさまざまなメディア ストリームを識別するメタデータがあります。

可能であれば (Java を使用していると言いました)、ffprobeを使用して、メディア ファイル (およびその他のメタデータ) で使用されるコンテナー、ビデオ、およびオーディオ形式を特定してみてください。すべてのメディア タイプで 100% 信頼できるとは限りませんが (認識できないものがあるため)、ffmpeg (ffprobe は ffmpeg から派生したツール) でエンコードしていることを考えると、うまくいくはずです。

于 2013-10-29T22:03:38.870 に答える