Fixes Issue #2 #4

Merged
dafo5502 merged 59 commits from developer into master 2021-10-25 14:41:37 +02:00
Showing only changes of commit ea6a6ef7aa - Show all commits

View File

@ -65,16 +65,20 @@ class Transcoder:
workbase)) workbase))
transcodes['poster'] = thumbjob transcodes['poster'] = thumbjob
pending.append({'jobs': transcodes, obj = {'jobs': transcodes,
'data': stream}) 'data': stream}
if 'slides' in package: if 'slides' in package:
slides_job = pool.apply_async(_Worker.make_slides_video, slides = {}
(self.worker, for maxheight in self.variants:
package['demux_file'], crf, preset = self.variants[maxheight]
workbase, slides[maxheight] = pool.apply_async(_Worker.make_slides_video,
maxheight, preset, crf)) (self.worker,
package['demux_file'],
workbase,
maxheight, preset, crf))
obj['slides'] = slides
pending.append(obj)
pool.close() pool.close()
pool.join() pool.join()
@ -84,10 +88,16 @@ class Transcoder:
for item in pending: for item in pending:
stream = item['data'] stream = item['data']
jobs = item['jobs'] jobs = item['jobs']
slide_jobs = item.get('slides')
streams = {} streams = {}
slides = {}
for maxheight in self.variants: for maxheight in self.variants:
streams[maxheight] = jobs[maxheight].get() streams[maxheight] = jobs[maxheight].get()
if slide_jobs is not None:
slides[maxheight] = slide_jobs[maxheight].get()
stream['video'] = streams stream['video'] = streams
if slide_jobs is not None:
stream['slides'] = slides
if 'poster' in jobs: if 'poster' in jobs:
stream['poster'] = jobs['poster'].get() stream['poster'] = jobs['poster'].get()
if not package['thumb'] and stream['playAudio']: if not package['thumb'] and stream['playAudio']:
@ -174,7 +184,7 @@ class _Worker:
(ffmpeg (ffmpeg
.input(demux_file, framerate=25) .input(demux_file, framerate=25)
.filter('scale', height='min(in_h, {}').format(maxheight, width=-2) .filter('scale', height='min(in_h, {}').format(maxheight, width=-2)
.output(outpath, crf=crf, preset=preset, movflags='faststart', pix_fmt='yuv420p') .output(outpath, crf=crf, preset=preset, vsync='vfr', movflags='faststart', pix_fmt='yuv420p')
.run(quiet=quiet)) .run(quiet=quiet))
runtime = time.time() - start runtime = time.time() - start