FFmpeg视频工具简洁教程

简介

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。

下载安装

最简单的安装方式还是使用包管理工具

sudo apt update
sudo apt install ffmpeg -y

基本使用方式

转换视频文件的格式:

ffmpeg -i demo.avi output.mp4 #.avi --> .mp4

同样可以转换音频文件:

ffmpeg -i dem0.wav output.mp3

指定编码器,这里指定H264编码器:

ffmpeg -i demo.avi -c:v libx264 output.mp4

若使用Nvidia显卡,可以使用h264_nvenc硬件加速:

ffmpeg -i demo.avi -c:v h264_nvenc output.mp4

设置编码速度与问价大小 -preset :

ffmpeg -i demo.avi -c:v libx264 -preset "参数" output.mp4

  参数项可选(从上到下,编码速度又快到慢,压缩文件大小yo由大至小):

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium(默认)
  • slow
  • slower
  • veryslow

控制图像质量-crf 取值范围0- 51,数子越大文件越小,压缩质量越差,常用范围(19 - 28):

fffmpeg -i demo.avi -c:v libx264 -crf 25 output.mp4 

视频剪切:

ffmpeg -i demo.avi -c:v libx264 -ss 00:00:03 -t 00:00:05 output.mp4 # -ss 起始位置 -t 视频时长,格式可用hh:mm:ss或者秒数

ffmpeg -i demo.avi -c:v libx264 -ss 00:00:03 -to 00:00:08 output.mp4

视频合并:
先将所有文件列举在一个文本文档中,

# mylist.txt
	file 'clip1.mp4'
	file 'clip2.mp4'
	file 'clip3.mp4'
ffmpeg -f concat -i mylist.txt -c copy output.mp4 # -c copy 表示不重新编码而是直接拷贝原始视频数据,因为输入视频格式一致,可以节省时间!

过滤器

过滤器可以对视频图像进行变换,如修改尺寸、裁剪、旋转、添加滤镜等等。并且可以指定一系列的过滤器实现复杂的功能,上一个过滤器的输出会作为下一个过滤器的输入 。使用参数 -vf 指定过滤器。

修改视频尺寸"scale=" :

ffmpeg -i demo.avi -c:v libx264 -vf "scale=-1:720" output.mp4 #设置720p,参数设为-1,FFmpeg会根据另一个参数自动推算,当然可以显示给出所有参数。

旋转方向 "transpose=":

ffmpeg -i demo.avi -c:v libx264 -vf "transpose=[参数]" output.mp4

 参数可选:

  • 1 – 顺时针旋转90°
  • 2 – 逆时针旋转90°
  • 0 – 逆时针旋转90°且上下翻转
  • 3 – 顺时针旋转90°且上下翻转

裁剪指定区域"crop=w:h:x:y",分别代表宽、高以及左上角的x、y坐标:

ffmpeg -i demo.avi -c:v libx264 -vf "crop=400:400:100:100" output.mp4

ffmpeg -i demo.avi -c:v libx264 -vf "crop=iw/3:ih/3" output.mp4

过滤器组合使用:

ffmpeg -i demo.avi -c:v libx264 -vf "scale=256:256,transpose=1" output.mp4

音频过滤器

调节音量大小:

ffmpeg -i demo.mp4 -af "volume=1.5" output.mp4

统一视频音量:

ffmpeg -i demo.mp4 -af "loudnorm=I=-5:LRA=1" output.mp4

添加高通、低通滤波器或均衡器:

ffmpeg -i demo.mp4 -af "equalizer=f=1000:width_type=h:width=200:g=-10" output.mp4

删除音频轨:

ffmpeg -i demo.mp4 -an output.mp4

删除视频轨:

ffmpeg -i demo.mp4 -vn output.mp4

删除字幕:

ffmpeg -i demo.mp4 -sn output.mp4

删除数据流:

ffmpeg -i demo.mp4 -dn output.mp4

技巧

创建视频缩略图:

ffmpeg -i demo.mp4 -vf "fps=1/10,scale=-2:720" thumbnail-%03d.jpg

添加水印:

ffmpeg -i demo.mp4 -i shuiyin,jpg -filter_complex "overlay=100:100" output.mp4

GIF动图的转换:

ffmpeg -i demo.mp4 -ss 0 -t 3 -filter_complex [0:v]fps=15,scale=-1:256,split[a][b];[a]palettegen[p];[b][p]paletteuse output,gif

Reference

猜你喜欢

转载自blog.csdn.net/LogosTR_/article/details/125745047