首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取MPEG-2时隙码

读取MPEG-2时隙码
EN

Stack Overflow用户
提问于 2016-06-30 02:19:13
回答 1查看 447关注 0票数 2

我正在使用一些多年前的旧代码来计算MPEG-2视频的持续时间。似乎有些事情已经改变了,因为我得到了1小时49秒的49秒视频。

在文件中找到最后一个GOP头,并提取4字节的TimeCode "040E2AC0“。在32位LongWord中,它以3223981572的形式读取小endian。

然后使用汇编程序函数bswap交换endian。结果是68037312。一些Pascal代码然后提取这样的持续时间..。

代码语言:javascript
复制
Hours   := (TimeCode shr 26) and $1F;
Minutes := (TimeCode shr 20) and $3F;
Seconds := (TimeCode shr 13) and $3F;

小时是1,但应该是0。分钟在0是正确的。在49秒是正确的。

我不太擅长用位操作来调试这个问题。这有什么问题吗?如果有帮助的话,我可以安排一个视频链接。

非常感谢罗斯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-05 23:31:12

张贴你的档案是个好主意。

如果您查看文件中的第一个GOP,它有04 08 00 40的字节值(正如您所说的,最后一个GOP有04 0E 2A C0 )。

当第一个GOP在您的过程中运行时,结果是01:00:00,即1小时。

我没有找到任何规格,但显然长度是第一和最后的GOP之间的区别。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38112928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档