Android:读写.mp4元数据-Tag

Ank*_*ria 6 mp4 android metadata

我想读取和编辑(写入)mp4元数据.特别是我想在android中读/写Tag元数据,如下图所示.

Mp4元数据图片

我在互联网上搜索了这个,发现mp4Parser,但我认为mp4Parser不会写标题关键字.

对于.jpg文件,我们使用代表标题的XPKeyword元数据.同样如何为.mp4文件做同样的事情.

Jor*_*sys 8

Android SDK包含MediaMetadataRetriever类,用于检索文件中的所有元数据值,您可以在此处阅读有关MetaData值的更多信息.

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.");
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

要编辑/编写元数据,Android SDK没有任何方法,可能是版权问题,但您可以使用以下选项:

https://github.com/sannies/mp4parser

http://multimedia.cx/eggs/supplying-ffmpeg-with-metadata/

https://github.com/bytedeco/javacv/blob/master/src/main/java/org/bytedeco/javacv/FFmpegFrameRecorder.java