FFMPEG,任何视频到16:9

时间:2019-12-08 08:47:52

标签: bash ffmpeg

帮我找到将任何视频转换为16:9,h264和〜2500kbps的命令或脚本。我有一台服务器,人们可以在其中上传不同质量,大小和长度的视频。它可以是640x480或1216x2160。最终,我需要将分辨率提高到16:9(如有需要,使用黑色边框)和比特率,而不会出现明显的质量损失,这对于在线广播是可以接受的。

我有此命令,但它不检查视频的分辨率。如果视频是560x448 1000kbps和700mb,那么转换后将是1280x720 3000kbps和1.5gb,那是不对的。

ffmpeg -i 5.avi -vcodec libx264 -crf 23 -preset veryfast -vf scale=1280:720:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1 -tune zerolatency highoutput.mp4

2 个答案:

答案 0 :(得分:0)

请尝试以下操作作为起点:

ffmpeg -i "5.avi" -vcodec libx264 -crf 23 -vf "scale=w=trunc(ih*dar/2)*2:h=trunc(ih/2)*2, setsar=1/1, scale=w=1920:h=1080:force_original_aspect_ratio=1, pad=w=1920:h=1080:x=(ow-iw)/2:y=(oh-ih)/2:color=#000000" "output.mp4"

请根据图片质量调整crf值。

答案 1 :(得分:0)

使用

-vf scale=iw*sar:ih,setsar=1,pad='max(iw+mod(iw,2),2*trunc(ih*16/9/2))':'max(ih+mod(ih,2),2*trunc(iw*9/16/2))':-1:-1