创建 RTSP RTMP 视频源(Windows/Linux)
由于项目需要实现 视频识别图像分类,网上能用的视频流又很少,所以需要自己搭建视频源进行本地测试。本文记录在 WIndows 或者 Linux 系统创建RTSP、RTMP 视频源 进行测试。
1. 前言
由于项目需要实现 视频识别图像分类,网上能用的视频流又很少,所以需要自己搭建视频源进行本地测试。
本文记录在 Windows 以及 Linux 系统分别创建 RTSP、RTMP 视频源 进行测试。
2. 准备
2.1 视频
我们要准备好一份 mp4 格式的视频,循环播放形成一个持续进行的视频流。
项目需求原因,而且我对于视频处理软件之类的八窍已通七窍,所以这里我是用了一个 图片在线生成视频 的网站 https://clideo.com/video-maker
可以选取多张图片(最好不要过百)、每张图片的时间间隔、是否渐入渐出、设置背景音乐,生成视频的过程还是比较慢的,需要耐心等待。
2.2 软件/包
2.2.1 VLC 播放器
VLC是有 Windows、Linux、MacOS、Android等版本的。
但是我的Linux服务器系统是纯命令行的,所以只使用了 Windows 版本的进行测试,操作很简单,下载安装即可。
它的使用也是比较简单的,点击媒体 -> 打开网络串流 -> 输入url -> 点击播放 即可。
2.2.2 FFMPEG
- Windows 版本的可以去 https://www.gyan.dev/ffmpeg/builds/ 下载,使用 7-Zip 解压,将bin目录添加到环境变量 Path 中。
- Linux 根据系统不同,可以直接使用 apt-get 或者 yum 安装。
可以命令行输入 ffmpeg -version 确认是否安装成功。
ffmpeg 的部分参数:
- -i: 设定输入流
- -f 设定输出格式(format)
- -stream_loop 循环几次,-1为无限循环
- -re 以本机帧速率读取输入,相当于设置 -readrate 1
- -c 编解码器, copy表示使用跟原视频一样的视频编解码器
具体的参数意义可以参考FFMPEG 官方文档。
3. 实现
3.1 RTSP
这个在网上找了很多的解决方案,这里只介绍最后使用的方案。
也就是Github上的 rtsp-simple-server, 我们可以直接阅读它的 README.md 文件。
这里也会把部分内容粘贴出来.
3.1.1 Windows
我们直接下载最新的Windows release包。
下载之后解压,有一个可执行文件,我们直接运行即可,这样本地的rtsp服务器就已经启动了。

可以看到,这个工具是支持 RTSP、RTMP、HLS的,只是端口不同,需要注意。
之后,再使用 FFMPEG 推送视频流到服务器,使用 stream_loop 让视频循环播放。
ffmpeg -re -stream_loop -1 -i test.mp4 -c copy -f rtsp rtsp://localhost:8554/mystream

执行上面的命令后,可以在终端窗口看到,视频流稳定推送,以及推送的帧、帧率、时间、速度等信息:
而在另一边,RTSP服务器也收到了FFMPEG的推送,从打印的日志可以看到 类别为 RTSP,路径为 mystream。
这样视频流就创建好了,url为 rtsp://localhost:8554/mystream (注意这里 rtsp://localhost:8554/ 是固定的,端口为rtsp服务器的端口号,可以在 yml 文件中修改,后面的 mystream 由自己设置)。
我们可以下载 VLC播放器 测试我们的视频流。
3.1.2 Linux
和Windows端相同,只不过下的包不一样,需要下载对应架构的Linux版本的release包,我的服务器为 x86_64 的,所以选择 amd64 版本。
3.2 RTMP
RTMP 视频流的创建与 RTSP 基本相同,只有 ffmpeg 命令需要修改,改为以下形式:
ffmpeg -re -stream_loop -1 -i test.mp4 -c copy -f flv rtmp://localhost:1935/mystream
修改 格式为 hlv,修改url为 rtmp协议,端口为 1935
4. 参考
更多推荐


所有评论(0)