基于FFmpeg进行rtsp推流及拉流(详细教程)
参考博客:https://blog.csdn.net/chan1987818/article/details/128219230
1. 安装FFmpeg
FFmpeg 是一个免费、开源的跨平台视频和音频流处理工具。
1.1 Windows系统
转到 FFmpeg 官方网站https://ffmpeg.org/,然后下载最新版本的 Windows 安装包。
下载完成后,双击安装包文件,然后按照提示操作安装 FFmpeg。
1.2 Ubuntu 和 Debian 系统
对于 Ubuntu 和 Debian 系统,可以使用 apt 包管理器来安装 FFmpeg:
sudo apt update
sudo apt install ffmpeg
cmd查看是否安装成功
ffmpeg -version
2. 安装rtsp-simple-server
安装rtsp服务器,可以去这个链接https://github.com/aler9/rtsp-simple-server/releases
下载对应编译好的文件直接运行就好。
3. FFmpeg推流
注意:在推流之前先运行rtsp-simple-server
3.1 UDP推流
ffmpeg -re -i input.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream
3.2 TCP推流
ffmpeg -re -i input.mp4 -c copy -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream
3.3 循环推流
ffmpeg -re -stream_loop -1 -i input.mp4 -c copy -f rtsp rtsp://127.0.0.1:8554/stream
其中:
-re 为以流的方式读取;
-stream_loop 为循环读取视频源的次数,-1为无限循环;
-i 为输入的文件;
-f 为格式化输出到哪里;
4 拉流
4.1 ffplay/VLC拉流显示
ffplay rtsp://127.0.0.1:8554/stream
如需用VLC拉流,需安装VLC播放器,下载网站为:VLC 官方网站
内有各个系统的安装包,选择自己的系统下载安装即可。
安装好后,打开网络串流,输入对应的地址即可拉流显示。
4.2 FFmpeg拉流保存成视频
ffmpeg -stimeout 30000000 -i rtsp://127.0.0.1:8554/stream -c copy output.mp4
-stimeout 30000000 为等待RTSP 流连接的时间,单位为us微秒,30000000 为等待 30 秒,如果连接失败则退出。特别注意该字段要放在rtsp地址之前,否者无效。