# 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学习-4】

    var_1=11; print $var1->var_1.$var2->var_1; ?> print_Color(); ?> y=self::$x; # code... } ...

  2. JS基础知识-01

    01-浅谈前端发展史 第一阶段:C/S(client server)->B/S(browser server) 网页制作 技术栈:PhotoShop.HTML.CSS 第二阶段:从静态到动态,从 ...

  3. red hat 7 启动过程(EFI)

    不同版本的Linux系统的启动过程在某些地方是不一样的,现在先来介绍一下red hat 7 的启动过程(EFI). (加电→图形登录界面) 接通电源 按下电源键 EFI固件启动 初始化硬件 从EFI启 ...

  4. Kubernetes-apiserver

    Kubernetes API服务器为API对象验证和配置数据,这些对象包含Pod.Service.ReplicationController等等.API Server提供REST操作以及前端到集群的共 ...

  5. Ubuntn14.04安装MATLAB2015b

    一部分转载自:CSDN ,其他结合自己电脑环境配置,旨做备份和记录,同时也提供一个参考. 安装环境: linux Ubuntu14.04 (x64) 软件包下载地址: Matlab R2015b_gl ...

  6. ArrayMap java.lang.ArrayIndexOutOfBoundsException

    错误堆栈: java.lang.ArrayIndexOutOfBoundsException: length=0; index=1 at android.support.v4.util.SimpleA ...

  7. nginx location优先级

    目录 1. 配置语法 2. 配置实例 3. 总结: 网上查了下location的优先级规则,但是很多资料都说的模棱两可,自己动手实地配置了下,下面总结如下. 1. 配置语法 1> 精确匹配 lo ...

  8. CSS流布局权威指南

    http://www.cnblogs.com/qieguo/p/5421252.html

  9. 快速平方根算法的javascript实现

    前几天看见了一个来自雷神之槌的平方根源码,原理多方有介绍,不赘述. 源码是c语言写的,我思考后发现这样的算法在javascript中也是可以完成的. function InvSqrt(x){ var ...

  10. Linux-OpenSUSE折腾-1(Qt安装,Chrome安装)

    先上图,大蜥蜴还是不错的,偶然看到了大蜥蜴这个系统,我就觉得又可以折腾几天了,先上图 OpenSUSE有一个入门介绍的网站写的相当不错,感兴趣的可以连接过去:https://lug.ustc.edu. ...