# Autoplay the video when page is loaded?
auto_play = boolean(default=False)
+# List of resolutions that the video should be transcoded to
+# Choose among ['144p', '240p', '360p', '480p', '720p', '1080p'],
+# preferrably in the order of transcoding.
+available_resolutions = string_list(default=list('480p', '360p', '720p'))
+
+# Default resolution of video
+default_resolution = string(default='480p')
+
[[skip_transcode]]
mime_types = string_list(default=list("video/webm"))
container_formats = string_list(default=list("Matroska"))
def workflow(self, entry, feed_url, reprocess_action, reprocess_info=None):
+ video_config = mgg.global_config['plugins'][MEDIA_TYPE]
+ def_res = video_config['default_resolution']
+ priority_num = len(video_config['available_resolutions']) + 1
+
entry.state = u'processing'
entry.save()
if 'thumb_size' not in reprocess_info:
reprocess_info['thumb_size'] = None
- transcoding_tasks = group([
- main_task.signature(args=(entry.id, '480p', ACCEPTED_RESOLUTIONS['480p']),
- kwargs=reprocess_info, queue='default',
- priority=5, immutable=True),
- complimentary_task.signature(args=(entry.id, '360p', ACCEPTED_RESOLUTIONS['360p']),
- kwargs=reprocess_info, queue='default',
- priority=4, immutable=True),
- complimentary_task.signature(args=(entry.id, '720p', ACCEPTED_RESOLUTIONS['720p']),
- kwargs=reprocess_info, queue='default',
- priority=3, immutable=True),
- ])
-
+ tasks_list = [main_task.signature(args=(entry.id, def_res,
+ ACCEPTED_RESOLUTIONS[def_res]),
+ kwargs=reprocess_info, queue='default',
+ priority=priority_num, immutable=True)]
+
+ for comp_res in video_config['available_resolutions']:
+ if comp_res != def_res:
+ priority_num += -1
+ tasks_list.append(
+ complimentary_task.signature(args=(entry.id, comp_res,
+ ACCEPTED_RESOLUTIONS[comp_res]),
+ kwargs=reprocess_info, queue='default',
+ priority=priority_num, immutable=True)
+ )
+
+ transcoding_tasks = group(tasks_list)
cleanup_task = processing_cleanup.signature(args=(entry.id,),
queue='default', immutable=True)