本文已参与「新人创作礼」活动,一起开启掘金创作之路。
一、环境 1、开发环境:
windows
2、开发工具:
FFmpeg、nginx、nginx-rmtp-module
(链接 rtsp转u3m8提取码:fyc2 )
3、简介: Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 nginx-rmtp-module是Nginx服务器的流媒体插件。nginx通过rtmp模块提供rtmp服务, ffmpeg推送一个rtmp流到nginx, 然后客户端通过访问nginx来收看实时视频流。
二.准备文件
Nginx、nginx-rmtp-module、FFmpeg和实例mp4视频
三、搭建实践
1、启动nginx服务器 1、进入windows的cmd
2、cd nginx-1.7.11.3-Gryphon //进入nginx的目录
3、nginx.exe -c conf\nginx-win-rtmp.conf //运行rtmp配置文件
注意:此时命令行会一直处于执行中 不用理会 也不要关闭
测试:浏览器输入localhost:8080 ,如果出现如下页面 说明配置nginx启动成功!
2、配置FFmpeg
1、解压:将ffmpeg解压到指定目录 我这里是D:\ffmpeg
2、环境配置:右键我的电脑(win10是此电脑) -- 》 属性 --》 高级系统设置 --》高级 --》环境变量--》打开Path ,
将 E:\BaiduNetdiskDownload\video\ffmpeg\ffmpeg\bin (你的ffmepg解压目录下的bin目录的绝对路径)添加到Path 路径下;具体方法不会的可以的百度
3、测试:打开windows 的cmd (不要关闭前面的nginx) 输入ffmpeg -help 如果出现如下情况 说明配置成功
3、运行(RTSP转RTMP) 1、将下载的orange.mp4文件放到D盘的E:\BaiduNetdiskDownload\video目录文件夹内 。
2、新打开windows的cmd (不要关闭之前的ngnix)进入E:\BaiduNetdiskDownload\video目录内文件夹。
3、然后输入一下指令:
ffmpeg -re -i orange.mp4 -vcodec libx264 -acodec aac -f flv rtmp://你的ip地址:1935/live/home //注意:192.168.1.125是我电脑的ip地址,需要替换成你的ip地址 (ip地址可通过cmd 的ipconfig指令获取) //例如:ffmpeg -re -i orange.mp4 -vcodec libx264 -acodec aac -f flv rtmp://192.168.1.25:1935/live/home
4、电脑打开vlc播放器 输入地址:rtmp://你的ip地址:1935/live/home
5、然后先点击命令行回车 再点击播放 然后你就会看到文章开头的这张图 大功告成!
4、运行(RTSP转U3M8)
1、编写Java代码 其中rtsp:流地址与name:流名称
String m3u8 = "ffmpeg -rtsp_transport tcp -i "+rtsp+" -fflags flush_packets -max_delay 1 -an -flags -global_header -hls_time 1 -hls_list_size 3 -hls_wrap 3 -vcodec copy -s 216x384 -b 1024k -y E:\BaiduNetdiskDownload\video/test2.m3u8";
Process process = Runtime.getRuntime().exec("cmd /c start /b cmd.exe /k "+m3u8);
2、下面我给出一些dos常用命令给大家参考: cmd /c dir 是执行完dir命令后关闭命令窗口. cmd /k dir 是执行完dir命令后不关闭命令窗口. cmd /c start dir 会打开一个新窗口后执行dir指令,原窗口会关闭. cmd /k start dir 会打开一个新窗口后执行dir指令,原窗口不会关闭.
常规调用方式:(这个肯定会弹出cmd窗口)
Runtime.getRuntime().exec("cmd.exe /C start D:\\test.bat");
解决不弹框只需要“start”后面加一个参数“/b”就行:
Runtime.getRuntime().exec("cmd.exe /C start /b D:\\test.bat");
3、然后执行程序(用一个main方法即可),出现下图即为成功。
- 前端直接使用video.js插件就行了
video插件用法:video.js使用技巧 - 歪麦博客
前端播放m3u8格式视频 .video-js .vjs-tech {position: relative !important;}四.结尾总结 本文总结了完整的RTSP转流技术栈,现在是用作windows系统,同理可以用作Linux系统。博主后面出一版Linux系统的部署方法。由于技术有限,难免有错误之处,希望博友可以不辞指正,也可在下方评论区留言,博主会及时回复。希望能帮到各位博友。