MP4文件在线播放首屏慢的问题

Posted feng0919

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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这个软件中打开就会报错。

 

以上是关于MP4文件在线播放首屏慢的问题的主要内容,如果未能解决你的问题,请参考以下文章

MP4 文件不在 MPMoviePlayerController 中播放?

MP4播放器支持啥格式的视频文件?

MP4格式的视频播放不出来了怎么办?

.mp4 文件无法在 chrome 中播放

为啥某些 MP4 文件不能通过 HTML5 播放?

ffmpeg 从 avi 文件生成无法播放的 MP4 文件