Browse Source

推流增加多通道设备

locky 4 năm trước cách đây
mục cha
commit
63b658bcea
1 tập tin đã thay đổi với 15 bổ sung12 xóa
  1. 15 12
      controller/index.py

+ 15 - 12
controller/index.py

@@ -250,13 +250,17 @@ class oa2RtspStartView(TemplateView):
         region = ur_qs[0]['region']
         stream_name = ur_qs[0]['rtsp_url']
 
+        channel = '0'
+        if '_' in UID:
+            # 多通道设备
+            channel = UID[-1:]
+            UID = UID[:-2]
+
         RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA['EN']
-        MSG = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:8554/{stream_name}'. \
-                format(RTSP_PREFIX=RTSP_PREFIX, RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=stream_name)
+        MSG = '{}://{}:8554/{}'.format(RTSP_PREFIX, RESP_SERVER_DOMAIN, stream_name)
 
         logger = logging.getLogger('django')
-        logger.info('------开始向设备下发推流指令------')
-        logger.info('技能名称: {}'.format(app_name))
+        logger.info('------{} 开始向设备下发推流指令------'.format(app_name))
 
         # 此处后续应该用异步去发送指令
         if int(st) == 1:
@@ -269,7 +273,7 @@ class oa2RtspStartView(TemplateView):
 
         # 请求MQTT发布消息
         url = '{}/iot/requestPublishMessage'.format(SERVER_PREFIX_TEST)    # 测试服务器
-        requests_data = {'UID': UID, 'MSG': MSG+' 1'}   # 1: 开始推流,0: 停止推流
+        requests_data = {'UID': UID, 'MSG': MSG+' 1'+channel}   # 1: 开始推流,0: 停止推流; channel: 推流通道
         r = requests.post(url, requests_data)
         if r.status_code != 200:
             return JsonResponse({'错误': '请求响应异常'})
@@ -279,15 +283,14 @@ class oa2RtspStartView(TemplateView):
         if res['result_code'] == 0:
             logger.info('请求MQTT下发指令成功')
         elif res['result_code'] == 10043:
-            command = "./pushtool {UID} {PWD} {MSG} 1".format(UID=UID, PWD=PWD, MSG=MSG)
+            command = "./pushtool {UID} {PWD} {MSG} 1 {channel}".format(UID=UID, PWD=PWD, MSG=MSG, channel=channel)
             logger.info('------------推流指令: {}---------------'.format(command))
             self.runSendRtspMsg(logger, region, command)
         else:
             return JsonResponse({'错误': '请求MQTT发布消息异常'})
 
         # 拉流地址
-        rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'. \
-                    format(RTSP_PREFIX=RTSP_PREFIX, RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=stream_name)
+        rtsp_uri = '{}://{}:443/{}'.format(RTSP_PREFIX, RESP_SERVER_DOMAIN, stream_name)
         stop_time = int(time.time()) + 2*60
         expirationTime = time.strftime('%Y-%m-%dT%H:%MZ',time.localtime(stop_time))
 
@@ -371,8 +374,7 @@ class oa2DiscoveryDevice(TemplateView):
         access_token = request_dict.get("access_token", None)
 
         logger = logging.getLogger('django')
-        logger.info('--------开始搜索设备--------')
-        logger.info('技能名称: {}'.format(app_name))
+        logger.info('--------{} 开始搜索设备--------'.format(app_name))
 
         user_qs = UserModel.objects.filter(access_token=access_token)
         if not user_qs.exists():
@@ -439,14 +441,15 @@ class oa2DiscoveryDevice(TemplateView):
             uid = uid_a['uid']
             nick = uid_a['nick']
 
+            rtsp_url = rtko.encrypt(data=uid)
+            region = 'CN' if uid_a['region'] == 'CN' else 'EN'
+
             if test_flag:
                 multi_channel = uid_a['multi_channel']
                 if multi_channel:
                     # 多通道设备: uid_通道号
                     uid += '_' + str(uid_a['channel'])
 
-            region = 'CN' if uid_a['region'] == 'CN' else 'EN'
-            rtsp_url = rtko.encrypt(data=uid)
             try:
                 uid_rtsp_qs = UidRtspModel.objects.get(uid=uid)
             except UidRtspModel.DoesNotExist: