如何在Android或Java中获得mp4视频中的GoPro HiLight标签

如何在Android或Java中获得mp4视频中的GoPro HiLight标签,java,android,mp4parser,gopro,Java,Android,Mp4parser,Gopro,我使用GoPro-Quik手动将标签添加到mp4视频中 根据和 HiLight标签以mp4视频的毫秒为单位存储在box typeHMMT中 Path = `moov\udta\HMMT` 但是我没有发现任何使用代码的标记 我继续我的研发,并得到了这个代码的结果 IsoFile isoFile = new IsoFile(chanel); MovieBox movieBox = isoFile.getMovieBox(); List

我使用GoPro-Quik手动将标签添加到mp4视频中

根据和 HiLight标签以mp4视频的毫秒为单位存储在box type
HMMT

Path = `moov\udta\HMMT`
但是我没有发现任何使用代码的标记

我继续我的研发,并得到了这个代码的结果

IsoFile isoFile = new IsoFile(chanel);
                MovieBox movieBox = isoFile.getMovieBox();
                List<UserDataBox> userDataBoxes = movieBox.getBoxes(UserDataBox.class);

                stringBuilder.append("moov>UserBoxes:\n");
                for (int i = 0; i < userDataBoxes.size(); i++) {
                    stringBuilder.append(userDataBoxes.get(i));
                    stringBuilder.append("\n");
                    UserDataBox erDataBox = userDataBoxes.get(i);
                    for (int i1 = 0; i1 < erDataBox.getBoxes().size(); i1++) {
                        stringBuilder.append(erDataBox.getBoxes().get(i));
                        stringBuilder.append("\n");
                    }
                    stringBuilder.append("\n");
                    stringBuilder.append("\n");
                }
更新:我得到了
HMMT
。 它正在使用以下库

<dependency>
            <groupId>com.googlecode.mp4parser</groupId>
            <artifactId>isoparser</artifactId>
            <version>1.1.14</version>
        </dependency>

com.googlecode.mp4parser

库的真正问题是
sannies/mp4parser
不会从
UserDataBox
返回
UnknownBox
,而
googlecode/mp4parser
会返回,但只有库可以使用sannies/mp4parser提供的视频url。需要修复或解决任何问题


任何解决方案。感谢Quik软件的问题,它并没有像我期望的那样将标签保存在文件中。它根据媒体唯一id保存标签。您必须从使用GoPro摄像头创建的mp4视频中读取标签

从MP4URL代码片段获取

InputStream inputStream = new BufferedInputStream(new URL("http://localhost:6582?BRIDGE&%2FGOPR0175.MP4&GOPR0175.MP4&80898399").openConnection().getInputStream());
GoProTagsBox tags = GoProUtil.getHilights(inputStream);

stringBuilder.append("Count: "+tags.getCount());
if(tags.getHiLights() != null){
    for (long l : tags.getHiLights()) {
        stringBuilder.append("\nHiLight: "+l);
    }
}
GoProTagsBox tags = GoProUtil.getHilights(new RandomAccessFile(Environment.getExternalStorageDirectory().getAbsolutePath() + "/GOPR0175.MP4", "r"));
从GoPro mp4文件代码片段获取

InputStream inputStream = new BufferedInputStream(new URL("http://localhost:6582?BRIDGE&%2FGOPR0175.MP4&GOPR0175.MP4&80898399").openConnection().getInputStream());
GoProTagsBox tags = GoProUtil.getHilights(inputStream);

stringBuilder.append("Count: "+tags.getCount());
if(tags.getHiLights() != null){
    for (long l : tags.getHiLights()) {
        stringBuilder.append("\nHiLight: "+l);
    }
}
GoProTagsBox tags = GoProUtil.getHilights(new RandomAccessFile(Environment.getExternalStorageDirectory().getAbsolutePath() + "/GOPR0175.MP4", "r"));
在这两种情况下都可以罚款


使用android版本的Quik软件,它不会像我预期的那样将标签保存在文件中。它根据媒体唯一id保存标签。您必须从使用GoPro摄像头创建的mp4视频中读取标签

从MP4URL代码片段获取

InputStream inputStream = new BufferedInputStream(new URL("http://localhost:6582?BRIDGE&%2FGOPR0175.MP4&GOPR0175.MP4&80898399").openConnection().getInputStream());
GoProTagsBox tags = GoProUtil.getHilights(inputStream);

stringBuilder.append("Count: "+tags.getCount());
if(tags.getHiLights() != null){
    for (long l : tags.getHiLights()) {
        stringBuilder.append("\nHiLight: "+l);
    }
}
GoProTagsBox tags = GoProUtil.getHilights(new RandomAccessFile(Environment.getExternalStorageDirectory().getAbsolutePath() + "/GOPR0175.MP4", "r"));
从GoPro mp4文件代码片段获取

InputStream inputStream = new BufferedInputStream(new URL("http://localhost:6582?BRIDGE&%2FGOPR0175.MP4&GOPR0175.MP4&80898399").openConnection().getInputStream());
GoProTagsBox tags = GoProUtil.getHilights(inputStream);

stringBuilder.append("Count: "+tags.getCount());
if(tags.getHiLights() != null){
    for (long l : tags.getHiLights()) {
        stringBuilder.append("\nHiLight: "+l);
    }
}
GoProTagsBox tags = GoProUtil.getHilights(new RandomAccessFile(Environment.getExternalStorageDirectory().getAbsolutePath() + "/GOPR0175.MP4", "r"));
在这两种情况下都可以罚款

使用android版本的