需求
在做RTMP服务时,总是在测试推流效果。
有时候,我们想使用OBS进行推流测试,也可以,这很好。
以及其他RTMP推流工具。
但是,别忘了,还有ffmpeg这个神器。ffmpeg可以获取各种视频流,并推送给RTMP服务器。
比如,拉取摄像机RTSP流,推送给RTMP服务器,命令在此
ffmpeg -re -i rtsp://username:password@ip:port/xxxxxxx -vcodec copy -acodec copy -f flv -y rtmp://ip:port/live/test
当然,这个命令限于摄像机提供的就为H.264+AAC的码流,若不是
则将-vcodec copy
改为-vcodec libx264
,-acodec copy
改为-acodec aac
若是,我们想用ffmpeg读取文件进行RTMP推送呢,当然,您可以选择OBS,但是,毕竟,ffmpeg比OBS更轻量,命令在此
ffmpeg -re -i test.h264 -vcodec copy -acodec copy -f flv -y rtmp://ip:port/live/test
-vcodec和-acodec按需更改同拉取RTSP流。
但是。。。。。
如果我想一直循环读取文件,做个长测呢?
解决
当然有解决办法
ffmpeg -re -stream_loop -1 -i test.h264 -vcodec copy -acodec copy -f flv -y rtmp://ip:port/live/test
加了一个-stream_loop -1
这是干啥的?
https://ffmpeg.org/ffmpeg-all.html#Main-options
我们明白了此选项可以指定循环读取视频源的次数,-1为无限循环
就此解决。