ffmpeg 降低视频分辨率

2020-04-10 14:37:26 +08:00
 wsseo

有个 4K 视频,播放卡顿,想降低分辨。这种写法可以吗?需要尽量保证画质。

ffmpeg -i 1.mp4 -strict -2 -vf scale=-1:1440 2.mp4 
7475 次点击
所在节点    FFmpeg
26 条回复
hwenwur
2020-04-10 14:50:59 +08:00
建议用 -crf X, X 的范围是[0, 51], 越小表示清晰度越高。我之前用 -crf 24 文件体积大概减小了 77%,清晰度没有明显变化。
wsseo
2020-04-10 15:03:50 +08:00
@hwenwur 是这样吗?
ffmpeg -i 1.mp4 -strict -2 -crf 24 -vf scale=-1:1440 2.mp4
wsseo
2020-04-10 15:05:36 +08:00
小丸工具箱有 crf 这个参数,但是这个分辨率要自己设置,不知道能不能等比例
clrss
2020-04-10 15:10:39 +08:00
别的机器播放卡顿你用高性能机器重编码可行.

你在放 4K 卡顿的机器上重编码那速度感人...
wsseo
2020-04-10 15:13:49 +08:00
@clrss 我是在移动设备上播放,电脑性能还行,可以播放。不过转码时间还是感人,4k 压成 1080p 花了半个小时。
littlewing
2020-04-10 15:33:35 +08:00
@wsseo 这已经非常快了,我见过之前室友压片子,不过是加了各种滤镜的,速度大概 1.x 帧 1 秒
wenyifancc
2020-04-10 15:51:43 +08:00
ffmpeg -i 1.mp4 -s 1920x1080 -vcodec libx265 -crf 22 -acodec copy 2.mp4 #编码为 H.265 1080p 音频直接复制
ffmpeg -i 1.mp4 -s 1920x1080 -vcodec libx264 -crf 21 -acodec copy 2.mp4 #编码为 H.264 1080p 音频直接复制
wsseo
2020-04-10 15:53:51 +08:00
@wenyifancc 这个能保持宽高比吗?
chihiro2014
2020-04-10 15:58:27 +08:00
降低分辨率,可以用 win10 自带的照片(不要问我怎么知道的,这个自带应用除了卡没别的,某些方面比 PR 还牛逼)
wenyifancc
2020-04-10 15:59:05 +08:00
ffmpeg -i 1.mp4 -s 1920x1080 -vcodec hevc_qsv -preset veryslow -q:v 13 -acodec copy 2.mp4 #使用 Intel 核显硬编码 H.265,质量一般,速度快,q:v 为质量参数,越小质量越高
ffmpeg -i 1.mp4 -s 1920x1080 -vcodec hevc_nvenc -preset slow -q:v 13 -acodec copy 2.mp4 #使用 Nvidia 显卡硬编码 H.265,质量不错,速度非常快,q:v 为质量参数,越小质量越高,需要 GTX10XX 及以上显卡
wenyifancc
2020-04-10 16:00:24 +08:00
@wsseo 把-s 1920x1080 换成你的-strict -2 -vf scale=-1:1440 就行了,要质量关键还是看编码技术和编码质量参数
xmoiduts
2020-04-10 16:04:37 +08:00
这些命令行听起来好高端,请问想学压片软件有哪些教程 我只知道一个 crf 一个 cbr/vbv……
chihiro2014
2020-04-10 16:17:06 +08:00
@xmoiduts 啥也不懂,小丸一波走就可以了。CRF 的话一般 23.5 是最佳值,你想视频体积小,不在意画质,调成 30
jim9606
2020-04-10 16:22:05 +08:00
先确定你的设备能不能支持硬解 HEVC,如果支持可以考虑换用 HEVC

没查到要求-strict,你是不是用的是老版本?

ffmpeg -i 1.mp4 -vf scale=-1:1440 -vcodec libx265 -crf 28 -preset slow 2.mp4

crf 越小质量越好但体积和转码耗时更大,libx264 默认 23,libx265 默认 28,h264 建议添加-profile high 缩小体积

ffmpeg -i 1.mp4 -vf scale=-1:1440 -vcodec libx264 -crf 23 -preset slow -profile high 2.mp4

preset 越慢画质越好但耗时更多,一般建议最少 medium,最多 veryslow

medium 也嫌慢又有新 N 卡(10/16/20 系)的可以用 NVENC ( hevc_nvenc , h264_nvenc ),就算 slow 速度也比较快,不过画质会差些

ffmpeg -i 1.mp4 -vf scale=-1:1440 -vcodec hevc_nvenc -preset slow 2.mp4

ffmpeg -i 1.mp4 -vf scale=-1:1440 -vcodec h264_nvenc -preset slow -profile high 2.mp4
fuxiaopang
2020-04-10 16:29:20 +08:00
这个是压缩到优酷超清的最低标准的命令
ffmpeg -i input -b:v 4000k -minrate 3500k -maxrate 10000k -bufsize 4000k -s 1920x1080 -r 25 -g 25 -c:v libx264 -ar 48000 -b:a 192k -strict -2 output.mp4

然后给你一个我总结多年经验的终极命令
这个命令可以帮你把所有奇怪的分辨率自动加黑边遮幅,变成一个没有拉扯的 16:9 的视频,如果本身就是 16:9 那就直接按照最终参数渲染

ffmpeg -i input.mp4 -filter:v "scale=iw*min(1920/iw\\,1080/ih):ih*min(1920/iw\\,1080/ih), pad=1920:1080:(1920-iw*min(1920/iw\\,1080/ih))/2:(1080-ih*min(1920/iw\\,1080/ih))/2" -b:v 4000k -minrate 3500k -maxrate 10000k -bufsize 4000k -r 25 -g 25 -c:v libx264 -ar 48000 -b:a 192k -strict -2 output.mp4
wsseo
2020-04-10 17:04:34 +08:00
事情的经过是这样的,买了个爱奇艺 VR 一体机播放本地视频 VR 4K ( 4K*2160),谁知道播放的时候卡成 ppt,问客服才知道最大只支持 3840*2160 。
felixlong
2020-04-10 17:35:01 +08:00
@wsseo 4K*2160 和 3840x2160 难道不是一回事吗?
pkookp8
2020-04-10 17:44:00 +08:00
@wsseo 4k 就是 3840*2160
客服忽悠你呢吧
还是帧率问题
wsseo
2020-04-10 17:47:30 +08:00
@pkookp8 @felixlong 我下的视频确实是 4000 多*2160,
pkookp8
2020-04-10 17:51:59 +08:00
@wsseo 视频编码界的编码格式果然千奇百怪。。。

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

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

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

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

© 2021 V2EX