当前位置: 首页 > 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 调度详解 ...
  • 【译】JS基础算法脚本:字符串结尾
  • Apache Spark Streaming 使用实例
  • Flex布局到底解决了什么问题
  • mysql_config not found
  • October CMS - 快速入门 9 Images And Galleries
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Selenium实战教程系列(二)---元素定位
  • SpiderData 2019年2月13日 DApp数据排行榜
  • SQLServer之索引简介
  • vagrant 添加本地 box 安装 laravel homestead
  • win10下安装mysql5.7
  • 使用 QuickBI 搭建酷炫可视化分析
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #100天计划# 2013年9月29日
  • (31)对象的克隆
  • (4)(4.6) Triducer
  • (C++20) consteval立即函数
  • (C语言)fread与fwrite详解
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (四)Linux Shell编程——输入输出重定向
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)socket Aio demo
  • ***通过什么方式***网吧
  • **CI中自动类加载的用法总结
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Core引入性能分析引导优化
  • .NET DataGridView数据绑定说明
  • .NET MVC之AOP
  • .NET处理HTTP请求
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .NET业务框架的构建
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [AutoSar NVM] 存储架构
  • [BUG] Authentication Error
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • [c++] 自写 MyString 类