FFMPEG:如何正确将包含“rawvideo,bgr24”的 avi 转换为 mp4?

FFMPEG:如何正确将包含“rawvideo,bgr24”的 avi 转换为 mp4?

我有.avi文件:

$ ffprobe input.avi -hide_banner
Input #0, avi, from 'input.avi':
  Duration: 00:01:08.05, start: 0.000000, bitrate: 182785 kb/s
  Stream #0:0: Video: rawvideo, bgr24, 1060x615, 182915 kb/s, 20 fps, 20 tbr, 20 tbn

$ file input.avi
input.avi: RIFF (little-endian) data, AVI, 1060 x 615, 20.00 fps, video: uncompressed

这里我们看到“rawvideo,bgr24”。

我已经尝试多次调用 ffmpeg,但无法.mp4在 Windows 10 照片应用中播放:

在此处输入图片描述

或者.mp4在其他玩家那里玩得不正确: 在此处输入图片描述

注意:但是 VLC 播放效果很好.mp4

一个简单的问题:如何正确地.avi将包含“rawvideo,bgr24”转换为.mp4(以便可以在任何播放器中正确播放)?

答案1

FFmpeg(H.264编解码器)的默认输出像素格式是yuv444p

由于某种原因微软电影和电视播放器不支持yuv444p像素格式的 H.264(至少不是“开箱即用的”)。

为了获得更高的可移植性,请选择yuv420p像素格式:

ffmpeg -i input.avi -pix_fmt yuv420p output.mp4

最好选择编解码器并设置crf(质量)参数(不依赖于默认值):

ffmpeg -i input.avi -vcodec libx264 -crf 20 -pix_fmt yuv420p output.mp4

一般来说,我不建议使用电影和电视,但出于某种原因,微软决定将其作为 Windows 10 中的默认播放器......

相关内容