|
- from PIL import Image
- import numpy as np
- import cv2
- import base64
- import io,os
- import requests
- import time,json
- import string,random
- import glob
- ##for CeKanYuan
- def get_offlineUrls(taskUrl,offlineFile,jsonfile='SendLog/platformQueryOfftask.json'):
- with open(offlineFile,'r') as fp:
- lines=fp.readlines()
- doneCodes=[line.strip().split(' ')[2] for line in lines]
- try:
- res = requests.get(taskUrl,timeout=10).json()
- offlines=res['data'] ##offlines[0]['code'],offlines[0]['videoUrl']
- with open(jsonfile,'w') as fp:
- json.dump(res,fp, ensure_ascii=False)
- except Exception as ee:
- timestr=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
- print('###line43 %s read taskUrl:%s error:%s '%(timestr,taskUrl,ee))
- offlines=[]
- outOfflines=[]
- for off in offlines:
- off['port']=1935;
- off.update({'name':'off-' +off.pop("code")})
- if off['name'] in doneCodes:
- continue
- off.update({'url': off.pop("videoUrl")})
- outOfflines.append(off)
- #off['url']=off['videoUrl']
-
- return outOfflines
- def platurlToJsonfile(taskUrl,jsonfile='SendLog/platformQuery.json'):
- try:
- res = requests.get(taskUrl,timeout=10).json()
- offlines=res['data'] ##offlines[0]['code'],offlines[0]['videoUrl']
- with open(jsonfile,'w') as fp:
- json.dump(res,fp, ensure_ascii=False)
- except Exception as ee:
- timestr=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
- print('###line43 %s read taskUrl:%s error:%s '%(timestr,taskUrl,ee))
-
- def get_websource_fromTxt(txtfile):
- with open(txtfile,'r') as fp:
- lines = fp.readlines()
- sources=[ ]
- for line in lines:
- sous={}
- try:
- sps = line.strip().split(' ')
- sous['url']=sps[0];sous['port']=sps[1]
-
- #webs.append(sps[0])
- if 'rtmp' in sps[0]:
- name = sps[0].split('/')[4]
-
- else:
- name = sps[0][-3:]
- sous['name']='live-'+name.replace('_','')
- sous['port']=sps[1]
- sources.append(sous)
- except Exception as ee:
-
- print('####format error : %s, line:%s , in file:%s#####'%(ee,line,txtfile))
- assert len(sources)>0
- return sources
-
- def update_websource_offAndLive(platform_query_url,sourceFile,offlineFile,jsonfile='SendLog/platformQuery.json'):
-
- #platform_query_url='http://47.96.182.154:9051/api/suanfa/getPlatformInfo'
- txtSource=get_websource_fromTxt(sourceFile)
- try:
- res = requests.get(platform_query_url,timeout=10).json()
- questionUrl = res['data']['questionUrl'] ###直播流时,问题图片的推送地址
- offlineUrl = res['data']['offlineUrl'] ###http离线视频时,问题图片的推送地址
- taskUrl = res['data']['taskUrl'] ###http离线视频时,离线视频存放的地址
- with open(jsonfile,'w') as fp:
- json.dump(res,fp, ensure_ascii=False)
- except Exception as ee:
- timestr=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
- print('######line83: %s: file:geturlPlatform: error %s ,url:%s #####'%(timestr,ee,platform_query_url))
- taskUrl='http://121.40.249.52:9050/api/analyse/getAiInspectionList'
- if taskUrl:
- offlines=get_offlineUrls(taskUrl,offlineFile)
- txtSource.extend(offlines)
- #[{'url': 'rtmp://demoplay.yunhengzhizao.cn/live/THSA_HD5M', 'port': '1935', 'name': 'live-THSAHD5M'}]
- outlist=[]
- for sourss in txtSource :
- source_url = sourss['url']
- vid = cv2.VideoCapture(source_url)
- if vid.isOpened():
- outlist.append( sourss )
- return outlist
- #print('##line65:',txtSource)
-
-
-
- if __name__=='__main__':
- platform_query_url='http://47.96.182.154:9051/api/suanfa/getPlatformInfo'
- sourceFile='../config/source.txt'
- offlineFile='../mintors/offlines/doneCodes.txt'
- jsonfile='../SendLog/platformQuery.json'
- txtSource=update_websource_offAndLive(platform_query_url,sourceFile,offlineFile,jsonfile=jsonfile)
- print(txtSource)
|