使用FFMPEG命令行进行推拉流的操作
最新在公司实习,小组安排的技术需求第一阶段,使用ffmpeg进行推拉流的处理以及自动化脚本的编写
在这里记录一下
ffmpeg工具去官网下载编译即可(265格式需要自己写相关代码并进行编译)
首先是推流的指令
ffmpeg -re -i filename -r 40 -ss 0 -t 10 -c copy -f flv url
使用-re是限制ffmpeg的上传帧率,如果在使用ffmpeg推流的时候一定要添加-re的选项,否则ffmpeg会按照自身能力进行最大帧率的上传,就会导致流媒体服务器处理能力受限或者拉流端处理能力有限导致各类问题
使用-i是必须有的,后面接要上传的文件名字
使用-r是显式设置上传帧率,在使用-re的情况下默认25
使用-ss是设置从文件的哪个时间点开始上传,支持hh:mm:ss的格式
使用-t是设置上传文件的时间长度
使用-c表示音频视频编码格式保持不变,不进行转码(也可以分别携程-acodec -vcodec 后面接着要编码的形式或者copy)
使用-f表示上传时使用的文件封装格式,一般流媒体服务使用flv格式进行
最后一个url表示上传的流媒体服务器地址
接着是拉流的指令
ffmpeg -i url -c copy -f flv filename
拉流的指令就比较简单,同样也可以使用-ss -t等参数
需要注意的一点是,-ss既可以放在-i之前,也可以放在文件名的后面,但是建议放在文件名的后面,这样会加快文件读取速度
下一篇文章列出使用python实现自动化推拉流的脚本代码