首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视频中的准确秒数

视频中的准确秒数
EN

Stack Overflow用户
提问于 2011-12-22 20:50:47
回答 3查看 2K关注 0票数 0

我正试着用下面的方法得到一个准确的视频大小。

(字节大小*8)/(总比特率(audio+video比特率)* 1024)

例:

(1,136,992*8)/(7128*1024),输出时间为1.24617705秒

但在windows电影制作人现场直播中,它的实际长度(以秒为单位)约为1.87秒。我是做错什么了吗,还是窗户直播的电影制作人关机了?我猜是前者。

我一直在使用Easycap录制的视频,然后放入Windows电影制作者进行修剪,最后转换成ogv格式。所以这是有道理的,这将是完全混乱的。我不知道如何访问ogv视频文件的元数据头,我四处看看,但没有找到任何答案。

EN

回答 3

Stack Overflow用户

发布于 2011-12-22 21:19:15

您是否将文件大小除以比特率?如果是这样,则在计算中包括标头和其他开销。

但是,这个计算不起作用的主要原因是比特率没有那么精确。想想看:如果比特率是准确的,那么每一个视频帧(以及随之而来的音频)都必须被压缩到完全相同的字节数。大多数压缩机都不是那样工作的。( DV编解码器是一个例外。由于DV是一种磁带格式,它必须以恒定的速率产生数据。)

想一想比特率,更像是每秒使用的平均位数。

要获得视频文件的长度,您必须读取该文件的元数据。如何做到这一点因格式不同而不同。对于ogv文件,oggLength程序似乎是您所需要的(包括在透明工具中)。

票数 1
EN

Stack Overflow用户

发布于 2011-12-22 20:55:16

视频文件通常有元数据和头,这增加了文件的总大小。要获得可靠的测量结果,您需要计算非视频/非音频数据的大小,并在进行计算之前减去它。不仅如此,您还必须考虑音频和视频数据可能的可变比特率。这通常不会很容易,除非您看到的是一个非常简单的文件类型,具有恒定的比特率,或者您已经对视频格式有了深入的了解(或者您已经有了一个理解和分析该格式的库)。

票数 0
EN

Stack Overflow用户

发布于 2011-12-22 21:06:39

只有当每个帧都是相同的大小时,这种特殊的计算才能工作。唯一会发生的方式是,如果你使用的是未经压缩的视频和音频流。这些类型的文件很快就会变得庞大和不切实际,因此很可能您正在使用压缩。在压缩视频文件中,比特率不是保证,它只是一个平均值。此外,由于有不同类型的帧,每个帧的大小都会发生变化。

大多数视频容器格式(avi、ogm、mkv等)都将文件的长度嵌入到元数据中(作为标头的一部分)。简单地读取这个值就会准确得多。

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

https://stackoverflow.com/questions/8609575

复制
相关文章

相似问题

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