Umarım çok geç değildir ancak MP4 dosyalarında meta veri alanları eklemek/düzenlemek/silmek isterseniz, JCodec'in meta veri düzenleme sınıflarını kullanabilirsiniz.
Bir java API'si tarafından desteklenen bir CLI aracı var. CLI, org.jcodec.movtool.MetadataEditorMain'da ve API, org.jcodec.movtool.MetadataEditor'dadır.
bu konuda daha fazla bilgi: http://jcodec.org/docs/working_with_mp4_metadata.html
Yani temelde ne anahtar (lar) o tekabül bilmeniz gereken bazı meta verileri eklemek istediğinizde. Öğrenmenin bir yolu, ihtiyacınız olan meta verilere sahip bir örnek dosyayı incelemektir.Eğer aynı CLI kullanabilirsiniz ya sizinle çalışmak isteyen anahtarı biliyorum Sonra
./metaedit <file.mp4>
: Bunun için sadece mevcut tüm meta veri alanlarını (değerlerle tuşları) çıktısını edeceğini JCodec en CLI aracı çalıştırabilirsiniz aracı:
# Changes the author of the movie
./metaedit -f -si ©ART=New\ value file.mov
veya Java API ile aynı şey:
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
bir dosyadan bir meta veri silmek için:
gibi bir şey kullanabilirsiniz fourcc 0
MetadataEditor 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
tamsayı dize dönüştürmek için:
byte[] bytes = "©ART".getBytes("iso8859-1");
int fourcc =
ByteBuffer.wrap(bytes).order(ByteOrder.BIG_ENDIAN).getInt();
düzenlemek istediğiniz takdirde/sen depolandığı çünkü (fucntion farklı bir dizi kullanmanız gerekir android meta silmek farklı) iTunes meta verileri daha: alternatif
./metaedit -sk com.android.capture.fps,float=25.0 file.mp4
VEYA API üzerinden aynı:
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
Yukarıda belirtilen MediaMetadataRetriever kodunuzu kullanarak IllegalArgumentException alıyorum. –
Merhaba, wich satırında? – Jorgesys
Bu satırda: - retriever.setDataSource (file.getAbsolutePath()); –