2024-11-03 14:06
处理一些旧视频源的时候,有时候需要切上下左右的黑边。ffmpeg 的 -vf 滤镜可以完成这一工作。比如,某视频画面大小是 1920x1080,但实际有图像部分的大小是 1400x1080,两边都是黑色填充。但这 1400x1080 的图像边缘也并不整齐,有一些黑边。那么就可以这样处理得到干净的画面:
ffmpeg -hwaccel cuda -c:v:0 h264_cuvid -i 03.mkv -map 0:v:0 -map 0:a:0 -map 0:a:1 -sn -c:a copy -c:v hevc_nvenc -vf "crop=1400-10:ih-22:(iw-1400)/2+5:2,scale=1400:1080,setsar=1:1" -b:v 1.5M -maxrate:v 6M -bf:v 4 03new.mkv
在上面的 -vf 滤镜中,crop 负责切割画面,用法是:“crop=切割后的宽度:切割后的高度:横向切割起点:纵向切割起点”;iw 和 ih 表示原始视频画面的宽度和高度。切掉黑边后,得到的画面会比 1400x1080 略小,用 “scale=1400:1080” 可以把画面拉伸到 1400x1080。
注意:如果用 Nvidia 显卡编解码,此时不能用 -hwaccel_output_format cuda 参数。因为这个参数的功能是让显卡解码后的数据直接进入显卡编码器,整个过程不出显卡。这样效率自然最高,但由 CPU 实现的视频滤镜自然也就无效了。
图一是未处理前的画面,图二是切除黑边后。
2024-11-03 12:34
今天的盲猜关注列表活动开始啦!//@九洲无名捕手:原博陈述客观事实而已,没必要扣帽子。//@t0mbkeeper:历史上的政治投机者有少数能成功,还有少数被弄死,大部分毫无收获。
2024-11-03 10:22
历史上的政治投机者有少数能成功,还有少数被弄死,大部分毫无收获。 //@西雅图黄都督:这货不是北京人……//@ExcitedVczh:你们北京人爱怎么打随便,不要拿广东当前线就行