- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发 mp4 容器解析器,但我正在疯狂地尝试识别流的音频编解码器。我同时使用了 QtAtomViewer 和 AtomicParsley,但是当我找到原子时:
trak->mdia->minf->stbl->stsd
即使 mp4 文件有 mp3 流,我也总是得到“mp4a”。
我应该寻找“.mp3”fourcc 吗?
我附上两个不同的mp4结构:带有 AAC 音频流的 mp4 容器
Atom trak @ 716882 of size: 2960, ends @ 719842
Atom tkhd @ 716890 of size: 92, ends @ 716982
Atom mdia @ 716982 of size: 2860, ends @ 719842
Atom mdhd @ 716990 of size: 32, ends @ 717022
Atom hdlr @ 717022 of size: 33, ends @ 717055
Atom minf @ 717055 of size: 2787, ends @ 719842
Atom dinf @ 717063 of size: 36, ends @ 717099
Atom dref @ 717071 of size: 28, ends @ 717099
Atom stbl @ 717099 of size: 2727, ends @ 719826
Atom stts @ 717107 of size: 24, ends @ 717131
Atom stsz @ 717131 of size: 1268, ends @ 718399
Atom stsc @ 718399 of size: 40, ends @ 718439
Atom stco @ 718439 of size: 32, ends @ 718471
Atom stss @ 718471 of size: 1264, ends @ 719735
Atom stsd @ 719735 of size: 91, ends @ 719826
Atom mp4a @ 719751 of size: 75, ends @ 719826
Atom esds @ 719787 of size: 39, ends @ 719826
Atom smhd @ 719826 of size: 16, ends @ 719842
带有 mp3 音频流的 mp4 容器
Atom trak @ 1663835 of size: 4844, ends @ 1668679
Atom tkhd @ 1663843 of size: 92, ends @ 1663935
Atom mdia @ 1663935 of size: 4744, ends @ 1668679
Atom mdhd @ 1663943 of size: 32, ends @ 1663975
Atom hdlr @ 1663975 of size: 45, ends @ 1664020
Atom minf @ 1664020 of size: 4659, ends @ 1668679
Atom smhd @ 1664028 of size: 16, ends @ 1664044
Atom dinf @ 1664044 of size: 36, ends @ 1664080
Atom dref @ 1664052 of size: 28, ends @ 1664080
Atom stbl @ 1664080 of size: 4599, ends @ 1668679
Atom stsd @ 1664088 of size: 87, ends @ 1664175
Atom mp4a @ 1664104 of size: 71, ends @ 1664175
Atom esds @ 1664140 of size: 35, ends @ 1664175
Atom stts @ 1664175 of size: 24, ends @ 1664199
Atom stsc @ 1664199 of size: 28, ends @ 1664227
Atom stsz @ 1664227 of size: 2228, ends @ 1666455
Atom stco @ 1666455 of size: 2224, ends @ 1668679
谢谢有限元
更新:
我找到了解决问题的方法:通过观看 AtomicParsley 的代码,我发现可以得到有关流原子 (mp4a) 的编解码器信息,读取第 11 个字节进入 esds(基本流描述)原子。
现在我正在这样工作:
如果第 11 个字节的值是 0x40,我假设流是 AAC,否则如果我读取 0x69,我假设流是 MP3。
我不喜欢这些“经验”解决方案,所以我正在寻找更正确的解决方案方式,但我只找到 Understanding_AAC这并不完整。
有人知道在哪里可以获得 MP4 容器的更详细规范吗?
最佳答案
在“esds”原子中,有一些与确定编解码器相关的字段。 esds 原子内容的第一个字节是 objectTypeInduction
(这是解决方案中的第 11 个字节)。该字段应该指示所使用的编解码器,但有一些条目被多个编解码器使用。 MP4RA 有一个 full list of codec values 。以下是与本例相关的一些内容:
0x6B
和 0x69
分别表示 MPEG-1 和 2 层 1、2 和 3。0x67
表示 MPEG-2 AAC LC,但通常不使用 0x040
(0x66
和 0x68
也是 MPEG-2 AAC 配置文件,甚至很少出现)。 0x40
表示 MPEG-4 音频。 MPEG-4 音频通常被认为是 AAC,但 MPEG-4 音频中有一个完整的音频编解码器框架,包括 AAC、BSAC、ALS、CELP 和 MP3On4。 MP3On4 是一种 MP3 变体,带有一些新的多 channel header 信息。
我们可以通过查看 AudioSpecificConfig
来了解 MPEG-4 音频中实际的音频格式。这是解码器的全局 header ,存在于“esds”原子内容的字节 13 处。在AudioSpecificConfig
的开头有一个5位AudioObjectType
。可以在多媒体 wiki 上找到完整列表(在您的帖子中的“MPEG-4 音频”文章下链接:http://wiki.multimedia.cx/index.php?title=MPEG-4_Audio 但以下是有用的值:
如果您不担心“MP3On4”mp3 变体或其他奇怪的 MPEG-4 音频编解码器,那么只需使用 objectTypeInduction
。
在 MPEG 规范中,这些详细信息分布在 14496-1、-12、-14 和 -3 中。其中只有 14496-12 是免费提供的:http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html
关于audio - mp4atom - 如何区分音频编解码器?是 AAC 还是 MP3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3987850/
我有一台计算机在一个非常严格的代理服务器后面,它只允许我上网和下载程序它不允许像 Atom 文本编辑器这样的程序下载它的包。 我的问题是如何仅使用基于浏览器的下载来安装它们? 最佳答案 这当然是可能的
我的 keymap.cson 文件中有这个: 'body': 'ctrl-alt-left': 'editor:select-to-first-character-of-line' 但是不行(没有
如何获取 Atom 中所有已安装和已激活插件的列表? 我可以用 apm list --installed --bare获取所有已安装的软件包,但我不想包含禁用的软件包。而且我有很多禁用的包。 最佳答案
我在 OSX 上,在 Atom 中打开了一个我没有命名的文件。我不得不重新启动计算机,当它再次出现时,我点击了错误的东西,它忘记了所有旧文件名,并且未命名的文件似乎消失得无影无踪。如果我使用 Time
当我搜索某个字符串(“在目录中搜索”)时,atom 允许做两件事:指定目录或文件扩展名(但它会在项目中的所有目录中搜索)。是否可以同时进行?例如。我想在 'src' 目录中进行递归搜索,但只使用 *.
我将 OSX 更新为 High Sierra,我的 Atom 停止从命令行工作。 $ atom . FSPathMakeRef(/Applications/Atom.app) failed with
下面屏幕截图中第 95 行和第 96 行之间的红色箭头在 GitHub 的 Atom 编辑器上意味着什么? 谢谢! 最佳答案 如果您当前打开的项目使用 Git 作为修订系统,装订线中的箭头表示您删除了
某些代码编辑器(例如 WebStorm)可以选择在编辑器失去焦点时自动保存。我在 Atom 编辑器中搜索了类似的选项,但尚未找到任何内容。 Atom 编辑器是否有一个设置,允许在失去焦点时自动保存已编
有没有办法(插件或其他东西)在 Atom 编辑器中使用分屏? 我查看了菜单,但找不到任何相关选项。 最佳答案 使用命令面板 使用 cmd + shift + p (OSX) 或 ctrl + 打开命令
我在 Atom 中安装了一个有缺陷的软件包,它导致编辑器反复崩溃。因此,我进入 Atom 设置将其删除,但出于好奇,我事先单击了“打开配置文件夹”按钮,这打开了一个空窗口和开发工具: Atom 随后崩
我已经使用atom.io有一段时间了并且非常喜欢它。我只缺少一件事。我以前使用过bracket和sublime,它们都有一个功能,你只需输入html就可以创建html文档的基本结构。 这只会设置 ht
我尝试在 Atom 编辑器中安装软件包,但总是失败,就像我无法连接到服务器一样。 例如,apm install split-diff 返回请求包信息失败:getaddrinfo ENOTFOUNDat
我使用的是 OSX El Capitan 和 Atom 1.2.4。而且我还安装了“tabs-to-spaces”包。 我正在尝试将编辑器设置为缩进并使制表符为 2 个空格。但我无法完成这项工作,这是
我使用的是 Atom 1.0.15。启动时,Atom 每次都会尝试打开 MTP 设备上的文件,这非常烦人。即使关闭引用 MTP 设备上的文件的选项卡后,Atom 也会尝试在下次启动时重新打开它。 修复
我在 Atom 中安装了一个有缺陷的软件包,它导致编辑器反复崩溃。因此,我进入 Atom 设置将其删除,但出于好奇,我事先单击了“打开配置文件夹”按钮,这打开了一个空窗口和开发工具: Atom 随后崩
我尝试在 Atom 编辑器中安装软件包,但总是失败,就像我无法连接到服务器一样。 例如,apm install split-diff 返回请求包信息失败:getaddrinfo ENOTFOUNDat
在 Atom 文本编辑器上,不同的文件树颜色代表什么。我的文件有 3 种不同的颜色:黑色、绿色和橙色。黑色文件无法正常运行,而绿色文件运行良好。如果有人知道颜色的具体含义,请告诉我。 最佳答案 颜色指
我正在尝试通过 Atom 进行完整搜索,寻找特定的文本。嗯,这听起来很简单,使用 Command + Shift + F ,但是,不会跟踪 node_modules ,并且不会扫描这些目录内的内容。我
以下是我在snippets.cson 文件中编写的两个片段: '.source.python': 'print statement': 'prefix': 'pr' 'body'
我试过在这里查看其他有类似问题的问题,但不幸的是我没能解决这个问题。 关于一些基本背景信息,我目前在实验室中使用 PC,并且实验室在机构的某个地方有 GPU 服务器。我正在尝试将 Atom 编辑器连接
我是一名优秀的程序员,十分优秀!