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
smartavs
发布了92 篇原创文章 · 获赞 28 · 访问量 15万+
私信
关注