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

H5 下如何解决大文件(大于 500MB)的 mpeg4 的文件缓冲相当慢的问题

  •  
  •   macdino · 2016-11-25 02:17:04 +08:00 · 3798 次点击
    这是一个创建于 2903 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前在微信公从号上面搞了一个 H5 ,用来播放视频,目前视频的格式为 H.264 的 MPEG4 ,目前发现在打开的时候需要缓冲将近 10M 的数据才能播放,如果网络环境稍差一点,需要的时间会比较长( 10 秒)以上。想优化一下,可以达到秒开的状态,有好的方法吗?

    目前测试了如下几种方法和碰到的问题:
    1 、使用 nginx 的 mp4module ,然后用伪 m3u8 的方法,返回一个播放列表,用 mp4module 的 start/end 的方式来处理,但是发现经常会卡住,目前没有找到相关的资料;
    2 、将 mp4 转成 ts 的格式,再生成 m3u8 的方法,因为文件比较大,生成的 ts 会是多个文件,目前关联的时候只能一个视频信息只能关联一个实体文件。

    请问各位,有什么办法可以解决上述问题么,谢谢!
    5 条回复    2016-11-25 14:20:20 +08:00
    yushiro
        1
    yushiro  
       2016-11-25 07:32:52 +08:00   ❤️ 1
    找个转码软件试试吧,一般都可以把文件尺寸压下来。
    还有就是你的视频时长多少,时间太长的话,简单的压缩可能效果不明显, 你可以把画面分辨率减少到 320 宽。
    yushiro
        2
    yushiro  
       2016-11-25 07:33:42 +08:00
    还有, 在 h5 里面放一个 500M 的视频, 你这是要坑死多少人的手机流量啊!
    ghostheaven
        3
    ghostheaven  
       2016-11-25 08:20:43 +08:00 via Android
    需要缓冲的大小跟视频的时间长度无关,只是跟每帧的大小有关。
    aihimmel
        4
    aihimmel  
       2016-11-25 10:14:06 +08:00 via Android
    码率?
    limhiaoing
        5
    limhiaoing  
       2016-11-25 14:20:20 +08:00 via iPhone
    mp4 容器格式的文件头是比较大,并且会随着视频时长增大, flv 则没有这个问题,播放视频必须要读完文件头。早期国内的视频网站很多是基于这个原因使用 flv 的。优酷对长时间的视频进行分块不知道是不是也有这方面的考量。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1404 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 23:43 · PVG 07:43 · LAX 15:43 · JFK 18:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.