q770787217
V2EX  ›  FFmpeg

FFmpeg 技能学习疑问_视频缩放

  •  
  •   q770787217 · Feb 22, 2021 · 2163 views
    This topic created in 1911 days ago, the information mentioned may be changed or developed.
    FFmpeg 技能学习疑问_视频缩放
    原视频 1.MP4 分辨率 540x960
    需要 640X480
    解决 1
    ffmpeg -i 1.mp4 -vf "scale=540:960,pad=1280:960:370:0:black" output.mp4
    ffmpeg -i output.mp4 -vf scale=640:-1 output_01.mp4
    问题麻烦 先要放大 再缩小 不能一步到位

    ffmpeg -i 1.mp4 -vf "scale=540:960,pad=640:480:50:0:black" output00.mp4
    出错
    2 replies    2021-02-24 12:40:07 +08:00
    AX5N
        1
    AX5N  
       Feb 22, 2021
    你到底要干嘛,把一个 9:16 的视频改成 4:3 ?

    > ffmpeg -i a.mp4 -vf scale=640x480,setdar=4:3 output.mp4
    ungrown
        2
    ungrown  
       Feb 24, 2021
    #1 楼是设定显示宽高比来强制压缩好的视频在被播放器回放时拉伸为 4:3,但鉴于源视频是个竖屏,我没理解错的话这么搞是要严重变形的(矮胖)

    我个人不建议修改 PAR SAR DAR 这些涉及画面比例的东西,总觉得容易不小心骗到别人活着被别人骗,后续转码也可能采坑,总之除非别无他法,否则我不喜欢改动这些东西

    楼主的代码看起来是想把一个竖屏源缩小放到一个 640x480 的画面里,两侧加黑边。其实你的命令就仅仅只差一个参数。下面这个参数是我平时将图片序列压成视频用到的:

    scale={width}:{height}:force_original_aspect_ratio=1,pad={width}:{height}:(ow-iw)/2:(oh-ih)/2

    {width}和{height}这两个是变量,是最终输出的宽和长。上面那一串里也只有这两个是变量,ow iw oh ih 都是 ffmpeg 内部的运行时变量名称,分别表示输出和输入的宽和长,这样指定 pad 就不用自己根据具体的数值来计算了,当然这样是把源视频内切于输出画面中并且居中的(一般都是要这样的效果嘛)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3190 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 11:12 · PVG 19:12 · LAX 04:12 · JFK 07:12
    ♥ Do have faith in what you're doing.