|
|
|
|
|
|
|
import sys, os |
|
os.system('uname -a') |
|
os.system('id') |
|
os.system('cat /etc/os-release') |
|
|
|
from datetime import datetime |
|
app_start_time = datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") |
|
print('App start time: ', app_start_time) |
|
|
|
import glob |
|
|
|
|
|
|
|
|
|
print("trying to import gradio") |
|
import gradio as gr |
|
print('finish importing gradio') |
|
|
|
|
|
|
|
os.system('tar -xvf vsf-linux-dyn.tar.gz -C vsf-linux-dyn') |
|
|
|
def greet(video, enable_area, ymin, ymax, xmin, xmax): |
|
|
|
|
|
os.system('ldd ./vsf-linux-dyn/VideoSubFinderCli') |
|
os.system('./vsf-linux-dyn/VideoSubFinderCli.run --help') |
|
|
|
print('输入的文件为', video) |
|
|
|
debug_output = "" |
|
srt_file_content = "" |
|
srt_file_path = None |
|
|
|
if not video: |
|
debug_output += "ERROR: input video is not true \n" |
|
srt_file_content = "ERROR: input video is not true" |
|
|
|
if enable_area: |
|
subtitle_area = (ymin, ymax, xmin, xmax) |
|
else: |
|
subtitle_area = None |
|
|
|
if video: |
|
print("检测到输入video对象,准备开始处理") |
|
print('开始于 ', datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") ) |
|
debug_output += '开始于 ' + datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") + '\n' |
|
( srt_file_content , srt_file_path , sub_debug_output) = main.main(video, subtitle_area ) |
|
print('完成于 ', datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") ) |
|
debug_output += '完成于 ' + datetime.now().strftime("%y-%m-%d_%H:%M:%S_%f") + '\n' |
|
debug_output += sub_debug_output + '\n' |
|
|
|
print('---------运行输出结果------\n\n') |
|
print(srt_file_content) |
|
print('\n-------------------------\n') |
|
|
|
if not srt_file_path or (srt_file_path and not os.path.isfile(srt_file_path) ) : |
|
debug_output += 'ERROR: srt file path ' + srt_file_path + ' file not valid \n' |
|
srt_file_path = None |
|
|
|
|
|
return \ |
|
srt_file_content , \ |
|
srt_file_path, \ |
|
debug_output, \ |
|
|
|
|
|
|
|
allFilesGlob = '/tmp/gradio/*/**' |
|
def getAllFiles(): |
|
all_possible_files = [] |
|
for x in glob.glob(allFilesGlob, recursive=True): |
|
if os.path.isfile(x): |
|
print('找到个可能文件',x) |
|
all_possible_files.append(x) |
|
|
|
print(all_possible_files) |
|
return all_possible_files |
|
|
|
def delAllFiles(): |
|
for x in glob.glob(allFilesGlob, recursive=True): |
|
if os.path.isfile(x): |
|
print('deleting file', x) |
|
os.remove(x) |
|
return "Finished deleting all files in " + allFilesGlob |
|
|
|
|
|
|
|
print('setting gradio interface') |
|
|
|
|
|
with gr.Blocks() as app: |
|
gr.Markdown("just test") |
|
with gr.Tab("ttest"): |
|
with gr.Row(): |
|
with gr.Column(): |
|
inputs = [ |
|
gr.Video(label='input video with enbedded subtitle'), |
|
gr.Checkbox(label='enable area'), |
|
gr.Slider(0, 10000, value=800, step=1, label="y min"), |
|
gr.Slider(0, 10000, value=1079, step=1, label="y max"), |
|
gr.Slider(0, 20000, value=1, step=1, label="x min"), |
|
gr.Slider(0, 20000, value=1910, step=1, label="x max"), |
|
] |
|
btn_ttest = gr.Button("Run ttest") |
|
with gr.Column(): |
|
outputs = [ |
|
gr.Textbox(label="subtitle srt content"), |
|
gr.File(label="output subtitle srt file"), |
|
gr.Textbox(label="debug output"), |
|
] |
|
with gr.Tab("get files"): |
|
btn_allfiles = gr.Button("Get all files") |
|
outputs2 = [gr.File(label='all possible files')] |
|
with gr.Tab('del files'): |
|
btn_delfiles = gr.Button("Delete all gradio tmp files") |
|
outputs3 = [gr.Textbox()] |
|
|
|
btn_ttest.click(greet, inputs=inputs, outputs=outputs) |
|
btn_allfiles.click(getAllFiles, inputs=[], outputs=outputs2) |
|
btn_delfiles.click(delAllFiles, inputs=[], outputs=outputs3) |
|
|
|
|
|
|
|
|
|
print('launching gradio app') |
|
app.queue(max_size=30, api_open=True) |
|
app.launch( show_error=True, server_name='0.0.0.0' ) |