提交 988ae036 authored 作者: zw.wang's avatar zw.wang

fix: 修复mysql变更

上级 15df0e6b
...@@ -101,19 +101,19 @@ def get_camera_info(cursor, conn): ...@@ -101,19 +101,19 @@ def get_camera_info(cursor, conn):
@query() @query()
def insert_video_info(cursor, conn, db_table, device_code, file_name, start_time, end_time, def insert_video_info(cursor, conn, db_table, device_code, file_name, start_time, end_time,
recovered_time, date, video_url, video_resolution, status=0): recovered_time, video_url, video_resolution, status=0):
sql = ''' sql = '''
insert {} ( insert {} (
device_code, file_name, start_date, end_date, device_code, file_name, start_date, end_date,
recovered_time, date, recovered_time,
video_url, video_resolution, video_url, video_resolution,
biz_type, service_type, biz_type, service_type,
expired_time, status, update_time) expired_time, status, update_time, create_time)
value (%(device_code)s, %(file_name)s, %(start_date)s, %(end_date)s, value (%(device_code)s, %(file_name)s, %(start_time)s, %(end_time)s,
%(recovered_time)s, %(date)s, %(recovered_time)s,
%(video_url)s, %(video_resolution)s, %(video_url)s, %(video_resolution)s,
1, 1, 1, 1,
date_add(now(),interval 31 day), %(status)s, now() date_add(now(),interval 31 day), %(status)s, now(), now()
) )
'''.format(db_table) '''.format(db_table)
cursor.execute(sql, { cursor.execute(sql, {
...@@ -124,7 +124,6 @@ def insert_video_info(cursor, conn, db_table, device_code, file_name, start_time ...@@ -124,7 +124,6 @@ def insert_video_info(cursor, conn, db_table, device_code, file_name, start_time
'video_url': video_url, 'video_url': video_url,
'video_resolution': video_resolution, 'video_resolution': video_resolution,
'recovered_time': recovered_time, 'recovered_time': recovered_time,
'date': date,
'status': status 'status': status
}) })
video_id = cursor.lastrowid video_id = cursor.lastrowid
......
import json import json
import os import os
import shutil import shutil
import time
import threading import threading
import functools import functools
import pytz import pytz
...@@ -89,14 +90,18 @@ class StreamRecorder: ...@@ -89,14 +90,18 @@ class StreamRecorder:
self.connection.close() self.connection.close()
def process_message(self, body): def process_message(self, body):
t1 = time.time()
record_result = self.recorder( record_result = self.recorder(
body['camera_index'], body['camera_index'],
datetime.strptime(body['start_time'], '%Y-%m-%dT%H:%M:%S').astimezone(tz), datetime.strptime(body['start_time'], '%Y-%m-%dT%H:%M:%S').astimezone(tz),
datetime.strptime(body['end_time'], '%Y-%m-%dT%H:%M:%S').astimezone(tz), datetime.strptime(body['end_time'], '%Y-%m-%dT%H:%M:%S').astimezone(tz),
body['camera_code'] body['camera_code']
) )
t2 = time.time()
video_info, error_log = get_video_duration(record_result['file_name']) video_info, error_log = get_video_duration(record_result['file_name'])
log.info('record Time: %s, duration: %s, size: %s',
round(t2 - t1, 2), video_info['duration'], video_info['size'])
url = '' url = ''
file_name = record_result['file_name'].split('/')[-1] file_name = record_result['file_name'].split('/')[-1]
if record_result['file_name'] and os.path.isfile(record_result['file_name']): if record_result['file_name'] and os.path.isfile(record_result['file_name']):
...@@ -104,10 +109,9 @@ class StreamRecorder: ...@@ -104,10 +109,9 @@ class StreamRecorder:
record_result['file_name']) record_result['file_name'])
os.remove(record_result['file_name']) os.remove(record_result['file_name'])
video_id = insert_video_info(body['db_table'], body['camera_code'], file_name, body['start_time'], video_id = insert_video_info(body['db_table'], body['camera_code'], file_name,
body['end_time'], body['start_time'], body['end_time'],
recovered_time=record_result['recovered_time'].astimezone(pytz.utc), recovered_time=record_result['recovered_time'].astimezone(pytz.utc),
date=body['start_time'].split('T')[0].replace('-', ''),
video_url=url, video_resolution=video_info['resolution'], video_url=url, video_resolution=video_info['resolution'],
status=1 if record_result['is_completed'] else 2) status=1 if record_result['is_completed'] else 2)
log.info('video_info: %s, url: %s, video_id: %s.%s', video_info, url, body['db_table'], video_id) log.info('video_info: %s, url: %s, video_id: %s.%s', video_info, url, body['db_table'], video_id)
......
import re import re
import os
import subprocess import subprocess
from intelab_python_sdk.logger import log from intelab_python_sdk.logger import log
...@@ -59,6 +60,7 @@ def get_video_duration(file_name): ...@@ -59,6 +60,7 @@ def get_video_duration(file_name):
bitrate = ['0'] bitrate = ['0']
resolution = ['0x0'] resolution = ['0x0']
media_type = 'VideoHandler' media_type = 'VideoHandler'
size = 0
log_buffer = subprocess.getoutput('ffmpeg -i {}'.format(file_name)) log_buffer = subprocess.getoutput('ffmpeg -i {}'.format(file_name))
if 'moov atom not found' in log_buffer: if 'moov atom not found' in log_buffer:
...@@ -70,13 +72,16 @@ def get_video_duration(file_name): ...@@ -70,13 +72,16 @@ def get_video_duration(file_name):
resolution = re.findall(r'(\d{3,4}x\d{3,4})', log_buffer) or resolution resolution = re.findall(r'(\d{3,4}x\d{3,4})', log_buffer) or resolution
if 'SoundHandler' in log_buffer: if 'SoundHandler' in log_buffer:
media_type += '+SoundHandler' media_type += '+SoundHandler'
if os.path.isfile(file_name):
size = os.path.getsize(file_name) / 1024.0
video_info = { video_info = {
'duration': duration[0], 'duration': duration[0],
'bitrate': bitrate[0], 'bitrate': bitrate[0],
'resolution': resolution[0], 'resolution': resolution[0],
'media_type': media_type, 'media_type': media_type,
'file_name': file_name 'file_name': file_name,
'size': size
} }
return video_info, error_log return video_info, error_log
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论