【FFMPEG】命令使用

1.背景

​ 目的:FFMPEG简单的命令应用,本文采用抛砖引玉的方式,引导读者在学习中进行探索
​ 系统版本:UBUNTU 18.04.03
​ 播放器:VLC 或 FFPLAY

2.在线安装FFMPEG

apt  install  ffmpeg

3.命令示范

ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...

3.1.简单的输入输出

​ 将msatartup.mp3文件转换为3.mp3

ffmpeg -i /usr/local/nginx/html/mscore/av/msatartup.mp3 3.mp3

3.2.控制按帧率转换

​ 将msatartup.mp3文件转换为3.mp3,明显转换速度变慢了。但在进行实时流控制时,很好用,否则将按最大速度进行转换;

ffmpeg -re  -i /usr/local/nginx/html/mscore/av/msatartup.mp3 3.mp3

3.3.指定推流封装格式

​ 将msatartup.mp3文件转换为mpegts格式的udp流。此时需要加入参数-f mpegts,指定输出格式为mpegts(为什么之前不加呢?原来FFMPEG会自动进行探测,之前3.mp3,很容易判断输出封装为mp3)。另外,你可以测试,使用-re和不使用的实际效果对比效果了。

	使用ffmpeg  -muxers可以查看可用的muxer;
ffmpeg -re  -i /usr/local/nginx/html/mscore/av/msatartup.mp3 -f mpegts  udp://127.0.0.1:5000

3.4.按指定次数处理输入文件

​ 依旧是将msatartup.mp3文件转换为mpegts格式的udp流,你是否发现隔一会儿,转换自动停止了?要让他按照我们设定的次数推流,怎么做呢?使用-stream_loop选项即可,需要循环多少次则填多少次即可。若需要无限循环呢?使用-1

ffmpeg  -stream_loop  -1 -re  -i /usr/local/nginx/html/mscore/av/msatartup.mp3 -f mpegts  udp://127.0.0.1:5000

3.4.音视频编码格式处理

​ 有人可能会问?我需要统一的mp3编码音频怎么办?使用-c:a mp3,同理视频编码格式-c:v h264(但值得注意的时,因为进行指定了编码格式,FFMPEG会将音视频进行解码再编码,所以会导致音视频编码质量降低)。
​ 还有人说,我不想降低我的音视频质量,我对编码格式没要求,怎么办?我就喜欢没要求的人,使用-c copy指定所有流, -c:v copy指定视频编码格式不变, -c:a copy指定音频编码格式不变;

​ 使用ffmpeg -encoders可以查看可用的编码器;

ffmpeg  -stream_loop  -1 -re  -i /usr/local/nginx/html/mscore/av/msatartup.mp3 -c:v copy -c:a mp3 -f mpegts  udp://127.0.0.1:5000
发布了92 篇原创文章 · 获赞 28 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/weixin_35804181/article/details/104069929