zoukankan      html  css  js  c++  java
  • MP4文件在线播放首屏慢的问题

    MP4文件首屏慢的问题

    背景:客户录制文件上传到OSS后,打开文件比较慢,想要针对此进行优化

     

    问题现象

    访问url后需要等待加载10s左右,才出现首屏页面。使用各种软件均能复现(chrome、ffplay、vlc)

    已排除网络原因

    最终原因

    研发大佬回复MP4文件moov在文件的末尾导致首屏慢

    网上找的相应的解释:

    播放器在播放视频文件时,之所以知道该怎么去解码,以什么样的时间间隔去显示每一帧,是因为metadata记录了当前视频文件的图像尺寸、编码格式、帧率、码率等等信息,播放器通过解析metadata得到了这些信息,才能控制视频的显示,也就是说播放器要先解析完metadata才会开始播放。

    我们拿MP4作为例子来说明,不同容器的封装在数据存储上会存在一些差异,MP4视频文件结构如下所示:

    它对应的metadata信息称为moov,mdat包含了音频和视频数据。MP4在实际制作中,moov有可能被放到了mdat后面,所以我们要保证制作出来的MP4的moov是放置在mdat前面的,这样才可以实现边下边播功能。如果不是这样,可以用FFmpeg的faststart命令(ffmpeg -i input.mp4 -movflags +faststart output.mp4)处理一下。 另外值得一提的是,如果moov比较大,播放器需要较多的时间去解析,所以在播放之前可能会出现较长的缓冲时间,特别是视频文件较大的情况下,所以现在有些点播网站会采用每段mdat都有自己独立的metadata的封装方式,这样就可实现渐进式下载和快速缓冲的效果。

     

    使用的软件

    • mp4info

    网上有很多文章,但都是下载的软件。

    本人踩坑,大于2G的文件,在MP4info这个软件中打开就会报错。

     

  • 相关阅读:
    谁的朱砂痣染白了谁的白月光
    随机数
    常见面试简单汇总整理
    oss分页列举遍历文件创建软链接
    oss创建软链接
    看英文文档的好处
    js原型链相关
    js 中的this指向问题
    jquery.fn.init
    转载
  • 原文地址:https://www.cnblogs.com/feng0919/p/13338112.html
Copyright © 2011-2022 走看看