# 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)

# centos7下FFmpeg环境部署记录的更多相关文章

  1. Centos下PPTP环境部署记录

    PPTP(点到点隧道协议)是一种用于让远程用户拨号连接到本地的ISP,通过因特网安全远程访问公司资源的新型技术.它能将PPP(点到点协议)帧封装成IP数据包,以便能够在基于IP的互联网上进行传输.PP ...

  2. Centos下SVN环境部署记录

    大多数情况下,我们日常工作中用的版本控制系统都会选择分布式的Git,它相比于集中式的SVN有很多优势.但是有些项目软件基于自身限制,可能只支持SVN做工程同步.废话就不多说了,下面记录下SVN的部署和 ...

  3. linux下ffmpeg环境搭建记录

    1.Linux下安装yasm 官网下载:http://yasm.tortall.net/Download.html tar -zvxf yasm-1.3.0.tar.gz cd yasm-1.3.0/ ...

  4. Centos7下ELK+Redis日志分析平台的集群环境部署记录

    之前的文档介绍了ELK架构的基础知识,日志集中分析系统的实施方案:- ELK+Redis- ELK+Filebeat - ELK+Filebeat+Redis- ELK+Filebeat+Kafka+ ...

  5. Centos7.5基于MySQL5.7的 InnoDB Cluster 多节点高可用集群环境部署记录

    一.   MySQL InnoDB Cluster 介绍MySQL的高可用架构无论是社区还是官方,一直在技术上进行探索,这么多年提出了多种解决方案,比如MMM, MHA, NDB Cluster, G ...

  6. Linux下rsyslog日志收集服务环境部署记录【转】

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  7. 一个CentOS7的开发环境部署,包括防火墙|VPN|多IP多网关|HTTP代理服务器设置等

    http://www.lenggirl.com/code/centos7.html layout: post title: "一个CentOS7的开发环境部署,包括防火墙|VPN|HTTP代 ...

  8. MySQL高可用方案-PXC环境部署记录

    之前梳理了Mysql+Keepalived双主热备高可用操作记录,对于mysql高可用方案,经常用到的的主要有下面三种: 一.基于主从复制的高可用方案:双节点主从 + keepalived 一般来说, ...

  9. NodeJS项目迁移兼Ubuntu下NodeJS环境部署

    前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...

随机推荐

  1. 介绍几个PHP 自带的加密解密函数

    PHP 自带的加密解密函数 目前经常使用的加密函数有:md5(), sha1(), crypt(), base64_encode(), urlencode() . 其中 md5(), sha1(), ...

  2. 20.2 解析与序列化【JavaScript高级程序设计第三版】

    JSON 之所以流行,拥有与JavaScript 类似的语法并不是全部原因.更重要的一个原因是,可以把JSON 数据结构解析为有用的JavaScript 对象.与XML 数据结构要解析成DOM 文档而 ...

  3. AB PLC 编程之状态机

    AB的程序设计和西门子有点PLC不大一样,在AB中没有RS指令,所以主要用move指令来作步进.今天我们就用Move指令写个AB的程序,和西门子比,有哪些不同. 控制任务 很简单的一个状态机.初始步为 ...

  4. python_day4_shopping

    购物车例子,实现显示商品信息,输入商品编号并且可以减去自己的存入余额,当商品价格大于自己的余额的时候,直接退出:当不再选择商品的时候,退出显示余额和已经添加的商品. #购物车程序 product_li ...

  5. 初识python 面向对象

    what the f**k!!这个知识点学不好的最大元凶就是,我还单身??? python基础(四): 面向对象的三个特点: 封装,继承,多态 类: 对象是面向对象编程的核心,在使用对象的过程中,为了 ...

  6. STL 一些常用的STL函数(持续更新

    先说一下  一边要用到算法的东西一般要加#include<algorithm>头文件 一.栈和队列 1 栈 :一种线性表 特点  后进先出 头文件  #include<stack&g ...

  7. Javaweb——四则运算---18.11.01

    ---恢复内容开始--- test.jsp <%@ page language="java" contentType="text/html; charset=utf ...

  8. Mac系统下安装Homebrew后无法使用brew命令,-bash: brew: command not found

    使用如下命令: sudo vim .bash_profile 然后输入以下代码: export PATH=/usr/local/bin:$PATH 再使用以下命令使配置生效: source .bash ...

  9. c++实验3类和对象

     实 验 3: part 1:验证 part 2:graph #include <iostream> #include "graph.h" using namespac ...

  10. 类的__new__方法使用

    class Person(object): def __init__(self): self.name ="aaa" def defineName(self): self.name ...