【发布时间】:2010-08-12 11:25:04
【问题描述】:
我目前正在使用 libtheoradec,但我找不到一种简单的方法来找出 ogg theora 文件的播放时间。 libtheoradec 发行版中有几个示例,但没有一个显示如何获取 theora 流的长度(即播放时间以秒左右为单位)。此信息是否在标题中的某处不可用?我真的必须通读所有页面并从最后一个数据包的颗粒位置获取长度吗?这真的是唯一的方法吗? 感谢您的帮助!
【问题讨论】:
我目前正在使用 libtheoradec,但我找不到一种简单的方法来找出 ogg theora 文件的播放时间。 libtheoradec 发行版中有几个示例,但没有一个显示如何获取 theora 流的长度(即播放时间以秒左右为单位)。此信息是否在标题中的某处不可用?我真的必须通读所有页面并从最后一个数据包的颗粒位置获取长度吗?这真的是唯一的方法吗? 感谢您的帮助!
【问题讨论】:
是的,信息不在 Theora 头中,需要从最后一个数据包的 granulepos 中获取信息。
为此,我在 liboggz 的 Chop-rewrite 分支中有一些代码。函数 oggz_get_duration() 返回一个以秒为单位的值,并被 oggz-chop 用于提供 Content-Duration HTTP 响应头:
https://github.com/kfish/liboggz/blob/chop-rewrite/src/liboggz/oggz_seek.c
【讨论】:
很抱歉在问我之前没有看到您的问题:Is there a way to tell the file size of an .ogg video before it is fully loaded?
我很惊讶之前没有人回答,因为这似乎是一个很好的问题,因为 HTML5 让 ogg 视频得到了更多的使用。
【讨论】: