FFmpeg与音视频流媒体工程开发相关

ffmpeg使用filter crop 裁剪视频

2019-06-25  本文已影响0人  mudssky

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

1.filter介绍

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

2.crop

​ 这次我需要处理的一个视频的情况是录制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的缩写。

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

  1. keep_aspect,默认是0,设置为1可以保持原视频的宽高比

  2. exact,默认为0,设置为1后裁剪的大小不会取整为最接近的值,而是准确值

  3. out_w,out_h,in_w.in_h,ow,oh,iw,ih可以在参数中使用,分别代表输入输出的宽和高。可以实现复杂一些的应用,比如crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)

  4. 通过iw/ih或者a参数,指定宽高比

  5. sar,input sample aspect ratio,输入样本宽高比

  6. dar,input display aspect ratio, it is the same as (iw / ih) * sar,输入样本显示宽高比。

  7. n,起始帧,从0开始

3.cropdetect

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

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:

上一篇下一篇

猜你喜欢

热点阅读