在 ffmpeg 中去除闪烁、裁剪和放大
Posted
技术标签:
【中文标题】在 ffmpeg 中去除闪烁、裁剪和放大【英文标题】:Remove flicker, crop and upscale in ffmpeg 【发布时间】:2020-12-09 10:44:18 【问题描述】:我花了一整天的时间在ffmpeg
行命令上,在谷歌上搜索了很多,但无法实现我想要的,因此我来这里寻求一些建议。
我有一个视频testinput.mpg
,我相信它是一个mpeg-2
视频。它的尺寸为720x576
,具有25 fps
,总比特率为4224 kbps
第一个问题是导出的素材闪烁,我无法使用 ffmpeg 删除它,我尝试了很多命令,例如调整亮度、对比度、色调、饱和度等等。
第二个问题是提取中心部分,我可以使用以下命令使用裁剪功能完成此操作。
ffmpeg -i testinput.mpg -filter:v "crop=468:374" testoutput.mpg
但在裁剪后,我观察到比特率从 4224 kbps
下降到 761 kbps
,我认为这降低了视频质量。
我想要实现的是:
-
正确裁剪视频并保持相同的质量 (
acodec copy
vcodec copy
) -> ffmpeg 不允许我同时做这两件事(裁剪和使用相同的编解码器)
消除视频中的闪烁并将其升级为 4K 或高清画质,使其在大电视(最好是 4K)上看起来不错
我请求一些有关如何达到预期结果的帮助。有人能解释一下吗?
这是我正在制作的 google drive 上的 10 秒示例视频
testinput.mpg
testoutput.mpg
谢谢
【问题讨论】:
电视会自动升级吗?如果是,则无需升级。 感谢您的评论。是的,电视会自动升级,但我观察到质量下降,并且文本周围的闪烁和阴影在大字体下非常明显。命令行是否正确?我不确定它是否在输出中保持代码相同。如果在 ffmpeg 中无法获得所需的输出,则可以,但可以帮助我消除闪烁...非常令人不安...谢谢 升级不会使其具有更高的质量。不可能给它更高的质量。因此,使用 ffmpeg 进行升级不会比电视自动升级更好。您是否曾经将 JPG 放大到 1 倍以上?看起来很糟糕。升级也在做同样的事情。 使用 yadif 过滤器去隔行是否使它看起来更好?ffmpeg -i testinput.mpg -filter:v "yadif,crop=468:374" -q:v 3 -c:a copy testoutput.mpg
还有bwdif和w3fdif。有关每个过滤器的选项和值,请参阅 filter documentation。 yadif=mode=1
可能看起来更好,具体取决于内容。
【参考方案1】:
尝试使用 yadif 过滤器进行去隔行扫描。上传到 YouTube 的命令:
ffmpeg -i input.mpg -filter:v "yadif,crop=468:374" -c:v libx265 -crf 23 -c:a copy output.mkv
不能同时过滤和stream copy (-c:v copy
) 视频。但是因为音频没有被过滤,所以可以复制(-c:a copy
)。
避免升级。升级不会使其具有更高的质量。从小尺寸到大尺寸,不可能给它更高的质量。这就像将 JPG 放大 1 倍以上。看起来很糟糕。放大是做同样的事情,因为信息不存在使它在更大的尺寸下看起来更好。
【讨论】:
Q1 - 此命令生成 .mkv 文件。如果我将其更改为 .mp4,它会生成一个 .mp4 文件还是我们需要添加/更改参数? Q2 - 是否可以在同一命令中用特定帧替换视频的几帧?例如。我想复制一个在 00:00:03 位置可用的帧,并在 00:00:00 到 00:00:15 范围内粘贴该帧,并将其放在同一命令行中谢谢 1) 我选择 .mkv 是因为您想要一个用于 YouTube 的命令。 .mkv 几乎可以处理任何音频格式,因此它可以让您流式复制它,从而节省时间并保持质量。如果您想要 .mp4,请将-c:a copy
更改为 -c:a aac
并将 output.mkv
更改为 output.mp4
。 2)这是一个完全不同的主题,您应该将其作为新问题发布。 Stack Overflow 旨在为每个帖子提供 1 个问题,而不是跨越多个主题的多个后续问题。
非常感谢您的帮助以上是关于在 ffmpeg 中去除闪烁、裁剪和放大的主要内容,如果未能解决你的问题,请参考以下文章