我在 Ubuntu 11.04 上使用 recordMyDesktop v0.3.8.1 来捕获.ogv
我的会话。完成后,我.ogv
在 VLC 媒体播放器 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
s 与音频一起使用,并且它们的行为相同 - 我还使用 删除了这些视频中的骨架,但oggCat
VLC 没有任何改进。
我知道:(为 Ogg 媒体配置服务器 - HTTP | MDN):
Ogg 格式不封装媒体的持续时间
(在不下载整个文件的情况下从 s3 获取 ogg 轨道的长度):
[获取长度]的方法是使用HTTP范围请求来获取文件的末尾,找到最后一个Ogg页面,并从中提取时间戳。
视频流由 I 帧(完整图片)和 P 帧(前 I 帧的增量图片)组成
(Thundering Herd:索引 Ogg 视频中的关键帧以进行快速搜索)
当我们将 Ogg/Theora 视频搜索到目标时间时,我们必须对文件执行二等分搜索才能找到目标 Theora 视频帧......如果我们事先知道关键帧在哪里,我们就不需要进行任何二等分搜索
因此,就 VLC 中的性能而言,out.ogv
fromrecordmydesktop
和之间的差异肯定与关键帧有关。elephantsdream_teaser.ogv
所以我的问题是:
- 我可以使用哪种工具来检查这两个文件在关键帧的存在和数量方面的差异?
- 我可以使用什么样的工具来转换
out.ogv
为在 VLC 中表现相同的版本(显示持续时间,并具有合理的搜索时间)elephantsdream_teaser.ogv
- 希望不会有损重新编码?