我在Ubuntu 11.04上使用recordMyDesktop v0.3.8.1捕获我的会话的.ogv
。完成后,我打开VLC媒体播放器中的.ogv
1.1.9 The Luggage;这是它的样子:
......值得注意的是,没有长度 - 此外,寻求是可怕的。
现在,有人可能会将此归咎于旧软件等 - 但随后,我下载了
http://archive.org/download/Elephants_Dream_teaser_2/elephantsdream_teaser.ogv
...并在相同版本的VLC中打开 - 并且看得见:
... VLC识别该文件的持续时间 ;另外,寻找工作相对较好!
因此,我尝试使用oggz-info
比较这两个文件:
$ oggz-info ./out.ogv ./elephantsdream_teaser.ogv
Filename: ./out.ogv
Content-Duration: 00:00:34.916
Skeleton: serialno 1766583216
3 packets in 3 pages, 1.0 packets/page, 36.842% Ogg overhead
Presentation-Time: 0.000
Basetime: 0.000
Theora: serialno 0666666463
842 packets in 56 pages, 15.0 packets/page, 0.593% Ogg overhead
Theora-Version: 3.2.1
Video-Framerate: 24.000 fps
Video-Width: 640
Video-Height: 480
------------------------------------------------------------
Filename: ./elephantsdream_teaser.ogv
Content-Duration: 00:01:15.228
Theora: serialno 3398283591
1799 packets in 310 pages, 5.8 packets/page, 0.594% Ogg overhead
Theora-Version: 3.2.1
Video-Framerate: 24.000 fps
Video-Width: 532
Video-Height: 300
Vorbis: serialno 4073121151
3295 packets in 76 pages, 43.4 packets/page, 0.821% Ogg overhead
Audio-Samplerate: 44100 Hz
Audio-Channels: 2
...我唯一能注意到的是:./out.ogv
有一个骨架,但没有音频; ./elephantsdream_teaser.ogv
没有骨架,但有音轨。我不认为音频是这里的主要区别,因为我已经将recordmydesktop
带有音频,并且它们的行为相同 - 而且我也使用{{{{}}删除了这些视频中的骨架1}},VLC没有改进。
我知道:(Configuring servers for Ogg media - HTTP | MDN):
Ogg格式没有封装媒体的持续时间
(Getting the length of a ogg track from s3 without downloading the whole file):
[获取长度]的方法是使用HTTP范围请求来获取文件的末尾,找到最后一个Ogg页面,并从中提取时间戳。
视频流由I帧(全图)和P帧(对于前导I帧的delta图像)组成
(Thundering Herd: Indexing keyframes in Ogg videos for fast seeking)
当我们寻找目标时间的Ogg / Theora视频时,我们必须对文件执行二分搜索才能找到目标Theora视频帧...如果我们事先知道关键帧的位置,我们就不会# 39;不需要进行任何二分搜索
因此,oggCat
out.ogv
和recordmydesktop
之间在VLC性能方面的差异必须与关键帧有关。所以我的问题是:
elephantsdream_teaser.ogv
转换为VLC中表现相同的版本(显示持续时间,并且具有合理的搜索时间),如out.ogv
所做的那样 - 希望没有任何损失重新编码?