当前位置: 首页 > news >正文

# centos7下FFmpeg环境部署记录

  # centos7下FFmpeg环境部署记录
  
  随着视频在网站上的应用越来越多,越来越多的网站服务器需要支持视频转码,视频压缩,FFmpeg是目前最好用的网站服务器后台转码程序,应用最多。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
  
  ## 下面介绍下在Centos7下针对FFmpeg的部署记录
  
  ### 安装EPEL Release,因为安装需要使用其他的repo源,所以需要EPEL支持
  
  $ yum install -y epel-release
  
  $ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 //如果出现缺少Code提示,就执行此条命令。
  
  $ yum repolist //安装完成之后,可以查看是否安装成功
  
  注意⚠️:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 表示导入公钥,详见[软件包签名常见问题](https://getfedora.org/zh_CN/keys/faq/)
  
  ### 安装Nux-Dextop源
  
  $ rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro //导入一个Code
  
  $ rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm //安装nux-dextop 源
  
  $ yum repolist #查看repo源是否安装成功
  
  ### 安装ffmpeg
  
  $ yum install -y ffmpeg
  
  $ ffmpeg -version
  
  ffmpeg version 2.8.15 Copyright (www.michenggw.com) 2000-2018 the FFmpeg developers
  
  ...
  
  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
  
  ## 一键安装脚本
  
  $ cat ffmpeg_install.sh
  
  $!/bin/bash
  
  yum install -y vim
  
  yum install -y epel-release
  
  rpm --import www.dasheng178.com /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
  
  yum repolist
  
  rpm --import http://li.nux.ro/ www.wanmeiyuele.cn download/nux/RPM-GPG-KEY-nux.ro
  
  rpm -Uvh http://www.mcyllpt.com li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
  
  yum repolist
  
  yum update -y
  
  yum install -y ffmpeg
  
  ffmpeg -version
  
  ## FFmpeg常用基本命令
  
  ### 分离视频音频流
  
  $ ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流
  
  $ ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流
  
  ### 视频解复用
  
  $ ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
  
  $ ffmpeg –i test.avi –vcodec copy –an –f m4v test.264
  
  ### 视频转码
  
  $ ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264 //转码为码流原始文件
  
  $ ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //转码为码流原始文件
  
  $ ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //转码为封装文件
  
  //-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制
  
  ### 视频封装
  
  $ ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file
  
  ### 视频剪切
  
  $ ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg //提取图片
  
  $ ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi //剪切视频
  
  //-r 提取图像的频率,-ss 开始时间,-t 持续时间
  
  ### 视频录制
  
  $ ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi
  
  ### YUV序列播放
  
  $ ffplay -f rawvideo -video_size 1920x1080 input.yuv
  
  ### YUV序列转AVI
  
  $ ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi
  
  ### 主要常用参数说明
  
  ```
  
  -i 设定输入流
  
  -f 设定输出格式
  
  -ss 开始时间
  
  视频参数:
  
  -b 设定视频流量,默认为200Kbit/s
  
  -r 设定帧速率,默认为25
  
  -s 设定画面的宽与高
  
  -aspect 设定画面的比例
  
  -vn 不处理视频
  
  -vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器
  
  音频参数:
  
  -ar 设定采样率
  
  -ac 设定声音的Channel数
  
  -acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
  
  -an 不处理音频
  
  ```
  
  ## 原文链接
  
  [centos7下FFmpeg环境部署记录](https://cloud.tencent.com/developer/article/1027379)

相关文章:

  • Android - Compass(罗盘) 详解
  • 深入解析React中的元素、组件、实例和节点
  • JS实现小图放大轮播效果
  • Javascript继承机制的设计思想
  • 在PC上测试移动端网站和模拟手机浏览器的5大方法
  • ios 推送证书 p12生成
  • Beaker:一个基于Electron的点对点Web浏览器
  • Linux查看文件内容
  • 追溯ASP.NET发展史
  • 前端MVVM框架设计及实现(一)
  • python的不定时更新
  • LumiSoft收取邮件(含邮件附件)
  • Frost Sullivan权威报告:阿里云再次领跑云WAF大中华区市场
  • Yii框架官方指南系列28——缓存:概览
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • es6
  • Javascript基础之Array数组API
  • Redis的resp协议
  • Spring Cloud Feign的两种使用姿势
  • SQLServer之索引简介
  • 从输入URL到页面加载发生了什么
  • 记录一下第一次使用npm
  • 解析 Webpack中import、require、按需加载的执行过程
  • 开源地图数据可视化库——mapnik
  • 免费小说阅读小程序
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 小程序开发中的那些坑
  • 找一份好的前端工作,起点很重要
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #includecmath
  • #Linux(Source Insight安装及工程建立)
  • #vue3 实现前端下载excel文件模板功能
  • $().each和$.each的区别
  • (2)nginx 安装、启停
  • (a /b)*c的值
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (floyd+补集) poj 3275
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (一)插入排序
  • (转)shell调试方法
  • ***详解账号泄露:全球约1亿用户已泄露
  • .gitignore文件—git忽略文件
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net快速开发框架源码分享
  • [ solr入门 ] - 利用solrJ进行检索
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [ 第一章] JavaScript 简史
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)