我目前正在玩libtheoradec,但我找不到一种简单的方法来查找ogg theora文件的播放时间。 libtheoradec发行版中有几个例子,但它们都没有显示如何获得theora流的长度(即以秒为单位的播放时间)。这个信息在标题中的某处不可用吗?我是否真的必须阅读所有页面并从最后一个数据包的颗粒位置获取长度?这真的是唯一的方法吗? 谢谢你的帮助!
答案 0 :(得分:1)
是的,信息不在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
答案 1 :(得分:0)
对不起,在问我之前我没有看到你的问题:Is there a way to tell the file size of an .ogg video before it is fully loaded?
我很惊讶以前没有人回答,因为这似乎是一个很好的问题,因为ogg视频因HTML5而更有用。