forked from bartvdbraak/blender
Fix [#21351] PROPERTIES: Resolution changes based solely on changing
encoding format Bypassed existing hardcoded ffmpeg presets that executed when changing format, replaced with bpy presets. Leaving old code there for now, haven't got python/rna access to the ffmpeg id properties.. Anyone know how to do this? Code snippets here: http://www.pasteall.org/11657/c
This commit is contained in:
parent
a4de5e06af
commit
25a14bad61
9
release/scripts/presets/ffmpeg/DV.py
Normal file
9
release/scripts/presets/ffmpeg/DV.py
Normal file
@ -0,0 +1,9 @@
|
||||
is_ntsc = (bpy.context.scene.render.fps != 25)
|
||||
|
||||
bpy.context.scene.render.ffmpeg_format = "DV"
|
||||
bpy.context.scene.render.resolution_x = 720
|
||||
|
||||
if is_ntsc:
|
||||
bpy.context.scene.render.resolution_y = 480
|
||||
else:
|
||||
bpy.context.scene.render.resolution_y = 576
|
18
release/scripts/presets/ffmpeg/DVD.py
Normal file
18
release/scripts/presets/ffmpeg/DVD.py
Normal file
@ -0,0 +1,18 @@
|
||||
is_ntsc = (bpy.context.scene.render.fps != 25)
|
||||
|
||||
bpy.context.scene.render.ffmpeg_format = "MPEG2"
|
||||
bpy.context.scene.render.resolution_x = 720
|
||||
|
||||
if is_ntsc:
|
||||
bpy.context.scene.render.resolution_y = 480
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 18
|
||||
else:
|
||||
bpy.context.scene.render.resolution_y = 576
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 15
|
||||
|
||||
bpy.context.scene.render.ffmpeg_video_bitrate = 6000
|
||||
bpy.context.scene.render.ffmpeg_maxrate = 9000
|
||||
bpy.context.scene.render.ffmpeg_minrate = 0
|
||||
bpy.context.scene.render.ffmpeg_buffersize = 224*8
|
||||
bpy.context.scene.render.ffmpeg_packetsize = 2048
|
||||
bpy.context.scene.render.ffmpeg_muxrate = 10080000
|
18
release/scripts/presets/ffmpeg/SVCD.py
Normal file
18
release/scripts/presets/ffmpeg/SVCD.py
Normal file
@ -0,0 +1,18 @@
|
||||
is_ntsc = (bpy.context.scene.render.fps != 25)
|
||||
|
||||
bpy.context.scene.render.ffmpeg_format = "MPEG2"
|
||||
bpy.context.scene.render.resolution_x = 480
|
||||
|
||||
if is_ntsc:
|
||||
bpy.context.scene.render.resolution_y = 480
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 18
|
||||
else:
|
||||
bpy.context.scene.render.resolution_y = 576
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 15
|
||||
|
||||
bpy.context.scene.render.ffmpeg_video_bitrate = 2040
|
||||
bpy.context.scene.render.ffmpeg_maxrate = 2516
|
||||
bpy.context.scene.render.ffmpeg_minrate = 0
|
||||
bpy.context.scene.render.ffmpeg_buffersize = 224*8
|
||||
bpy.context.scene.render.ffmpeg_packetsize = 2324
|
||||
bpy.context.scene.render.ffmpeg_muxrate = 0
|
18
release/scripts/presets/ffmpeg/VCD.py
Normal file
18
release/scripts/presets/ffmpeg/VCD.py
Normal file
@ -0,0 +1,18 @@
|
||||
is_ntsc = (bpy.context.scene.render.fps != 25)
|
||||
|
||||
bpy.context.scene.render.ffmpeg_format = "MPEG1"
|
||||
bpy.context.scene.render.resolution_x = 352
|
||||
|
||||
if is_ntsc:
|
||||
bpy.context.scene.render.resolution_y = 240
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 18
|
||||
else:
|
||||
bpy.context.scene.render.resolution_y = 288
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 15
|
||||
|
||||
bpy.context.scene.render.ffmpeg_video_bitrate = 1150
|
||||
bpy.context.scene.render.ffmpeg_maxrate = 1150
|
||||
bpy.context.scene.render.ffmpeg_minrate = 1150
|
||||
bpy.context.scene.render.ffmpeg_buffersize = 40*8
|
||||
bpy.context.scene.render.ffmpeg_packetsize = 2324
|
||||
bpy.context.scene.render.ffmpeg_muxrate = 2352 * 75 * 8
|
16
release/scripts/presets/ffmpeg/h264.py
Normal file
16
release/scripts/presets/ffmpeg/h264.py
Normal file
@ -0,0 +1,16 @@
|
||||
is_ntsc = (bpy.context.scene.render.fps != 25)
|
||||
|
||||
bpy.context.scene.render.ffmpeg_format = "H264"
|
||||
bpy.context.scene.render.ffmpeg_codec = "H264"
|
||||
|
||||
if is_ntsc:
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 18
|
||||
else:
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 15
|
||||
|
||||
bpy.context.scene.render.ffmpeg_video_bitrate = 6000
|
||||
bpy.context.scene.render.ffmpeg_maxrate = 9000
|
||||
bpy.context.scene.render.ffmpeg_minrate = 0
|
||||
bpy.context.scene.render.ffmpeg_buffersize = 224*8
|
||||
bpy.context.scene.render.ffmpeg_packetsize = 2048
|
||||
bpy.context.scene.render.ffmpeg_muxrate = 10080000
|
16
release/scripts/presets/ffmpeg/theora.py
Normal file
16
release/scripts/presets/ffmpeg/theora.py
Normal file
@ -0,0 +1,16 @@
|
||||
is_ntsc = (bpy.context.scene.render.fps != 25)
|
||||
|
||||
bpy.context.scene.render.ffmpeg_format = "OGG"
|
||||
bpy.context.scene.render.ffmpeg_codec = "THEORA"
|
||||
|
||||
if is_ntsc:
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 18
|
||||
else:
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 15
|
||||
|
||||
bpy.context.scene.render.ffmpeg_video_bitrate = 6000
|
||||
bpy.context.scene.render.ffmpeg_maxrate = 9000
|
||||
bpy.context.scene.render.ffmpeg_minrate = 0
|
||||
bpy.context.scene.render.ffmpeg_buffersize = 224*8
|
||||
bpy.context.scene.render.ffmpeg_packetsize = 2048
|
||||
bpy.context.scene.render.ffmpeg_muxrate = 10080000
|
16
release/scripts/presets/ffmpeg/xvid.py
Normal file
16
release/scripts/presets/ffmpeg/xvid.py
Normal file
@ -0,0 +1,16 @@
|
||||
is_ntsc = (bpy.context.scene.render.fps != 25)
|
||||
|
||||
bpy.context.scene.render.ffmpeg_format = "AVI"
|
||||
bpy.context.scene.render.ffmpeg_codec = "XVID"
|
||||
|
||||
if is_ntsc:
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 18
|
||||
else:
|
||||
bpy.context.scene.render.ffmpeg_gopsize = 15
|
||||
|
||||
bpy.context.scene.render.ffmpeg_video_bitrate = 6000
|
||||
bpy.context.scene.render.ffmpeg_maxrate = 9000
|
||||
bpy.context.scene.render.ffmpeg_minrate = 0
|
||||
bpy.context.scene.render.ffmpeg_buffersize = 224*8
|
||||
bpy.context.scene.render.ffmpeg_packetsize = 2048
|
||||
bpy.context.scene.render.ffmpeg_muxrate = 10080000
|
@ -29,6 +29,13 @@ class RENDER_MT_presets(bpy.types.Menu):
|
||||
draw = bpy.types.Menu.draw_preset
|
||||
|
||||
|
||||
class RENDER_MT_ffmpeg_presets(bpy.types.Menu):
|
||||
bl_label = "FFMPEG Presets"
|
||||
preset_subdir = "ffmpeg"
|
||||
preset_operator = "script.python_file_run"
|
||||
draw = bpy.types.Menu.draw_preset
|
||||
|
||||
|
||||
class RenderButtonsPanel(bpy.types.Panel):
|
||||
bl_space_type = 'PROPERTIES'
|
||||
bl_region_type = 'WINDOW'
|
||||
@ -379,6 +386,8 @@ class RENDER_PT_encoding(RenderButtonsPanel):
|
||||
rd = context.scene.render
|
||||
wide_ui = context.region.width > narrowui
|
||||
|
||||
layout.menu("RENDER_MT_ffmpeg_presets", text="Presets")
|
||||
|
||||
split = layout.split()
|
||||
|
||||
col = split.column()
|
||||
@ -627,6 +636,7 @@ class RENDER_PT_bake(RenderButtonsPanel):
|
||||
|
||||
classes = [
|
||||
RENDER_MT_presets,
|
||||
RENDER_MT_ffmpeg_presets,
|
||||
RENDER_PT_render,
|
||||
RENDER_PT_layers,
|
||||
RENDER_PT_dimensions,
|
||||
|
@ -1242,7 +1242,8 @@ void ffmpeg_verify_image_type(RenderData *rd)
|
||||
rd->ffcodecdata.video_bitrate <= 1) {
|
||||
|
||||
rd->ffcodecdata.codec = CODEC_ID_MPEG2VIDEO;
|
||||
ffmpeg_set_preset(rd, FFMPEG_PRESET_DVD);
|
||||
/* Don't set preset, disturbs render resolution.
|
||||
* ffmpeg_set_preset(rd, FFMPEG_PRESET_DVD); */
|
||||
}
|
||||
|
||||
audio= 1;
|
||||
|
@ -132,7 +132,7 @@ EnumPropertyItem image_type_items[] = {
|
||||
{R_H264, "H264", ICON_FILE_MOVIE, "H.264", ""},
|
||||
{R_XVID, "XVID", ICON_FILE_MOVIE, "Xvid", ""},
|
||||
{R_THEORA, "THEORA", ICON_FILE_MOVIE, "Ogg Theora", ""},
|
||||
{R_FFMPEG, "FFMPEG", ICON_FILE_MOVIE, "FFMpeg", ""},
|
||||
{R_FFMPEG, "FFMPEG", ICON_FILE_MOVIE, "MPEG", ""},
|
||||
#endif
|
||||
{R_FRAMESERVER, "FRAMESERVER", ICON_FILE_SCRIPT, "Frame Server", ""},
|
||||
{0, NULL, 0, NULL, NULL}};
|
||||
|
Loading…
Reference in New Issue
Block a user