V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qq529633582
V2EX  ›  问与答

在线视频的“Hi-speed scrubbing”是怎么做到的呢?

  •  
  •   qq529633582 · 2014-07-09 17:20:35 +08:00 · 2600 次点击
    这是一个创建于 3790 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在在线播放视频时,当我们把进度条拖到还没下载到的部分时,播放器会直接跳过前面那段开始下载所需部分。

    但是对于还没下载到的部分,播放器是如何根据时间对应到offset的呢?求以flv和mp4为例的解释
    2 条回复    2014-07-09 17:34:08 +08:00
    lsylsy2
        1
    lsylsy2  
       2014-07-09 17:29:41 +08:00
    可以用浏览器的工具看一下,我记得有些网站是把时间放在请求的URL里面
    http://example.com/a.mp4?time=12345 这样的,服务器将a.mp4拆开来,从时间戳12345(最近的I帧之类)开始重新封包数据发给你。
    视频封装和转码不一样,只是换个壳子,对服务器负载不是很大。
    qq529633582
        2
    qq529633582  
    OP
       2014-07-09 17:34:08 +08:00
    @lsylsy2 优酷的flash播放器是这么干的。但是如果用vlc直接放那个flv呢?另外用chrome直接播放mp4,浏览器会算出offset然后放弃之前的下载,发出一个header带Range的新请求。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2794 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 08:34 · PVG 16:34 · LAX 00:34 · JFK 03:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.