【问题标题】:How to get avcC atom from an iTunes video using Mp4parser如何使用 Mp4parser 从 iTunes 视频中获取 avcC atom
【发布时间】:2014-11-23 15:22:13
【问题描述】:

在使用 java 的 mp4parser 库读取源自 iTunes 的文件时,有没有办法访问 avcC 原子?我已经在一些自定义代码中使用 pasp atom 手动完成了这项工作,但是在切换到这个库后,我失去了对数据的访问权限。

avcC atom 的已知路径:

  • /moov/trak/mdia/minf/stbl/stsd/avc1/avcC
  • /moov/trak/mdia/minf/stbl/stsd/avc1/pasp/avcC
  • /moov/trak/mdia/minf/stbl/stsd/drmi/avcC

MP4Parser https://github.com/sannies/mp4parser

【问题讨论】:

    标签: java mp4 mp4parser


    【解决方案1】:

    有效的 quicktime 文件的 avcC atom 永远不能在 pasp atom 内。 avcC 原子可以在 pasp 旁边,但它不能在 pasp 中,因为 pasp 框不包含其他框。 您可以使用 Path 类来轻松访问(它知道一些正则表达式):

    public static void main(String[] args) throws IOException {
        IsoFile isoFile = new IsoFile("video.mp4");
        AvcConfigurationBox avcC = Path.getPath(isoFile, "/moov/trak/mdia/minf/stbl/stsd/.../avcC");
    }
    

    所有 AVC 配置框,无论其父框。

    【讨论】:

    • 我希望你是对的,我们之前的自定义 mp4 阅读器肯定有错误,但它肯定认为 avcC 是 pasp child。
    • 如何从 avcC 父级获取 avcDecoderConfiguration?
    • 也试过这个路径,报错:异常解码头/atoms java.lang.RuntimeException: ... is invalid path.
    • 我也尝试使用四个点并得到这个:java.lang.ClassCastException: com.coremedia.iso.boxes.UnknownBox cannot be cast to com.coremedia.iso.boxes.ContainerBox
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 2015-03-06
    相关资源
    最近更新 更多