centos8上安装ffmpeg4.2.2并做视频截图
一,ffmpeg的作用:
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec
作为多媒体视频处理工具,FFmpeg有非常强大的功能:
包括视频采集功能、视频格式转换、视频抓图、给视频加水印等
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,安装rpmfusion仓库
- [root@blog ~]# dnf install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
说明:默认安装的仓库中没有ffmpeg这个软件
看例子:
- [root@blog ~]# dnf install ffmpeg
- CentOS-8 - AppStream 143 kB/s | 4.3 kB 00:00
- CentOS-8 - Base 123 kB/s | 3.9 kB 00:00
- CentOS-8 - Extras 57 kB/s | 1.5 kB 00:00
- Extra Packages for Enterprise Linux Modular 8 - x86_64 10 kB/s | 9.8 kB 00:00
- Extra Packages for Enterprise Linux 8 - x86_64 1.2 kB/s | 4.8 kB 00:03
- Official OpenResty Open Source Repository for RHEL 45 kB/s | 3.0 kB 00:00
- No match for argument: ffmpeg
- Error: Unable to find a match: ffmpeg
如果没有rpmfusion这个仓库,安装ffmpeg时dnf会提示找不到匹配
三,安装sdl软件包
SDL(Simple DirectMedia Layer)是一个自由的跨平台的多媒体开发包,
适用于 游戏、游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件
下载
- [root@blog ~]# wget http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/SDL2-2.0.8-7.el8.x86_64.rpm
安装
- [root@blog ~]# rpm -ivh SDL2-2.0.8-7.el8.x86_64.rpm
- Verifying... ################################# [100%]
- Preparing... ################################# [100%]
- Updating / installing...
- 1:SDL2-2.0.8-7.el8 ################################# [100%]
说明:ffmpeg依赖于sdl库,必须先安装它,否则安装ffmpeg时会报错
- [root@blog ~]# dnf install ffmpeg
- RPM Fusion for EL 8 - Free - Updates 6.2 kB/s | 250 kB 00:40
- Last metadata expiration check: 0:00:30 ago on Wed 29 Apr 2020 10:36:49 AM CST.
- Error:
- Problem: conflicting requests
- - nothing provides libSDL2-2.0.so.0()(64bit) needed by ffmpeg-4.2.2-5.el8.x86_64
- (try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
可以看到,没有sdl包的情况下安装ffmpeg时,dnf会提示缺少libSDL2-2.0.so.0()
四,dnf安装ffmpeg
- [root@blog ~]# dnf install ffmpeg
五,查看ffmpeg的版本和帮助:
1,查看版本:
- [root@blog ~]# ffmpeg -version
- ffmpeg version 4.2.2 Copyright (c) 2000-2019 the FFmpeg developers
- built with gcc 8 (GCC)
- configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --docdir=/usr/share/doc/ffmpeg
--incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64
--optflags='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,
-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches
-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1
-m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection'
--extra-ldflags='-Wl,-z,relro -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '
--extra-cflags=' ' --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-amrwbenc
--enable-version3 --enable-bzlib --disable-crystalhd --enable-fontconfig --enable-frei0r
--enable-gcrypt --enable-gnutls --enable-ladspa --enable-libaom --enable-libdav1d --enable-libass
--enable-libbluray --enable-libcdio --enable-libdrm --enable-libjack --enable-libfreetype
--enable-libfribidi --enable-libgsm --enable-libmp3lame --enable-nvenc --enable-openal --enable-opencl
--enable-opengl --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librsvg --enable-libsrt
--enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libvorbis --enable-libv4l2
--enable-libvidstab --enable-libvmaf --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid
--enable-libzimg --enable-libzvbi --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads
--disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64
--enable-libmfx --enable-runtime-cpudetect- libavutil 56. 31.100 / 56. 31.100
- libavcodec 58. 54.100 / 58. 54.100
- libavformat 58. 29.100 / 58. 29.100
- libavdevice 58. 8.100 / 58. 8.100
- libavfilter 7. 57.100 / 7. 57.100
- libavresample 4. 0. 0 / 4. 0. 0
- libswscale 5. 5.100 / 5. 5.100
- libswresample 3. 5.100 / 3. 5.100
- libpostproc 55. 5.100 / 55. 5.100
2,查看帮助
- [root@blog ~]# ffmpeg --help
3,查看手册
- [root@blog ~]# man ffmpeg
六,查看已安装的ffmpeg支持的特性
1,查看支持的编码器
- [root@blog ~]# ffmpeg -codecs
2,查看支持的视频格式
- [root@blog ~]# ffmpeg -formats
3,查看支持的滤镜
- [root@blog ~]# ffmpeg -filters
4,查看可用的解码器
- [root@blog ~]# ffmpeg -decoders
5,查看可用的声道布局
- [root@blog ~]# ffmpeg -layouts
6,显示可用的颜色名称
- [root@blog ~]# ffmpeg -colors
7,显示可用的协议
- [root@blog ~]# ffmpeg -protocols
8,查看build时的配置参数
- [root@blog ~]# ffmpeg -buildconf
9,显示许可证信息
- [root@blog ~]# ffmpeg -L
10,显示可用的封装器
- [root@blog ~]# ffmpeg -muxers
11,显示可用的解封装器
- [root@blog ~]# ffmpeg -demuxers
12,显示可用的设备
- [root@blog ~]# ffmpeg -devices
13,显示可用的音频采样格式
- [root@blog ~]# ffmpeg -sample_fmts
14,显示可用的像素格式
- [root@blog ~]# ffmpeg -pix_fmts
15,显示可用的比特流过滤器
- [root@blog ~]# ffmpeg -bsfs
16,显示可用的编解码器
- [root@blog ~]# ffmpeg -codecs
七,测试一个常用的例子:从视频中截图(截取一帧保存成图片)
从一个视频中截取一帧保存成截图图片
1,查看视频文件的信息
#-i: 指定作为输入的视频文件
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4
- ...
- Duration: 00:02:00.13, start: 0.000000, bitrate: 512 kb/s
- Stream #0:0(eng): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709),
640x360 [SAR 1:1 DAR 16:9], 189 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 60k tbc (default)- ...
可以看到:视频文件:时长2分钟,宽:640,高360
2,截图
#-i :源视频文件
#-y: 如果目标文件存在则进行覆盖
#-ss: 在指定的时间进行截图
#-vframes: 指定抽取的帧数 如果要生成gif文件,则需要指定多帧
- [root@blog 1]# ffmpeg -i 8_9f6fa300bacded7b.mp4 -y -ss 00:00:03 -vframes 1 /data/dev/think_file/html/8_1.jpg
3,从浏览器查看截图的图片:
八,查看centos版本
- [root@blog ~]$ cat /etc/redhat-release
- CentOS Linux release 8.0.1905 (Core)
centos8上安装ffmpeg4.2.2并做视频截图的更多相关文章
- CentOS8上安装MySQL
没有选择Win10上安装MySQL,个人感觉比较傻瓜式.同时相对Win10操作系统,个人更熟悉Unix/Linux操作系统,所以选择在CentOS8上安装MySQL数据库. 还是熟悉的yum安装,前提 ...
- 在CentOS8 上安装Python3
从centos开始入手学习linux.感觉安装python很费劲,之前centos6因为python2和python3兼容的问题一直无法彻底解决,python3一旦安装影响到python2,cento ...
- centos8上安装mysql8
一,下载并解压mysql8 1,mysql官网 https://www.mysql.com/ 2,下载到source目录 [root@yjweb source]# wget https://cdn.m ...
- Centos8上安装Mysql8.X
一.下载Mysql 下载地址:https://dev.mysql.com/downloads/mysql/ 二.将压缩包通过ftp软件服务器的目标位置:并解压 1.我的是放在:/root/softwa ...
- CentOS8 上安装Docker
从 2017 年 3 月开始 docker 在原来的基础上分为两个分支版本: Docker CE 和 Docker EE.Docker CE 即社区免费版,Docker EE 即企业版,强调安全,但需 ...
- centos8上安装openresty
一,openresty的官网地址: http://openresty.org/ 说明:说一下openresty的安装方式: 从openresty的安装目录下,可以看到openresty编译安装了自己作 ...
- centos8上安装ImageMagick6.9.10并压缩图片生成webp缩略图
一,ImageMagick的作用: ImageMagick 是一个用来创建.编辑.合成图片的软件. 它可以读取.转换.写入多种格式的图片. 功能包括:图片切割.颜色替换.各种效果的应用, 图片的旋转. ...
- Centos8上安装Nginx
一.Nginx下载 官网:http://nginx.org/ 选择稳定版下载:直接右键复制下载地址即可 命令: wget http://nginx.org/download/nginx-1.20.2. ...
- centos8上安装phpmyadmin5
一,下载phpmyadmin5: 1,官网地址: https://www.phpmyadmin.net/ 2,下载 [root@yjweb source]# wget https://files.ph ...
随机推荐
- 居然仅用浏览器,就完成了Spring Boot应用的开发与部署!
最近有幸试用了一下阿里云的一个新产品:云开发平台,体验一把全新的开发模式!虽然中间也碰到了一些问题,但整体的体验透露着未来感,因为整个过程都不需要使用我们最常用的IDEA,仅依靠浏览器就把一个Spri ...
- [剑指Offer]30-包含min函数的栈
题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 题解 辅助栈记录当前最小值. 代码 import java.util.Stack; pub ...
- 升级微服务架构5:API网关
API网关是一个服务器,是系统的唯一入口.从面向对象设计的角度看,它与外观模式类似.API网关封装了系统内部架构,为每个客户端提供一个定制的API.它可能还具有其它职责,如身份验证.监控.负载均衡.缓 ...
- 将HBase中的表加载到hive中
两种方式加载hbase中的表到hive中,一是hive创建外部表关联hbase表数据,二是hive创建普通表将hbase的数据加载到本地 1. 创建外部表 hbase中已经有了一个test表,内容如下 ...
- windows操作系统的电脑越用越卡?简说几种原因和解决方法。
很多人在使用windows操作系统的发现电脑越用越卡,但是不知道什么原因,只知道电脑越便宜的越卡(电脑配置低), 然而导致电脑卡顿缓慢的原因有很多,总结出来就是软件和硬件的问题,那怎么办呢? 电脑系统 ...
- Spring使用@Async实现异步
使用场景 在实际项目中,一个接口如果需要处理很多数据,如果是同步执行,通过网络请求接口可能会出现请求超时.这时候就需要使用异步执行处理了. 使用经验 代码 异步服务类 @Service // Spri ...
- 当try、catch中有return时,finally中的代码会执行么?
今天,看到一个面试题: try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗? 我们用代码来验证下: public static void mai ...
- Node.js 从零开发 web server博客项目[安全]
web server博客项目 Node.js 从零开发 web server博客项目[项目介绍] Node.js 从零开发 web server博客项目[接口] Node.js 从零开发 web se ...
- Netty之ChannelOption的各种参数之EpollChannelOption.SO_REUSEPORT
socket选项 SO_REUSEPORT 转 miffa 发布于 2015/03/24 17:21 字数 3383 阅读 6076 收藏 6 点赞 1 评论 0 开发十年,就只剩下这套Java开发体 ...
- 有向图的基本算法-Java实现
有向图 有向图同无向图的区别为每条边带有方向,表明从一个顶点至另一个顶点可达.有向图的算法多依赖深度搜索算法. 本文主要介绍有向图的基本算法,涉及图的表示.可达性.检测环.图的遍历.拓扑排序以及强连通 ...