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

2021-02-22 14:51:28 +08:00
 q770787217
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
出错
1506 次点击
所在节点    FFmpeg
2 条回复
AX5N
2021-02-22 15:19:03 +08:00
你到底要干嘛,把一个 9:16 的视频改成 4:3 ?

> ffmpeg -i a.mp4 -vf scale=640x480,setdar=4:3 output.mp4
ungrown
2021-02-24 12:40:07 +08:00
#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 就不用自己根据具体的数值来计算了,当然这样是把源视频内切于输出画面中并且居中的(一般都是要这样的效果嘛)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/755098

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX