我使用 GoPro - Quik 手动将标签添加到 mp4 视频。
根据Chriki 对超级用户和GoProInfo.cppHMMT
的回答,HiLight 标签以 mp4 视频的毫秒数
存储在盒子类型中。
Path = `moov\udta\HMMT`
但是我没有找到任何使用sannies/mp4parser代码的毫秒标记
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
ReadableByteChannel chanel = Channels.newChannel(in);
我继续我的研发并得到了这段代码的结果
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");
}
输出:
moov>UserBoxes:
UserDataBox[MetaBox[HandlerBox[handlerType=mdir;name=��];AppleItemListBox[org.mp4parser.boxes.apple.AppleEncoderBox@619e00b]]]
MetaBox[HandlerBox[handlerType=mdir;name=��];AppleItemListBox[org.mp4parser.boxes.apple.AppleEncoderBox@619e00b]]
更新:我得到HMMT
了isoviewer。它正在使用以下库
<dependency>
<groupId>com.googlecode.mp4parser</groupId>
<artifactId>isoparser</artifactId>
<version>1.1.14</version>
</dependency>
问题仍未解决,因为
com.googlecode.mp4parser
IsoFile 类没有ReadableByteChannel
用于从远程流中检索数据的构造函数。
库的真正问题是它sannies/mp4parser
不会UnknownBox
从UserDataBox
whilegooglecode/mp4parser
中返回,但只有一个库可以与 sannies/mp4parser 的视频 url 一起使用。需要修复或任何解决方法。
任何解决方案。谢谢