在 ubuntu 上使用 ffmpeg 裁剪视频中的黑条会改变视频大小
Posted
技术标签:
【中文标题】在 ubuntu 上使用 ffmpeg 裁剪视频中的黑条会改变视频大小【英文标题】:Cropping black bars in video with ffmpeg on ubuntu changes video size 【发布时间】:2011-01-13 15:18:51 【问题描述】:我有一个大小为 720x576 的源视频,顶部和底部都有黑色矩形。
我想删除黑色矩形并将输出视频大小设置为 640x352。
我试过-vf cropdetect
,它给出的值是640:192:0:80。
但是,将相同的值放入 crop=<parameter>
会改变输出视频的大小。
我该如何解决这个问题?
例如:
ffmpeg -i all_the_best_test.mpg -s 640x352 -deinterlace -b 500k -minrate 500k \
-maxrate 500k -aspect 1.82 -force_fps -vcodec libx264 -me_method 10 \
-vf crop=640:192:0:80 -r 25 -acodec libfaac -ac 2 -ar 44100 -ab 96k -subq 6 \
-vpre medium /vod/Movies/final/allthebest-crop-2.mp4
【问题讨论】:
假设这仍然是一个问题,“更改视频大小”是什么意思?长宽比不对?目前尚不清楚您想要的输出是什么,因为cropdetect 说电影内容是640x192,但您说您想要640x352。你只想要更小的黑条吗?不同的纵横比? 【参考方案1】:当您将 -s 640x352 指定为应用于输出的第一个命令时,您是否期望 ffmpeg 会最后处理它?从你的结果来看,我认为它一定是先应用了它(对于黑框仍然完好的电影)。所以黑框会随着电影一起调整大小。然后,您将针对原始尺寸影片检测到的裁剪应用到这个新的较小影片。如果不画一些东西就很难解释,但这会扭曲你的纵横比,如果裁剪被声明为要保留的几何图形,请从边缘剪掉一些内容(记住:你在应用原始裁剪之前缩小了视频)。换句话说,它不仅仅是翘曲,而是人们应该有一些头发和附属物的缺失?
为什么不做一个简单的测试用例。如果我按照您在黑框电影上的基本方法进行操作,效果会非常好。
第 1 步保持不变。执行 ffmpeg -i movie.mp4 -vf cropdetect temp.mp4 并阅读它对裁剪的说明,例如您的crop=640:192:0:80。
第 2 步:简化命令行以进行测试:ffmpeg -i movie.mp4 -vf crop=640:192:0:80 movie_without_borders.mp4。确保在将自己的边界设置为文件大小的播放器中播放结果(或者可以配置为这样做 - 如果您在底池播放器中,请按 2)。新电影没有失真,黑色边框消失了。
对于我的测试文件,发生了两次大小变化。首先,很明显,新的几何尺寸是我们为作物指定的。其次,文件大小略有减少,大概是因为使用了一些少量空间来保存黑匣子。使用 libx264 和相对压缩的低质量文件,没有太多移动,切出与图片等面积的黑框,将文件大小从 3.99 减少到 3.76(对于 n=1..)。但很可能你的意思是图片看起来“扭曲”。
【讨论】:
以上是关于在 ubuntu 上使用 ffmpeg 裁剪视频中的黑条会改变视频大小的主要内容,如果未能解决你的问题,请参考以下文章
在 Android 中使用 FFmpeg 将视频裁剪为方形格式