mp4メタデータを読み込み、編集(書き込み)したいと思います。特に、下記の図のようにタグのメタデータをアンドロイドで読み書きしたいと思います。Android:読み込みと書き込み.mp4メタデータ - タグ
私は、インターネット上で、この検索とmp4Parserを見つけましたが、私はmp4Parserタイトルのキーワードを書いていないと思います。
.jpgファイルの場合、タイトルを表すXPKeywordメタデータを使用します。 同じように、.mp4ファイルについても同じことを行う方法。
mp4メタデータを読み込み、編集(書き込み)したいと思います。特に、下記の図のようにタグのメタデータをアンドロイドで読み書きしたいと思います。Android:読み込みと書き込み.mp4メタデータ - タグ
私は、インターネット上で、この検索とmp4Parserを見つけましたが、私はmp4Parserタイトルのキーワードを書いていないと思います。
.jpgファイルの場合、タイトルを表すXPKeywordメタデータを使用します。 同じように、.mp4ファイルについても同じことを行う方法。
のAndroid SDKは、ファイル内のすべてのメタデータ値を取得するために、クラスMediaMetadataRetrieverが含まれている、あなたは、メタデータがhere値についての詳細を読むことができます。
public void readMetaData() {
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard,"/Android/data/myfile.mp4");
if (file.exists()) {
Log.i(TAG, ".mp4 file Exist");
//Added in API level 10
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(file.getAbsolutePath());
for (int i = 0; i < 1000; i++){
//only Metadata != null is printed!
if(retriever.extractMetadata(i)!=null) {
Log.i(TAG, "Metadata :: " + retriever.extractMetadata(i));
}
}
} catch (Exception e) {
Log.e(TAG, "Exception : " + e.getMessage());
}
} else {
Log.e(TAG, ".mp4 file doesn´t exist.");
}
}
のAndroid SDKがdoesn'tおそらく、著作権の問題により、任意の方法を持っていますが、あなたのようなオプションを使用することができ、/書き込みメタデータを編集するには、次の
https://github.com/sannies/mp4parser
私はそれが遅すぎることはないが、MP4ファイルのメタデータフィールドを追加/編集/削除したい場合は、JCodecのメタデータ編集クラスを使用することができます。
Java APIに基づいたCLIツールがあります。 CLIはorg.jcodec.movtool.MetadataEditorMainにあり、APIはorg.jcodec.movtool.MetadataEditorにあります。
それについて続きを読む:あなたは、いくつかのメタデータを追加したいときhttp://jcodec.org/docs/working_with_mp4_metadata.html
だから基本的にはあなたはそれが何に該当するキー(複数可)を知る必要があります。見つけ出す1つの方法は、必要なメタデータをすでに持っているサンプルファイルを調べることです。あなたは同じCLIを使用するか、あなたと一緒に仕事をしたいキーを知っている次に
./metaedit <file.mp4>
:このためには、単に既存のすべてのメタデータフィールド(値とキー)をプリントアウトすることをJCodecのCLIツールを実行することができますツール:ファイルからのメタデータフィールドを削除するには
MetadataEditor mediaMeta = MetadataEditor.createFrom(new
File("file.mp4"));
Map<Integer, MetaValue> meta = mediaMeta.getItunesMeta();
meta.put(0xa9415254, MetaValue.createString("New value")); // fourcc for '©ART'
mediaMeta.save(false); // fast mode is off
:
# Changes the author of the movie
./metaedit -f -si ©ART=New\ value file.mov
またはJava APIを経由して同じこと
あなたがのようなものを使用することができますFOURCC 0MetadataEditor mediaMeta = MetadataEditor.createFrom(new
File("file.mp4"));
Map<Integer, MetaValue> meta = mediaMeta.getItunesMeta();
meta.remove(0xa9415254); // removes the '©ART'
mediaMeta.save(false); // fast mode is off
は、文字列を整数に変換するには:
byte[] bytes = "©ART".getBytes("iso8859-1");
int fourcc =
ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN).getInt();
編集したい場合は/あなたはそれが保存されているので(fucntionの異なるセットを使用する必要がありますアンドロイドのメタデータを削除します異なっ)iTunesのメタデータより:代わり
./metaedit -sk com.android.capture.fps,float=25.0 file.mp4
OR APIを介して同じ:
MetadataEditor mediaMeta = MetadataEditor.createFrom(new
File("file.mp4"));
Map<String, MetaValue> meta = mediaMeta.getKeyedMeta();
meta.put("com.android.capture.fps", MetaValue.createFloat(25.));
mediaMeta.save(false); // fast mode is off
上記のMediaMetadataRetrieverコードを使用してIllegalArgumentExceptionを取得しています。 –
こんにちは、どのラインですか? – Jorgesys
この行には: - retriever.setDataSource(file.getAbsolutePath()); –