mobile CCTV,mobile surveillance,police body worn cameras

 forgetPW
 registerNow
search
view: 1611|reply: 4
打印 prevThread nextThread

基于WebSdk获取SmartEye平台设备rtmp拉流地址 流程简述

[copyURL]

6

主题

407

帖子

1614

积分

vipMem

Rank: 6Rank: 6

积分
1614
jumpTo
owner
poston 2020-1-2 15:29 | authorOnly 回帖奖励 |倒序浏览 |阅读模式
流程简述, 请参考文档      https://61.191.27.18:9443/doc/
1、加载jSW库
<script type="text/javascript" src="../js/jsw.js"></script>


2、以非插件方式初始化jSW库
     var initParams = {
            url: http://61.191.27.18:8081, // bv_nginx.exe服务器地址,用于指示库websocket 服务器地址
            calltype: jSW.CallProtoType.HTTP, // AUTO: IE优先使用OCX, 如果希望IE仍然使用HTTP通信, 请使用jSW.CallProtoType.HTTP
            oninit: oninitcall
            //jSW.swInit为异步接口,oninitcall是回调处理函数   
            //jSW.swInit函数返回0,并且回调通知成功,库初始化完成
        }
        var rc = jSW.swInit(initParams)
        if(rc != jSW.RcCode.RC_CODE_S_OK){
        //初始化失败
        }

3、jSW初始化成功的回调之后,进行登录。
     构建Session,在Session的onopen事件中,登录SmartEye平台。向Sesssion注册login事件处理函数,用以处理登录结果。
     var session = null
     function oninitcall(rc){
         if(rc == jSW.RcCode.RC_CODE_S_OK){
         session = new jSW.SWSession({
            server: 127.0.0.1, // 如果是jSW.CallProtoType.HTTP方式,这里需要填写具体的IP
            port: 9701,
            onopen: function (sess) {
                sess.swLogin({
                    user: admin,
                    password: 123456
                })
            },
            onclose: function(){
                document.getElementById('loginResult').innerText = "与服务器的命令传输 websocket 通道 关闭"
            }
        });

        // 注册事件的回调函数
        session.swAddCallBack('login', sessionLoginCallback);
        session.swAddCallBack('logout', sessionCallback);
        session.swAddCallBack('pulist', OnPulistCallback)
         }
     }

4、登录成功获取设备列表。
     获取设备列表有两种方式,jSW自动获取全部设备列表或者调用者手动获取设备列表。
      function  sessionLoginCallback(sender, event, json){
           if (json.code == jSW.RcCode.RC_CODE_S_OK) {
                  //登录成功
           } else {
                 //登录失败
           }

      }

      function OnPulistCallback(sender, event, json){
               //获得设备列表成功, sender是SWSession对象
               sender._arr_pu  //设备数组
               sender._arr_pu_online  //在线设备数组
      }

5、获取指定设备对象,并以rtmp不播放的方式打开视频
      获得设备列表成功之后,就可以通过设备对象的视频通道  来打开视频了。
      如以var puid = PU_55AA00
      var pu = session.swGetPu(puid)
      if(pu){
          //pu._arr_channel  音视频通道数组
          pu._arr_channel[0].swOpenEx({
                  div:  null,
                  prototype: "rtmp",
                  media:  10,
                  callback: OnOpenRtmpHasResult,
                   tag: pu._arr_channel[0]
          })
      }




6、以打开rtmp打开视频回调成功,获取播放地址
                function  OnOpenRtmpHasResult(options,  response, dialogHandle){
                        if(response.emms.code == jSW.RcCode.RC_CODE_S_OK){
                               //以RTMP获取视频流打开成功,可以获取rtmp视频拉流地址了
                               var aimPu = options.tag
                               var urlObj = aimPu.swGetUrl()  //获取rtmp 拉流地址
                               console.log(urlObj)
                        }
                  }


reply

使用道具 report

2

主题

10

帖子

44

积分

newBie

Rank: 1

积分
44
sofa
poston 2020-1-3 15:07 | authorOnly
请问还是要基于前端开发,不能直接像rtsp插件形式直接拿rtmp地址来播放实时视频?
reply agree Against

使用道具 report

60

主题

1413

帖子

5801

积分

Moderator

Rank: 7Rank: 7Rank: 7

积分
5801
bench
poston 2020-1-3 15:28 | authorOnly
这估计不行。
reply agree Against

使用道具 report

5

主题

30

帖子

117

积分

member

Rank: 2

积分
117
ground
poston 2021-9-24 08:38 | authorOnly
这台设备已经做过rtmp认证,之前正常使用的,现在客户反馈推流推不过去是什么问题呢?后台也查询不到

本帖子中包含更多资源

pls login 才可以下载或查看,没有帐号?registerNow

x
reply agree Against

使用道具 report

3

主题

341

帖子

1783

积分

vipMem

Rank: 6Rank: 6

积分
1783
5#
poston 2021-9-24 09:53 | authorOnly
你这信息太少,啥都没有。
把设备跟后台的信息都贴出来。
reply agree Against

使用道具 report

creditRule

QQ|wireless surveillance

GMT+8, 2024-4-29 04:50 , Processed in 0.059572 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

QuickReply backToTop BackToList