Export sound separatly

This commit is contained in:
ChristopheSeux
2023-07-20 17:27:22 +02:00
parent 4513fc7036
commit 5d353b89b8
3 changed files with 84 additions and 21 deletions
+48 -17
View File
@@ -8,7 +8,7 @@ import bpy
from bpy.types import Operator
from bpy.props import BoolProperty
from vse_toolbox.sequencer_utils import (get_strips, render_strip)
from vse_toolbox.sequencer_utils import (get_strips, render_strip, render_sound)
from vse_toolbox.bl_utils import (get_scene_settings, background_render)
from vse_toolbox.file_utils import install_module
@@ -38,20 +38,44 @@ class VSETB_OT_render(Operator):
settings = get_scene_settings()
layout = self.layout
col = layout.column()
col.label(text='Single File', icon='FILE_IMAGE')
#col.use_property_split = True
#col.use_property_decorate = False
col.prop(settings.active_project, "render_single_file")
#col.prop(settings.active_project, "render_single_file")
row = col.row()
row.enabled = settings.active_project.render_single_file
row.prop(settings.active_project, "render_template")
row.prop(settings.active_project, "render_video")
row = col.row()
row.enabled = settings.active_project.render_video
row.prop(settings.active_project, "render_video_template")
row = col.row()
row.prop(settings.active_project, "render_audio")
row = col.row()
row.enabled = settings.active_project.render_audio
row.prop(settings.active_project, "render_audio_template")
layout.separator()
col = layout.column()
col.label(text='File per strip', icon='RENDERLAYERS')
col.separator()
col.prop(settings.active_project, "render_per_strip")
col.prop(settings.active_project, "render_video_per_strip", text='Render Video')
row = col.row()
row.enabled = settings.active_project.render_per_strip
row.prop(settings.active_project, "render_strip_template")
row.enabled = settings.active_project.render_video_per_strip
row.prop(settings.active_project, "render_video_strip_template", text='Video Template')
col.prop(settings.active_project, "render_audio_per_strip", text='Render Audio')
row = col.row()
row.enabled = settings.active_project.render_audio_per_strip
row.prop(settings.active_project, "render_audio_strip_template", text='Audio Template')
#row.prop(settings.active_project, "render_sound_format", expand=True)
#col.prop(settings, 'channel', text='Channel')
#col.prop(self, 'selected_only')
@@ -64,19 +88,26 @@ class VSETB_OT_render(Operator):
format_data = {**settings.format_data, **project.format_data}
start_time = time.perf_counter()
if project.render_single_file:
render_path = project.render_template.format(**format_data)
background_render(output=render_path)
if project.render_per_strip:
for strip in get_strips(channel='Shots', selected_only=True):
strip_settings = strip.vsetb_strip_settings
strip_data = {**format_data, **strip_settings.format_data}
strip_render_path = project.render_strip_template.format(**strip_data)
if project.render_video:
video_path = project.render_video_template.format(**format_data)
background_render(output=video_path)
if project.render_audio:
audio_path = project.render_audio_template.format(**format_data)
bpy.ops.sound.mixdown(filepath=audio_path)
for strip in get_strips(channel='Shots', selected_only=True):
strip_settings = strip.vsetb_strip_settings
strip_data = {**format_data, **strip_settings.format_data}
if project.render_video_per_strip:
strip_render_path = project.render_video_strip_template.format(**strip_data)
render_strip(strip, strip_render_path)
if project.render_audio_per_strip:
audio_render_path = project.render_audio_strip_template.format(**strip_data)
render_sound(strip, audio_render_path)
self.report({"INFO"}, f'Strips rendered in {time.perf_counter()-start_time} seconds')
return {"FINISHED"}