3

我在 Ubuntu 11.04 上使用 recordMyDesktop v0.3.8.1 来捕获.ogv我的会话。完成后,我.ogv在 VLC 媒体播放器 1.1.9 The Luggage 中打开;这是它的样子:

vlc-1.png

......值得注意的是,没有长度 - 此外,寻找是可怕的。

现在,有人可能会将此归咎于旧软件等 - 但是,我下载

http://archive.org/download/Elephants_Dream_teaser_2/elephantsdream_teaser.ogv

...并在相同版本的 VLC 中打开它 - 你瞧:

vlc-2.png

...该文件的持续时间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没有骨架,但有音轨。我不认为音频是这里的主要区别,因为我已经将recordmydesktops 与音频一起使用,并且它们的行为相同 - 我还使用 删除了这些视频中的骨架,但oggCatVLC 没有任何改进。

我知道:(为 Ogg 媒体配置服务器 - HTTP | MDN):

Ogg 格式不封装媒体的持续时间

在不下载整个文件的情况下从 s3 获取 ogg 轨道的长度):

[获取长度]的方法是使用HTTP范围请求来获取文件的末尾,找到最后一个Ogg页面,并从中提取时间戳。

手册页:oggCut

视频流由 I 帧(完整图片)和 P 帧(前 I 帧的增量图片)组成

Thundering Herd:索引 Ogg 视频中的关键帧以进行快速搜索

当我们将 Ogg/Theora 视频搜索到目标时间时,我们必须对文件执行二等分搜索才能找到目标 Theora 视频帧......如果我们事先知道关键帧在哪里,我们就不需要进行任何二等分搜索

因此,就 VLC 中的性能而言,out.ogvfromrecordmydesktop和之间的差异肯定与关键帧有关。elephantsdream_teaser.ogv所以我的问题是:

  • 我可以使用哪种工具来检查这两个文件在关键帧的存在和数量方面的差异?
  • 我可以使用什么样的工具来转换out.ogv为在 VLC 中表现相同的版本(显示持续时间,并具有合理的搜索时间)elephantsdream_teaser.ogv- 希望不会有损重新编码?
4

0 回答 0