使用ffmpeg循环推流(循环读取视频文件)推送RTMP服务器的方法

需求

在做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为无限循环

就此解决。

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页