FFmpeg是一个领先的多媒体框架工具集,几乎能够对任何格式的音视频文件进行解码,编码,转码,复用,解复用,流式传输,过滤和播放. 不管这些音视频文件所采用的格式是由某些标准委员会,社区还是公司设计的, FFmpeg都能识别. 它还具有高度可移植性:FFmpeg在各种构建环境、系统架构、配置下,如: Linux,Mac OS X,Microsoft Windows,BSD,Solaris等, 都能稳定工作。
下面介绍 FFmpeg 在centOS7下的安装部署过程:
1. 安装EPEL Release ,EPEL支持使用其它的repo源安装.
sudo yum -y install epel-release rpm /*安装EPEL-Release
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 /*导入Code
yum repolist /*查看EPEL源
2. 安装nux-dextop源
sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro /*导入Code
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm /*安装nux-dextop 源
sudo yum repolist /*查看repo源是否安装成功
3. 安装ffmpeg
sudo yum install -y ffmpeg
ffmpeg -version
FFmpeg常用基本命令
1.分离视频音频流
ffmpeg -i input.file -vcodec copy -an output.file_video //分离视频流
ffmpeg -i input.file -acodec copy -vn output.file_audio //分离音频流
2.视频解复用
ffmpeg –i input.mp4 –vcodec copy –an –f m4v output.264
ffmpeg –i input.avi –vcodec copy –an –f m4v output.264
3.视频转码
ffmpeg –i input.mp4 –vcodec h264 –s 352*278 –an –f m4v output.264 //转码为码流原始文件
ffmpeg –i input.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v output.264 //转码为码流原始文件
ffmpeg –i input.avi -vcodec mpeg4 –vtag xvid –qsame output_xvid.avi //转码为封装文件
//-bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制
4.视频封装
ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy video.file
5.视频剪切
ffmpeg –i input.avi –r 1 –f image2 image-%3d.jpeg //提取图片
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy cut.avi //剪切视频//-r 提取图像的频率,-ss 开始时间,-t 持续时间
6.视频录制
ffmpeg –i rtsp://192.168.3.205:5555/input –vcodec copy input.avi
7.YUV序列播放
ffplay -f rawvideo -video_size 1920x1080 video.yuv
8.YUV序列转AVI
ffmpeg –s w*h –pix_fmt yuv420p –i video.yuv –vcodec mpeg4 video.avi