如何用FFmpeg将H.264 High4:2:2的MOV转为Baseline Profile MP4适配Android?
解决FFmpeg转H.264 Baseline Profile适配Android的报错问题
问题根源
从FFmpeg日志能明确两点:
- 原视频实际是Apple ProRes 422编码,采用YUV422P10LE(4:2:2)色度采样
- H.264的Baseline Profile仅支持4:2:0色度采样,这就是报错
baseline profile doesn't support 4:2:2的核心原因
修正后的转换命令
添加-pix_fmt yuv420p强制转换为4:2:0采样,同时指定-level 3.1覆盖更多Android机型(Level 3.1适配绝大多数中低端设备):
ffmpeg -i o1.mov -c:v libx264 -profile:v baseline -level 3.1 -pix_fmt yuv420p -c:a aac -ar 44100 -ac 2 -b:a 128k out.mp4
参数说明
-pix_fmt yuv420p:将原视频的4:2:2采样转为Baseline Profile兼容的格式,直接解决编码报错-level 3.1:限制视频的码率、分辨率等参数在Android设备的通用兼容范围内,避免老机型解码失败- 音频参数保持原设置即可,AAC是Android VideoView原生支持的标准音频编码
内容的提问来源于stack exchange,提问作者froniq
相关产品推荐
相关产品推荐

