char *a[] = {"ffmpeg", "-y", "-err_detect", "ignore_err", "-i", resPath, "-vcodec", "h264_videotoolbox", "-acodec", "aac", "-f", "mp4", "-movflags", "frag_keyframe+empty_moov", outPath};
这个ffmpeg命令在iPhone7 iOS15.8.5上对一个3s的hls视频切片转码耗时约1.5s,在iPhone12 mini iOS16.1上转码耗时约6.5s,试了各种改动都无法优化。
最终将命令改为传入-filter:v指定分辨率,将分辨率降低一点,速度快了很多,但是在iPhone7上又变慢了,注意动态处理下,详细分析可以将代码贴入GPT,让其解释
char *a[] = {"ffmpeg", "-y", "-err_detect", "ignore_err", "-i", resPath, "-vcodec", "h264_videotoolbox", "-acodec", "aac", "-f", "mp4", "-filter:v", scale, "-movflags", "frag_keyframe+empty_moov", outPath};