• 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这个软件中打开就会报错。

     

  • 相关阅读:
    Max Sum of Max-K-sub-sequence(单调队列)
    Matrix Swapping II(求矩阵最大面积,dp)
    重温世界杯(贪心)
    Pie(求最小身高差,dp)
    Matrix(多线程dp)
    Python 实现自动导入缺失的库
    分布式系统session一致性解决方案
    数据结构 【链表】
    【数字图像处理】gamma变换
    【数字图像处理】顶帽变换和底帽变换
  • 原文地址:https://www.cnblogs.com/feng0919/p/13338112.html
Copyright © 2020-2023  润新知