欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ONVIF协议摄像头RTSP拉流转码RTMP,JWPlayer实现网页播放

程序员文章站 2022-07-06 20:20:39
...

准备工具:IPCAMERA网页高清摄像头一个,nginx-rtmp-win32-master.zip ,FFMPEG

开始干活:

1、先解压nginx-rtmp-win32-master,这里面集成了,这个比较简单,找个合适的地方,直接解压,解压后的样子是这样的

ONVIF协议摄像头RTSP拉流转码RTMP,JWPlayer实现网页播放

看到nginx.exe了不,二话不说。直接运行就ok了,忘了 说一句,nginx默认配置需要用到8080和1935端口,如果想改端口,在conf目录下边有nginx.conf这个文件,打开之后,就能看到了,改完端口以后,记得重新重新启动一下nginx服务器。貌似没有重新启动这一项啊,那就点击stop.bat,然后再点击nginx.exe。附上nginx.conf:

worker_processes 4;  

#切换自动推送(多 worker 直播流)模式。默认为 off
rtmp_auto_push on;

#当 worker 被干掉时设置自动推送连接超时时间。默认为 100 毫秒
rtmp_auto_push_reconnect 1s;

error_log  logs/error.log debug;

worker_rlimit_nofile 51200;

events {
 
    worker_connections  51200;
}

rtmp {
    server {
        listen 1935;

        application live {
            #live on;
		live on;
		hls on;
		hls_path temp/hls;
          	hls_fragment 20s;
          	hls_playlist_length 3000s;
          	hls_cleanup off;
		idle_streams off;
		publish_notify on;
		drop_idle_publisher 70s;
	  	record_unique off;
		#record keyframes;  
		wait_video off;
		interleave on;
		wait_key off;
		record all;
		record_path temp/hls;  
		record_interval 3600s;  
	
        }
		
        application hls {
            live on;
            hls on;  
            hls_path temp/hls;  
            hls_fragment 1s;  
        }
    }
}

http {
    server {
        listen      8080;
		
        location / {
            root html;
        }
		
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root html;
        }
		
        location /hls {  
            #server hls fragments  
            types{  
                application/vnd.apple.mpegurl m3u8;  
                video/mp2t ts;  
            }  
            alias temp/hls;  
            expires -1;  
        }  
    }
}

2、接下来就来安装ffmpeg.没啥好说的,找个合适的位置,直接下一步就ok。安装完成记得看看环境变量里面有没有ffmpeg的配置。安装完成以后,cmd里面直接输入ffmpeg

ONVIF协议摄像头RTSP拉流转码RTMP,JWPlayer实现网页播放

如图:即为安装成功了。

3、重头戏来了,搞摄像头。小弟是一搞android的,由于公司人手有限,才临时客串一下。由于第一次搞,手忙脚乱的,都不知道怎么获取流。接下来我就不厌其烦的问度娘了。

    1),先问度娘摄像头怎么连接我电脑。怎么才能让我连接上去呢。找到一件法器:ONVIF Device Test Tool。百度下载安装就行,点击打开软件,界面是这样的,点击discover devices,在下面就显示设备了,不知道为什么有两个,明明我就一个设备,有大神知道的,可以联系我Q278357251。右边显示一些摄像头的基本信息

点击ONVIF协议摄像头RTSP拉流转码RTMP,JWPlayer实现网页播放

    2)话不多说,直接画步骤:

ONVIF协议摄像头RTSP拉流转码RTMP,JWPlayer实现网页播放

    备注一下:第五步就能看到视频了,1920x1080,高清无码,咳咳,说多了。第六步拿到rtsp流地址。咱们就要这玩意。


3、拿到视频流了,咱们就该转码播放了,rtsp目前在不安装插件的情况下是不可以直接在网页上面播放的,需要转成网页上可以播放的视频格式才可以。

1)转码,把rtsp转成rtmp推送到nginx的服务器1935上面

在cmd里面输入:

ffmpeg -i rtsp://192.xxx.xxx.103:554/live1.264 -c:a copy -c:v libx264  -f flv rtmp://127.0.0.1:1935/live/stream 

命令具体参数客户参考官网 :http://ffmpeg.org/documentation.html

2)打开 http://127.0.0.1:8080,按照步骤,看到以下界面

ONVIF协议摄像头RTSP拉流转码RTMP,JWPlayer实现网页播放

备注:说明咱们转码推流成功了,由于这是自带的测试demo,界面不要就怎么改了。索性不改了。

打开我的phpstudy。找个jwplayer,,然后复制一下rtmp拉流地址,运行如下:代码一会附上

 ONVIF协议摄像头RTSP拉流转码RTMP,JWPlayer实现网页播放


ok,完毕

所用到部分资源,其他的可以百度下载到:

https://download.csdn.net/download/qq_22802643/10332752