Linux下源码安装ffmpeg及ffmpeg的简单使用说明

一、编译安装

ffmpeg在安装时依赖的包和版本都很让人头疼,不同编译环境也各不相同。公司之前封装了一个又各种出错。

其实办法很简单,就是到官网一步一步按着做就行了:
http://trac.ffmpeg.org/wiki/CompilationGuide
自己系统用的什么系统,就选择什么系统,照着操作就行了。
我选的是“Compiling FFmpeg on CentOS / RHEL / Fedora”唯一的不足就是ffmpeg的git地址不起作用,我使用了下面的地址进行了替换
git clone git://source.ffmpeg.org/ffmpeg.git

参考网址:
http://www.cnblogs.com/wainiwann/p/4128154.html
http://ffmpeg.org/documentation.html

二、使用

ffmpeg的作用
对于图片:
    可以裁剪图片,可以把图片导出成视频,可以把图片嵌入到视频中;
对与视频:
    输入输出流支持文件和各种视频流,比如hls协议的m3u8播放串、udp流等;
    可以对视频进行转码,比如mp4转mpegts,编码率转恒码率等;
    对视频添加各种信息,主要用-metadata字段;
    视频的剪切封装提取图片等等。

主要参数:
-i 设定输入流
-f 设定输出格式
-ss 开始时间 视频参数:
-b 设定视频流量,默认为200Kbit/s
-r 设定帧速率,默认为25
-s 设定画面的宽与高
-aspect 设定画面的比例
-vn 不处理视频
-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器 音频参数:
-ar 设定采样率
-ac 设定声音的Channel数
-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器
-an 不处理音频
-c copy表示不改变音频视频的格式和内容
-muxrate 表示指定封装的码率
-y 表示指定输出文件

简单的使用说明:

提取图片:
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
视频录制:
ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi
推送rtmp视频流:
./ffmpeg -re -i "bjqn01.mp4" -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10 "rtmp://192.168.15.133:1935/myapplive/test1"
推送udp流:
./ffmpeg -re -i ./test.mp4 -fpre -threads 24 -b:v 1500k -s 720*576 -vsync 0 -ac 2 -ar 48000 -report -loglevel error -f mpegts -y udp://0.0.0.0:10021/test.ts
转码:将MP4转换为mpegts的恒流的码率:
./ffmpeg -i ./test.mp4 -fpre preset -b:v 30000k -b:a 128k -filter:v yadif=deint=interlaced -maxrate 30000k -minrate 30000k -acodec copy -metadata service_name="FFMPEG" -muxrate 32000k -s 3840x2160 -f mpegts -y /mpeg/output/a.ts
preset是一个文本,只是将一些参数封装起来而已
vcodec=libx264
vprofile=high
level=4
preset=superfast
g=25
keyint_min=25
x264-params=force-cfr=1
rc-lookahead=10
sc_threshold=0
refs=4
subq=6
acodec=libfdk_aac
b:a=32k

原文地址:https://www.cnblogs.com/bugutian/p/5111067.html