java - 将无缝播放信息添加到 AAC
问题描述
我目前正在尝试开发视频/音频编码管道。我的目标是对包含 h264 视频轨道和 AAC 音频轨道的 mp4 文件进行编码。这些文件应该一个接一个地播放,中间没有任何间隙。
目前我正在使用 ffmpeg 转换视频。不幸的是,我的输入文件缺少无间隙播放元数据,这是 AAC 曲目的无间隙播放所必需的。
事实上,我正在寻找一种添加iTunSMPB
udta
评论的方法,因为 Exoplayer 需要它。(详见解析器:GaplessInfoHolder.java)
我找不到通过 ffmpeg(ffmpeg AAC 编码器文档)添加它的方法,我可能错过了什么吗?
甚至Wikipedia也只列出了两个应该能够做到这一点的转换器:Nero Digital 和 Itunes。但是这些信息可能已经过时了。
你们中有人知道可以将此元数据添加到 mp4 文件的 java 库或(linux)命令吗?
我希望你们中的一些人可以帮助我。谢谢你。
解决方案
我这里的信息有误!
这是我最近几天学到的,以防有人偶然发现此条目:
有两种不同的方法可以将无间隙信息保存在 aac 轨道中。我上面提到的一个是来自 iTunes 转换器的旧处理。这后来在 ISO 标准中(重新)定义,这将在edts
+sgpd
原子中保存无间隙信息。
要使用不同的 AAC 数据进行测试,您可以使用fdkaac
ffmpeg 的默认 aac 编码器也会自动添加 ISO 标准原子。
希望这些信息对任何人都有帮助。
推荐阅读
- c++ - 在 C++ 公共标头中包含嵌套类
- java - 在 JavaFX 中,我想要一个按钮 appendText 并更新一个 ArrayList
- javascript - useEffect 在初始加载和更新时运行 - 我如何限制仅更改?
- javascript - 如果元素存在,如何使手风琴不起作用并告诉我无法读取未定义的属性“classList”?
- curve-fitting - 使用 lmfit 拟合电容器的幅度(频率响应)
- flutter - GestureDetector 中的增量和主要增量有什么区别?
- ssh - X11 转发:`xclock` 有效,但 `cmake-gui` 无效
- html - 如何在以窗口为中心的 div 中启用具有非固定高度的滚动条?
- python - 浮士德与 Kafka-python 之间的区别
- azure - 如果 RBAC 权限允许 AD 组级别访问,如何限制用户访问数据湖中的文件夹的权限?