【问题标题】:FFMPEG, any video to 16:9FFMPEG,任何视频到 16:9
【发布时间】:2020-04-01 16:00:13
【问题描述】:

帮助我找到将任何视频转换为 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

【问题讨论】:

    标签: bash ffmpeg


    【解决方案1】:

    请尝试以下作为起点:

    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 值。

    【讨论】:

    • 我在几乎所有文件上都收到错误,我的转换停止justpaste.it/2ph36
    • 好的,我尝试为 640x480 视频编写此代码,它运行良好,但它与我的源代码相同 ffmpeg -i "1.mp4" -vcodec libx264 -crf 23 -vf “比例=w=trunc(ih*dar/2)*2:h=trunc(ih/2)*2,setsar=1/1,比例=w=848:h=480:force_original_aspect_ratio=1,pad=w =848:h=480:x=(ow-iw)/2:y=(oh-ih)/2:color=#000000" -report "output.mp4"
    • 很抱歉给您带来不便。据我所知,cur_dts is invalid 错误是由于 AVI 文件中的标头损坏或时间戳无效,应该与缩放过滤器无关。是否可以将我指向视频片段的 url,以便我可以重现错误? BR。
    【解决方案2】:

    使用

    -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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      • 2015-12-25
      • 1970-01-01
      • 2012-05-08
      相关资源
      最近更新 更多