问题描述

本博客英雄联盟激情时刻/小火龙第一次五杀这条视频特别卡,电脑浏览器有时会卡,手机、平板直接卡死

手机:iPhone 12 mini,平板:iPad mini 5

iPad mini 5测试视频

原视频

解决方案

加faststart

查了资料,说是moov原子在文件末尾,移动端播放器拿不到视频关键帧与索引

首先查看编码有没有问题

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 <bad>.mp4

输出是h264,不是编码不兼容导致的卡顿

博客视频卡顿_查看编码.png

加faststart

ffmpeg -i <bad>.mp4 -c copy -movflags +faststart <good>.mp4

强了点,但还是在十几秒时卡死,这是fast修复后的视频

直接重新编码

ffmpeg -i <bad>.mp4 -c:v libx264 -profile:v high -level 4.1 -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart <good>.mp4

重新编码后不卡了,不知道是编码哪里对路了,懒得再弄了,这是最终视频

参考资料

  1. 解决移动端播放MP4黑屏问题,PC端正常的问题