关于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
目录
打赏
0
1
0
0
320
分享
相关文章
|
10月前
|
FFmpeg开发笔记(十四)FFmpeg音频重采样的缓存
FFmpeg在视频流重编码和音频重采样中使用缓存机制。在音频文件格式转换时,特别是对于帧长度不固定的格式如ogg、amr、wma,需处理重采样缓存。通过调用`swr_convert`,传入空输入和0大小来清空缓存。在`swrmp3.c`中,修改帧样本数处理,并在循环结束后添加代码以冲刷缓存。编译并运行程序,将ogg文件重采样为MP3,日志显示操作成功,播放转换后的文件确认功能正常。
184 7
FFmpeg开发笔记(十四)FFmpeg音频重采样的缓存
实战--实现任意格式文件的音视频播放器
实战--实现任意格式文件的音视频播放器
54 0
FFmpeg开发笔记(七):ffmpeg解码音频保存为PCM并使用软件播放
FFmpeg开发笔记(七):ffmpeg解码音频保存为PCM并使用软件播放
FFmpeg开发笔记(七):ffmpeg解码音频保存为PCM并使用软件播放
FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地
FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地
1526 0
FFMPEG音频开发: Linux下采集摄像头(使用V4L2框架)数据录制成MP4视频保存到本地
FFMPEG视频开发:Window系统下载部署FFMPEG库并获取摄像头数据保存为MP4文件存放到本地(使用FFMPEG本身接口获取摄像头数据)
FFMPEG视频开发:Window系统下载部署FFMPEG库并获取摄像头数据保存为MP4文件存放到本地(使用FFMPEG本身接口获取摄像头数据)
502 0
FFMPEG视频开发:Window系统下载部署FFMPEG库并获取摄像头数据保存为MP4文件存放到本地(使用FFMPEG本身接口获取摄像头数据)