FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,作为多媒体视频处理工具,FFmpeg有非常强大的功能:包括视频采集功能、视频格式转换、视频抓图、给视频加水印等
1、在Centos8官方软件源中是不含有ffmpeg的软件包,需要添加rpmfusion软件库
[root@uscdn3 ~]# dnf install --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm
2、安装sdl软件包,SDL(Simple DirectMedia Layer)是一个自由的跨平台的多媒体开发包。
##如果没有安装sdl软件包报如下错误:
[root@uscdn3 ~]# dnf install ffmpeg
determining the fastest mirror (85 hosts).. done.=====================================- ] 51 kB/s | 15 kB 00:00 ETA
Extra Packages for Enterprise Linux Modular 8 - x86_64 84 kB/s | 118 kB 00:01
Extra Packages for Enterprise Linux 8 - x86_64 6.7 MB/s | 6.9 MB 00:01
determining the fastest mirror (20 hosts).. done.==========================================] 4.8 kB/s | 1.6 kB 00:00 ETA
RPM Fusion for EL 8 - Free - Updates 92 kB/s | 251 kB 00:02
RPM Fusion for EL 8 - Nonfree - Updates 28 kB/s | 68 kB 00:02
Error:
Problem: conflicting requests
- nothing provides libSDL2-2.0.so.0()(64bit) needed by ffmpeg-4.2.3-3.el8.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
###解决办法
[root@uscdn3 ~]# dnf install http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/SDL2-2.0.8-7.el8.x86_64.rpm
Last metadata expiration check: 0:01:50 ago on Sun 14 Jun 2020 10:25:24 PM HKT.
SDL2-2.0.8-7.el8.x86_64.rpm 8.1 MB/s | 429 kB 00:00
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Installing:
SDL2 x86_64 2.0.8-7.el8 @commandline 429 k
Transaction Summary
=============================================================================================================================
Install 1 Package
...
Installed:
SDL2-2.0.8-7.el8.x86_64
Complete!
3、安装ffmpeg
[root@uscdn3 ~]# dnf install ffmpeg
Last metadata expiration check: 0:02:13 ago on Sun 14 Jun 2020 10:25:24 PM HKT.
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Installing:
ffmpeg x86_64 4.2.3-3.el8 rpmfusion-free-updates 1.4 M
Installing dependencies:
alsa-lib x86_64 1.1.9-4.el8 AppStream 429 k
cairo x86_64 1.15.12-3.el8 AppStream 721 k
....
Transaction Summary
=============================================================================================================================
Install 71 Packages
4、ffmpeg使用方法:
1、查看版本: ffmpeg -version
2、查看帮助:ffmpeg --help
3、查看手册:man ffmpeg
4、查看支持的编码器:ffmpeg -codecs
5、查看支持的视频格式:ffmpeg -formats
6、查看支持的滤镜:ffmpeg -filters
7、查看可用的解码器:ffmpeg -decoders
8、查看可用的声道布局:ffmpeg -layouts
9、显示可用的颜色名称:ffmpeg -colors
10、显示可用的协议:ffmpeg -protocols
11、查看build时的配置参数:ffmpeg -buildconf
12、显示许可证信息:ffmpeg -L
13、显示可用的封装器:ffmpeg -muxers
14、显示可用的解封装器:ffmpeg -demuxers
15、显示可用的设备:ffmpeg -devices
16、显示可用的音频采样格式:ffmpeg -sample_fmts
17、显示可用的像素格式:ffmpeg -pix_fmts
18、显示可用的比特流过滤器:ffmpeg -bsfs
19、显示可用的编解码器:ffmpeg -codecs
5、测试一些常用的例子:如从视频中截图、截gif、给视频加水印、转换视频格式等
###5.1、查看视频文件的信息
#-i: 指定作为输入的视频文件
[root@uscdn3 ffmpeg]# ffmpeg -i video.mp4
....
Duration: 00:03:23.90, start: 0.000000, bitrate: 1196 kb/s
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 1280x720, 1098 kb/s, 24 fps, 24 tbr, 24k tbn, 48 tbc (default)
Metadata:
creation_time : 2015-03-31T05:42:49.000000Z
handler_name : TrackHandler
Stream #0:1(und): Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 95 kb/s (default)
Metadata:
creation_time : 2015-03-31T05:42:42.000000Z
handler_name : Sound Media Handler
...
可以看出视频长度为:00:03:23 分辨率为1280x720 720p
###5.2、截图
#-i :源视频文件
#-y: 如果目标文件存在则进行覆盖
#-ss: 在指定的时间进行截图
#-vframes: 指定抽取的帧数 如果要生成gif文件,则需要指定多帧
[root@uscdn3 ffmpeg]# ffmpeg -i video.mp4 -y -ss 00:00:03 -vframes 1 test.jpg
###5.3、截取gif图片,-ss从哪个时间点开始截,-vframes 截多少帧 (20帧)
[root@uscdn3 ffmpeg]# ffmpeg -i video.mp4 -y -ss 00:00:03 -vframes 20 test.gif
###5.4、给视频文件添加水印
[root@uscdn3 ffmpeg]# ffmpeg -y -i video.mp4 -acodec copy -vf "movie=water.png [logo]; [in][logo] overlay=main_w-overlay_w-50:50 [out]" addlogo.mp4
###5.5、把wmv转换成H.264的MP4
[root@uscdn3 ffmpeg]# ffmpeg -i test.wmv -c:v libx264 -strict -2 test.mp4
还没有任何评论,你来说两句吧