Tag: quicktime

如何从.movvideo文件头(QuickTime文件格式)中读取比特率信息?

我一直试图从.mov文件(QuickTime文件格式)的元数据中读取一些值,但成效有限。 我一直在使用以下链接作为参考: QuickTime文件格式规范简介 我已经设法正确定位和读出/计算媒体持续时间,但我似乎无法找到存储比特率信息的primefaces。(primefaces是文件内部元数据的内部块)。 如果有人能指出我正确的Atom阅读,我会好好读它…我甚至无法在文档中找到它。 “比特率”仅在整个文档中提及过几次。 更新>>> 通过@szatmary下面提供的非常有限的信息,我已经从相关的跟踪primefaces解析了样本大小primefaces和样本primefaces的时间 ,但是我得到了一些奇怪的值。 例如,我不断获得样本大小值1 (当从具有恒定比特率的多个不同单个video.mov文件中读取时)。 相关文档(来自上面的链接)说: 样本量 一个32位整数,指定样本大小。 如果所有样本的大小相同,则此字段包含该大小值。 如果此字段设置为0,则样本具有不同的大小,并且这些大小存储在样本大小表中。 因此该字段的值为1 ,这意味着所有样本具有相同的大小,并且[ 样本大小表 ]字段中的条目数与样本时间表的单个条目中的样本计数字段的数量相匹配(一些非常大的数字)。 文档说明了这一点: …如果video媒体具有恒定的帧速率,则该表将具有一个条目,并且计数将等于样本的数量。 因此video具有恒定的比特率。 但是,当从样本大小表中读取大小条目时,它们都是不同的且非感性的…有些是0,而有些则是非常大的数字,大约40000.如果video具有恒定位,为什么它们不同评价,或者在这种情况下我不应该阅读它们吗? 我发现的另一个问题是Sample to Sample Atom的Time to Sample Table中的单个条目具有以下值: 样本数: 一些非常大的数字 (预期) 样本持续时间:1 不幸的是,文档(来自上面的链接)非常简单: 时间表样本 一个表,用于定义介质中每个样本的持续时间。 每个表条目包含计数字段和持续时间字段。 那么这1值使用哪些单位( 样本持续时间和样本量 )? 任何有关计算正确比特率的进一步帮助将不胜感激。 请注意,我一直在考虑文件的Big-Endian ,并在读取之前反转每个字段值的字节。 更新2 >>> 我已经设法计算出采样率的计算如下: 媒体持续时间=持续时间/时间刻度(来自电影标题primefaces或轨道标题primefaces )采样率=样本计数(来自样本时间primefaces )/媒体持续时间 我现在只需要破解比特率 ,需要进一步的帮助。