随着视频在网站上的应用越来越多,越来越多的网站服务器需要支持视频转码,视频压缩,FFmpeg是目前最好用的网站服务器后台转码程序,应用最多。FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。下面介绍下在Centos7下针对FFmpeg的部署记录:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
1)安装EPEL Release,因为安装需要使用其他的repo源,所以需要EPEL支持
[root@qd-vpc-
op
-snapshot01 ~]
# yum install -y epel-release
[root@qd-vpc-
op
-snapshot01 ~]
# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 //如果出现缺少Code提示,就执行此条命令。
[root@qd-vpc-
op
-snapshot01 ~]
# yum repolist //安装完成之后,可以查看是否安装成功
2)安装Nux-Dextop源
[root@qd-vpc-
op
-snapshot01 ~]
# rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro //导入一个Code
[root@qd-vpc-
op
-snapshot01 ~]
# rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm //安装nux-dextop 源
[root@qd-vpc-
op
-snapshot01 ~]
# yum repolist #查看repo源是否安装成功
3)安装ffmpeg
[root@qd-vpc-
op
-snapshot01 ~]
# yum install -y ffmpeg
[root@qd-vpc-
op
-snapshot01 ~]
# ffmpeg -version
ffmpeg version 2.6.8 Copyright (c) 2000-2016 the FFmpeg developers
built with
gcc
4.8.5 (GCC) 20150623 (Red Hat 4.8.5-4)
configuration: --prefix=
/usr
--bindir=
/usr/bin
--datadir=
/usr/share/ffmpeg
--incdir=
/usr/include/ffmpeg
--libdir=
/usr/lib64
--mandir=
/usr/share/man
--arch=x86_64 --optflags=
'-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic'
--
enable
-bzlib --disable-crystalhd --
enable
-gnutls --
enable
-ladspa --
enable
-libass --
enable
-libcdio --
enable
-libdc1394 --
enable
-libfaac --
enable
-nonfree --
enable
-libfdk-aac --
enable
-nonfree --disable-indev=jack --
enable
-libfreetype --
enable
-libgsm --
enable
-libmp3lame --
enable
-openal --
enable
-libopenjpeg --
enable
-libopus --
enable
-libpulse --
enable
-libschroedinger --
enable
-libsoxr --
enable
-libspeex --
enable
-libtheora --
enable
-libvorbis --
enable
-libv4l2 --
enable
-libx264 --
enable
-libx265 --
enable
-libxvid --
enable
-x11grab --
enable
-avfilter --
enable
-avresample --
enable
-postproc --
enable
-pthreads --disable-static --
enable
-shared --
enable
-gpl --disable-debug --disable-stripping --shlibdir=
/usr/lib64
--
enable
-runtime-cpudetect
libavutil 54. 20.100 / 54. 20.100
libavcodec 56. 26.100 / 56. 26.100
libavformat 56. 25.101 / 56. 25.101
libavdevice 56. 4.100 / 56. 4.100
libavfilter 5. 11.102 / 5. 11.102
libavresample 2. 1. 0 / 2. 1. 0
libswscale 3. 1.101 / 3. 1.101
libswresample 1. 1.100 / 1. 1.100
libpostproc 53. 3.100 / 53. 3.100
|
为了方面后续的安装,特意编写一个shell脚本,进行一键安装:
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@qd-vpc-
op
-snapshot01 ~]
# cat ffmpeg_install.sh
#!/bin/bash
yum
install
-y vim
yum
install
-y epel-release
rpm --
import
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
yum repolist
rpm --
import
http:
//li
.nux.ro
/download/nux/RPM-GPG-KEY-nux
.ro
rpm -Uvh http:
//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常用基本命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
1)分离视频音频流
ffmpeg -i input_file -vcodec copy -an output_file_video
//
分离视频流
ffmpeg -i input_file -acodec copy -vn output_file_audio
//
分离音频流
2)视频解复用
ffmpeg –i
test
.mp4 –vcodec copy –an –f m4v
test
.264
ffmpeg –i
test
.avi –vcodec copy –an –f m4v
test
.264
3)视频转码
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 分辨率控制
4)视频封装
ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file
5)视频剪切
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 持续时间
6)视频录制
ffmpeg –i rtsp:
//192
.168.3.205:5555
/test
–vcodec copy out.avi
7)YUV序列播放
ffplay -f rawvideo -video_size 1920x1080 input.yuv
8)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 不处理音频
|
***************当你发现自己的才华撑不起野心时,就请安静下来学习吧***************
本文转自散尽浮华博客园博客,原文链接:http://www.cnblogs.com/kevingrace/p/7553179.html,如需转载请自行联系原作者