Linux下源码安装ffmpeg及ffmpeg的简单使用说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Linux下源码安装ffmpeg及ffmpeg的简单使⽤说明
⼀、编译安装
ffmpeg在安装时依赖的包和版本都很让⼈头疼,不同编译环境也各不相同。
公司之前封装了⼀个⼜各种出错。
其实办法很简单,就是到官⽹⼀步⼀步按着做就⾏了:
⾃⼰系统⽤的什么系统,就选择什么系统,照着操作就⾏了。
我选的是“Compiling FFmpeg on CentOS / RHEL / Fedora”唯⼀的不⾜就是ffmpeg的git地址不起作⽤,我使⽤了下⾯的地址进⾏了替换参考⽹址:
⼆、使⽤
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。