使用ffmpeg转换avi为mp4无法在macOS原生播放,求适配设置
适配macOS原生播放的FFmpeg转换方案
直接复制流的命令仅在源流编码符合macOS原生支持规范时生效,你遇到的花屏、无声音问题确实是原音视频编码不兼容导致,需重新编码为H.264+AAC的通用兼容组合,使用以下参数即可:
单文件转换命令
ffmpeg -i input.avi -c:v libx264 -c:a aac -profile:v high -level 4.2 -pix_fmt yuv420p -b:a 192k output.mp4
参数说明:
-c:v libx264:指定视频编码为H.264,是macOS QuickLook、QuickTime原生默认支持的视频编码-c:a aac:指定音频编码为AAC,匹配macOS原生音频解码要求,解决无声音问题-profile:v high -level 4.2:设定H.264编码规格,完全覆盖Apple设备的解码兼容范围-pix_fmt yuv420p:指定像素格式为yuv420p,QuickTime仅默认支持该像素格式的H.264视频,可解决花屏问题-b:a 192k:设置音频比特率,平衡音质与文件体积
批量转换命令
如果需要一次性转换当前目录下所有.avi文件,可直接运行以下shell命令:
for f in *.avi; do ffmpeg -i "$f" -c:v libx264 -c:a aac -profile:v high -level 4.2 -pix_fmt yuv420p -b:a 192k "${f%.avi}.mp4"; done
可选优化参数
如果对视频画质有更高要求,可在视频编码参数后添加-crf 23配置,CRF取值范围为0-51,数值越低画质越高、文件体积越大,日常使用18-28之间的数值都属于合理范围,示例:
ffmpeg -i input.avi -c:v libx264 -crf 22 -c:a aac -profile:v high -level 4.2 -pix_fmt yuv420p -b:a 192k output.mp4
内容的提问来源于stack exchange,提问作者Manngo
相关产品推荐
相关产品推荐

