rtsp->rtmp 推流直播 Plan B

上篇文章我们谈到使用 EasyDarwin 推流后 前端HTML播放器 播放无画面的情况,找了各种播放器都服务正常解决,但使用VLC却能正常播放的问题,我们尝试了很久最后另辟蹊径,找到 nginx安装rtmp模块后 使用FFmpeg往 nginx推流 的解决方案

带有 rtmp 模块的 nginx 下载地址 https://github.com/illuspas/nginx-rtmp-win32

下载后将两个工具放在同一个目录下,如下图

rtsp->rtmp 推流直播 Plan B

1:打开 FFmpeg 目录 双击 ffmpeg.exe 先运行(注意启动先后顺序)

rtsp->rtmp 推流直播 Plan B

2:打开 nginx-rtmp-win32-master 双击 nginx.exe 运行

rtsp->rtmp 推流直播 Plan B

3:打开 nginx 目录下的 conf 文件夹下面的 nginx.conf 文件 我们看到 http server在监听 8089 端口 rtmp 播放端口为 1935

rtsp->rtmp 推流直播 Plan B

4:我们再浏览器里面输入 http://localhost:8089/ 访问出现如下界面(注意这里使用360浏览器默认有flash插件)

rtsp->rtmp 推流直播 Plan B

这个是 nginx-rtmp-win32-master 自带的rtmp测试工具,有直播测试器、安卓端和IOS端的 sdk

5:我们需要先使用命令行工具,让 FFmpeg 拉取海康摄像头视频流往 nginx 推,这样才可以在此 rtmp测试器里面播放,首先打开cmd命令行窗口,进入 ffmpeg的根目录

rtsp->rtmp 推流直播 Plan B

然后执行如下命令

ffmpeg -i "rtsp://admin:Aa123456@10.24.18.3:554/Streaming/Channels/101" -f flv -r 20 -s 510x440 -an rtmp://localhost:1935/live/3

6:出现如下命令说明ffmpeg拉取视频流和推视频流已成功运行

rtsp->rtmp 推流直播 Plan B

7:在测试播放器 的 player address 中输入命令行中的播放地址 rtmp://localhost:1935/live/3 点击播放,就能看到右侧出现视频画面

rtsp->rtmp 推流直播 Plan B

8:最后我们将启动命令编辑成 bat脚本,便可以一次性启动多个视频直播流,像这样

rtsp->rtmp 推流直播 Plan B

实测 6核 8G 服务器 推二十个无压力。,后续我们可以将此命令做成 winform 或者 服务 后台运行,这样就可以直接从数据库中配置。

rtsp->rtmp 推流直播 Plan B

上一篇:MFC界面之表格下拉框


下一篇:java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE 和 javax.xml.bind.JAXBException问题处理