要将WebM VP8/VP9多分辨率视频转换为MP4(H.264),您可以使用FFmpeg,这是一个非常强大的命令行工具,用于处理多媒体文件
ffmpeg -i input.webm -vf "scale=iw*min(1920/iw\,1080/ih):ih*min(1920/iw\,1080/ih),setsar=1,format=yuv420p" -c:v libx264 -preset slow -crf 22 -c:a aac -b:a 192k -movflags +faststart output.mp4
这个命令的每个部分解释如下:
-i input.webm
:指定输入文件为input.webm
。-vf
:表示将对视频进行滤镜处理。scale=iw*min(1920/iw\,1080/ih):ih*min(1920/iw\,1080/ih)
:将视频缩放到最接近1920x1080的分辨率,同时保持原始宽高比。setsar=1
:设置采样比例为1:1,以避免某些播放器出现错误。format=yuv420p
:将视频格式设置为yuv420p,这是一种常见的视频格式,适用于大多数播放器。-c:v libx264
:设置视频编解码器为H.264(libx264)。-preset slow
:设置编码速度/质量的平衡,slow
表示在保证质量的前提下尽量减慢编码速度。-crf 22
:设置恒定速率因子(CRF),数值越小质量越高,范围通常为0-51,默认值为23。这里使用22以获得较好的质量。-c:a aac
:设置音频编解码器为AAC。-b:a 192k
:设置音频比特率为192 kbps。-movflags +faststart
:将moov原子移动到文件开头,以便在网络上更快地开始播放。output.mp4
:指定输出文件名为output.mp4
。请注意,这个命令假设您希望将视频缩放到1920x1080的分辨率。如果您希望使用其他分辨率,只需更改scale
参数中的值。例如,如果您希望将视频缩放到1280x720,您可以将scale
参数设置为scale=iw*min(1280/iw\,720/ih):ih*min(1280/iw\,720/ih)
。
此外,如果您需要处理多分辨率视频(例如,WebM容器中的VP8/VP9视频可能包含多个分辨率轨道),您可能需要使用FFmpeg的-map
选项来选择特定的视频流。您可以使用ffmpeg -i input.webm
命令查看输入文件中的流信息,然后使用-map
选项指定要转换的流。
领取专属 10元无门槛券
手把手带您无忧上云