ffmpeg使用filter crop 裁剪视频

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ffmpeg使用filter crop 裁剪视频相关的知识,希望对你有一定的参考价值。

参考技术A ​ 有时候使用OBS之类的工具录制生放送视频会把多余的边框录制进去,网上有一些这样的视频,这样的视频看起来不太舒服,边框占据屏幕面积,实际的内容只有很小的部分,不方便观看,最近就碰到一个这样的例子。于是我查看ffmpeg文档找到了裁剪视频的方法。

​ 使用filter可以对视频流和音频流进行一些处理,包含了很多工具,可以实现诸如裁剪视频,给视频加水印,去色块,加字幕等功能,也有对音频处理的功能,比如可以实现双声道合并转单声道,调整音频采样率等

​ 这次我需要处理的一个视频的情况是录制niconico生放送,实际录制区域在左上角,整个视频为1920x1080大小,但是只有左上角部分是浏览器的视频内容,周边全是黑色区域。

​ 执行的ffmpeg命令如下:

​ ffmpeg -i in.mp4 -vf crop='1280:720:0:0' -acodec copy out.mp4

其中crop常用的4个参数分别用 : 隔开,w,h,x,y,分别是裁剪的宽高和裁剪的位置。

也可以按如下方式指定参数

ffmpeg -i in.mp4 -vf crop='out_w=1280:out_h=720:x=0:y=0' -acodec copy out.mp4

-vf是 -filter:v的缩写。

还有一些其他参数可以指定:

自动检测裁剪大小,没有试过实际效果,所以先把文档贴上,以后用到了再看吧。

Auto-detect the crop size.

It calculates the necessary cropping parameters and prints the recommended parameters via the logging system. The detected dimensions correspond to the non-black area of the input video.

It accepts the following parameters:

如何将旋转角度传递给 ffmpeg 库?

【中文标题】如何将旋转角度传递给 ffmpeg 库?【英文标题】:How can I pass a rotation angle to the ffmpeg library? 【发布时间】:2017-04-28 13:44:06 【问题描述】:

为了在 Android 中裁剪视频,我创建的唯一解决方案是:ffmpeg 库。阅读文档后,我不太了解命令行接收哪些参数。 例如,

String[] cmd = "-i", in, "-filter:v", "crop=" + 240 + ":" + 120 + ":" + 100 + ":" + 100, "- c:a", "复制", out;

如何应用旋转角度?

视频裁剪的正确 cmd 是什么?

【问题讨论】:

请看我的回答***.com/questions/41138683/… 【参考方案1】:

只是快速谷歌搜索发现以下。

Cropping video(很好解释的答案)

视频旋转ffmpeg命令

ffmpeg -i in.mov -vf "transpose=1" out.mov

转置的有效选项

0 = 90CounterCLockwise and Vertical Flip (default)
1 = 90Clockwise
2 = 90CounterClockwise
3 = 90Clockwise and Vertical Flip

希望对你有帮助

视频轮播回答source

【讨论】:

以上是关于ffmpeg使用filter crop 裁剪视频的主要内容,如果未能解决你的问题,请参考以下文章

裁剪,使用 ffmpeg 重新排列视频帧的中间

FFmpeg filter_complex concat 仅给出裁剪的第一个输入

在 ubuntu 上使用 ffmpeg 裁剪视频中的黑条会改变视频大小

如何在 ffmpeg 视频过滤器的字幕中添加字体大小

FFMPEG |重新排列作物

FFMpeg学习 用libavfilter对视频尺寸进行裁切