由于公司业务,需要实现基于WEB查看监控画面,经过各种百度,补充了不少相关知识,了解到了很多大神的实现方法,也因为很多过时的帖子,而踩了不少的坑。
在被动积累了一些知识后,动手实现了v1.0初级版本,但是部署工作量较大,因为需要手动安装组件、配置、调试。
后来在发布到gitee后,被多位朋友咨询“如何使用”的问题后,决定对该版本再做提升,所以有了现在的v2.0版本,提高了部署效率,直接打包配置设备后就可以运行使用。
使用说明
使用举例
例如现在我要接入一台监控设备,那么接入步骤就是:
原理说明
本程序其实逻辑很简单,就是将nginx和ffmpeg整合起来,一方面将rtsp通过ffmpeg转码生成切片,一方面通过nginx将切片代理出去(大神勿喷,我只是一个搬运工)。
既然是整合,在程序中会去控制启动或关闭nginx和ffmpeg,这方面处理的还不够好,因为是通过命令窗口启动的服务,所以不可避免用户随手关掉窗口的问题,这种关闭方法无法关闭后台正在运行的nginx.exe和ffmpeg.exe进程,目前的办法是是增加了一个stop.bat脚本来关闭这两种进程,需要用户手动运行。;
奉上整理的几个厂家(主要是海康、大华和宇视)RTSP地址格式:
海康RTSP地址: 老版本: rtsp://username:password@//ch/ 例子: DS-9016HF-ST的IP通道01主码流: rtsp://admin:12345@172.6.22.106:554/h264/ch33/main/av_stream DS-9016HF-ST的模拟通道01子码流: rtsp://admin:12345@172.6.22.106:554/h264/
Nginx配置视频服务器 server { listen 28024; server_name localhost; location /hls{ add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With;
RTSP视频可以在Android MediaPlayer中播放吗?如果是,怎么做?我得到的服务器死亡错误(100,0)这是我的编码部分包com的错误。实例样本媒体; 这是我的Logcat结果,我得到的结果是07-09 12:17:05.484:E/MediaPlayer(3990):error(1,-2147483648)07-09 12:17:05.484:W/System。err(3990):
我目前正在开发一个需要解码UDP多播RTSP流的应用程序。目前,我可以通过ffplay查看RTP流 但是,我尝试使用FFMPEG通过(为了简洁起见,删除了错误检查和清理代码)打开UDP流。 这种方法适用于包含原始编码视频流的文件输入,但对于UDP多播RTSP流,它无法通过对执行的任何错误检查。请告知...
这是我的m3u8,内置字幕: 我使用加载我的hls视频。我的m3u8文件怎么了?
我正在开发一个应用程序,我使用了谷歌的ExoPlayer,它工作起来很有魅力,现在我想在我的应用程序中添加RTSP支持,但使用ExoPlayer我无法播放,请任何人都可以帮我,如果有人有其他选择,请与我分享。 日志 E/ExoPlayerImplInternal:源错误。网蝴蝶电视。rtmp_客户端。RtmpClient$RtmpIOException at net。蝴蝶电视。rtmp_客户端。R
所以我一直在尝试让HLS通过HTTPS工作。这似乎是一项简单的任务,但我遇到了一个障碍。 我可以通过HTTP获得HLS流,没有任何问题,因为它非常简单。然而,一旦我改变到HTTPS非我的客户似乎可以发挥它。我研究过的大多数帖子都想谈论加密HLS内容,但我真的不在乎。我只想上菜。 我也注意到了这一点。m3u8正在被客户端下载,但我的猜测是块没有下载,这就是流出错的原因。此外,用于调试完成的chrom
SRS支持HLS/RTMP两种成熟而且广泛应用的流媒体分发方式。 RTMP指Adobe的RTMP(Realtime Message Protocol),广泛应用于低延时直播,也是编码器和服务器对接的实际标准协议,在PC(Flash)上有最佳观看体验和最佳稳定性。 HLS指Apple的HLS(Http Live Streaming),本身就是Live(直播)的,不过Vod(点播)也能支持。HLS是A