107 lines
4.1 KiB
Python
107 lines
4.1 KiB
Python
|
|
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)
|