关于mp4 在线播放加载时间长的问题

简介: 关于mp4 在线播放加载时间长的问题

问题描述

有时候我们会遇到一些mp4视频,一开始加载播放的时候很慢,大家都会以为是网络问题导致,其实不是的。

问题原因

分析原因前,需要下载一个工具mp4info 打开加载慢的mp4文件

image.png

可以看到这个mp4视频的moov是在mdat后边,这样的视频文件如果较大,通过网络流加载播放的时候,就会在开始播放时候需要较长时间加载后才能播放

由于moovatom中包含了metadata (可以简单理解为音视频流的编码格式,码率,分辨率,等等),当moovatom 在mdatatom后边位置的时候,就会导致加载网络流的时候,客户端先要下载完mdatatom 数据才能下载到moovatom数据,那由于客户端播放器解码是要根据metadata中的信息来解码的时候,就要等moov下载数据加载完才可以,这个时候的现象就比较慢。那如何解决这个问题呢?

解决方案

可以用ffmpeg 工具来进行转码

示例命令

ffmpeg -i 源.mp4 -codec copy -movflags faststart 目标.mp4

image.png

这样转码后,moov就在mdat 的前边了,网络流播放可以加载较小的数据,获取到metadata信息后就可以解码边下载边播放了。大大提升播放体验。

 

适用范围

  • OSS
  • VOD
相关文章
|
7月前
如何下载网页中的视频成mp4格式
如何下载网页中的视频成mp4格式
|
编解码
如何解决虚拟主机MP4格式的视频播放黑屏
如何解决虚拟主机MP4格式的视频播放黑屏
|
Java Maven
获取WAV时长 | Java工具类
获取WAV时长 | Java工具类
获取WAV时长 | Java工具类
|
移动开发 JavaScript
JS指定音频audio在某个时间点进行播放,获取当前音频audio的长度,音频时长格式转化
JS指定音频audio在某个时间点进行播放,获取当前音频audio的长度,音频时长格式转化
773 0
JS指定音频audio在某个时间点进行播放,获取当前音频audio的长度,音频时长格式转化
|
Java Maven
获取MP3音频时长 | Java工具类
获取MP3音频时长 | Java工具类
获取MP3音频时长 | Java工具类
|
Ubuntu Linux
FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地
FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地
1471 0
FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地
|
编解码 Ubuntu
FFMPEG音频视频开发: 视频转码、合并、修改分辨率、比特率
FFMPEG音频视频开发: 视频转码、合并、修改分辨率、比特率
1273 0
|
C语言 Android开发
【音视频连载-005】基础学习篇-SDL 加载 YUV 文件并显示
在前面的文章中已经完成了图片的加载和显示,接下来要做的就是加载 YUV 文件并显示
360 0
【音视频连载-005】基础学习篇-SDL 加载 YUV 文件并显示
将腾讯视频转为mp4格式保存
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396393 在腾讯视频缓存的文件,是qlv格式的,下载一个视频以后,默认就是qlv格式,点击设置,下载设置,缓存管理,复制这个目录,访问它。
1202 0