CentOS7使用yum方式安装ffmpeg及简单实战命令
FFmpeg 是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能,包含了 libavcodec——这是一个用于多个项目中音频和视频的解码器库,以及 libavformat——一个音频与视频格式转换库。
此计划由几个组件组成:
ffmpeg——一个命令行工具,用来对视频文档转换格式,也支持对电视卡即时编码
ffserver——一个HTTP多媒体即时广播流服务器,支持时光平移
ffplay——一个简单的播放器,基于SDL与FFmpeg库
libavcodec——包含全部FFmpeg音频/视频编解码库
libavformat——包含demuxers和muxer库
libavutil——包含一些工具库
libpostproc——对于视频做前处理的库
libswscale——对于影像作缩放的库
安装步骤
1.CentOS 系统官方没有提供 ffmpeg rpm 的软件包,但我们可以通过第三方 yum 源(Nux Dextop)来安装。而安装其他的 repo 源,需要 EPEL 支持,安装 EPEL Release 命令如下:
yum install -y epel-release
2.第一步完成之后,接下来是安装 Nux Dextop Yum 源:
# 导入Code sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro # 安装nux-dextop 源 sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
3.查看 repo 源是否安装成功
yum repolist
若安装成功显示如下信息:
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* epel: mirror.sjtu.edu.cn
* extras: mirrors.aliyun.com
* nux-dextop: mirror.li.nux.ro
* remi-safe: mirrors.tuna.tsinghua.edu.cn
* updates: mirrors.aliyun.com
nux-dextop | 2.9 kB 00:00:00
nux-dextop/x86_64/primary_db | 1.8 MB 00:00:02
源标识 源名称 状态
base/7/x86_64 CentOS-7 - Base 10,070+2
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,569+2
extras/7/x86_64 CentOS-7 - Extras 463
nux-dextop/x86_64 Nux.Ro RPMs for general desktop use 2,722+2
openresty/7/x86_64 Official OpenResty Open Source Repository for CentOS 256
remi-safe Safe Remi's RPM repository for Enterprise Linux 7 - x86_64 4,148
updates/7/x86_64 CentOS-7 - Updates 1,900+1
4.第三方 yum 源安装完成后,接下来安装 ffmpeg 和 ffmpeg 开发包
sudo yum install ffmpeg ffmpeg-devel -y
5.测试是否安装成功
ffmpeg -version
若安装成功后可以看到以下输出:
ffmpeg version 2.8.15 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-36) configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp, -D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --extra-ldflags='-Wl,-z,relro ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc --enable-version3 --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --enable-libfdk-aac --enable-nonfree --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect libavutil 54. 31.100 / 54. 31.100 libavcodec 56. 60.100 / 56. 60.100 libavformat 56. 40.101 / 56. 40.101 libavdevice 56. 4.100 / 56. 4.100 libavfilter 5. 40.101 / 5. 40.101 libavresample 2. 1. 0 / 2. 1. 0 libswscale 3. 1.101 / 3. 1.101 libswresample 1. 2.101 / 1. 2.101 libpostproc 53. 3.100 / 53. 3.100
6.如果你想了解更多关于FFmpeg使用方面的资料,可以输入:
ffmpeg -h
更多的使用例子
1.视频转ts格式:
ffmpeg -i 1.MOV -vcodec copy -acodec copy -vbsf h264_mp4toannexb -v quiet 1.ts -y
2.多个视频合并
ffmpeg -i "concat:1.ts|2.ts|3.ts" -c copy -absf aac_adtstoasc -v quiet input.mp4 -y
对于多视频合并操作例子,网上大多数说直接例如txt文件逐行,经测试还是将所有要合并的视频转码ts格式后,然后在合并速度超快且清晰度非常好。
因此这两步可以作为视频合并例子参考
3.视频去声音
ffmpeg -i input.mp4 -an -v quiet input_noan.mp4
4.视频倍速
ffmpeg -i input_noan.mp4 -filter:v "setpts=0.5*PTS" -v quiet output.mp4 -y
5.MP3剪辑 (表示从头开始,截取到1分49秒的音频)
ffmpeg -i 1.mp3 -vn -acodec copy -ss 00:00:00 -t 00:01:49 -v quiet output.mp3 -y
6.将音频合并到视频中
ffmpeg -i input_noan.mp4 -i 1.mp3 -c:v copy -c:a aac -strict experimental -shortest -v quiet outputVideo.mp4 -y
7.降低音频音量
ffmpeg -i 1.mp3 -af "volume=-10dB,volume=0.5" output.mp3
8.将图片合成视频(需指定图片名称)
ffmpeg -r 0.2 -f image2 -i ./image%d.jpg -vcodec libx264 -threads 2 tt.mp4
9.将图片合成视频(附带上下左右转场效果)
ffmpeg -y -i image0.jpg -i image2.jpg -i image3.jpg -i image0.jpg -i image2.jpg -filter_complex "[0:v]zoompan='1.5':x='if(lte(on,-1),(iw-iw/zoom)/2,x+3)':y='if(lte(on,1),(ih-ih/zoom)/2,y)':d=150[v0];[1:v]zoompan='1.5':x='if(lte(on,1),(iw-iw/zoom)/2,x)':y='if(lte(on,-1),(ih-ih/zoom)/2,y+2)':d=150[v1];[2:v]zoompan='1.5':x='if(lte(on,1),(iw/zoom)/2,x-3)':y='if(lte(on,1),(ih-ih/zoom)/2,y)':d=150[v2];[3:v]zoompan='1.5':x='if(lte(on,1),(iw-iw/zoom)/2,x)':y='if(lte(on,1),(ih/zoom)/2,y-2)':d=150[v3];[4:v]zoompan='1.5':x='if(lte(on,1),(iw-iw/zoom)/2,x)':y='if(lte(on,1),(ih/zoom)/2,y-2)':d=150[v4];[v0][v1][v2][v3][v4]concat=n=5:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4
10.图片尺寸调整1440x1080
ffmpeg -i image1.jpg -vf scale=1440:1080 output_320x240.jpg
11.视频加速
ffmpeg -i out.mp4 -filter:v "setpts=0.6*PTS" -v quiet output.mp4 -y
12.视频截取
ffmpeg -ss 00:00:00 -t 00:00:30 -i test.mp4 -vcodec copy -acodec copy output.mp4
更多更好玩的ffmpeg可以留言讨论下!
评论
米密码啊
回复这个可以直接做视频音频合并么?
流氓凡
回复@米密码啊 当然可以啦~