From 0aaf1a92633b29b6a4aaebaa4c1034643ecd1a7a Mon Sep 17 00:00:00 2001 From: j Date: Mon, 12 Nov 2018 14:41:02 +0000 Subject: [PATCH 1/2] render from uploaded source --- edit.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/edit.py b/edit.py index c0db577..83ad2dd 100755 --- a/edit.py +++ b/edit.py @@ -13,7 +13,6 @@ import ox.web.auth base_url = None -stream_resolution = 480 prefix = '/mnt' render = './cache' pandora_client_config = {} @@ -101,15 +100,24 @@ def sort_clips(edit, sort): s = sorted(clips, key=lambda c: ids.index(c['id']) if c['id'] in ids else -1) return s -def cache_clips(api, videos): +def cache_clips(api, videos, use_source=False): for clip in videos: out = '%s/%s.mp4' % (render, clip['oshash']) if 'path' in clip: clip['src'] = clip['path'] clip['path'] = out if not os.path.exists(out): - print(clip['url'], out) - api.save_url(clip['url'], out) + url = clip['url'] + if use_source: + name = url.split('/')[-1].split('.')[0] + resolution, part = name.split('p') + if part and part.isdigit(): + part = int(part) + else: + part = 1 + url = '/'.join(url.split('/')[:-1] + ['download', 'source', str(part)]) + print(url, out) + api.save_url(url, out) if __name__ == '__main__': @@ -129,6 +137,7 @@ if __name__ == '__main__': opts = parser.parse_args() edit_url = opts.url use_local = opts.source == 'local' + use_source = opts.source == 'source' prefix = opts.prefix parts = edit_url.split('/') site = parts[2] @@ -229,7 +238,7 @@ if __name__ == '__main__': position = math.ceil(position / (1/25)) * 1/25 if not use_local: - cache_clips(api, videos) + cache_clips(api, videos, use_source) name = normalize(edit_id) if sort_by != 'year': From afd0e519b756c7720218c381ce7d030a9e2dec73 Mon Sep 17 00:00:00 2001 From: j Date: Mon, 12 Nov 2018 14:42:09 +0000 Subject: [PATCH 2/2] use apsect ratio from video source --- ffmpeg.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ffmpeg.py b/ffmpeg.py index 8c3fdbd..2e47217 100755 --- a/ffmpeg.py +++ b/ffmpeg.py @@ -70,7 +70,8 @@ for clip in edit: }) position += duration continue - clip_aspect = clip['resolution'][0] / clip['resolution'][1] + src_info = ox.avinfo(clip['path']) + clip_aspect = src_info['video'][0]['width'] / src_info['video'][0]['height'] if clip_aspect < aspect: x = width y = int(x / clip_aspect) @@ -103,7 +104,6 @@ for clip in edit: print('skip empty clip', clip) else: files.append(out) - src_info = ox.avinfo(clip['path']) vid = src_info['video'][0]['id'] if not src_info['audio']: audio = ['-f', 'lavfi', '-i', 'anullsrc=channel_layout=stereo:sample_rate=48000']