2010-07-08 16:10:14 +00:00
|
|
|
import bpy
|
2010-03-13 00:17:52 +00:00
|
|
|
is_ntsc = (bpy.context.scene.render.fps != 25)
|
|
|
|
|
FFmpeg interface improvements
This patch changes a couple of things in the video output encoding.
{F362527}
- Clearer separation between container and codec. No more "format", as this is
too ambiguous. As a result, codecs were removed from the container list.
- Added FFmpeg speed presets, so the user can choosen from the range "Very
slow" to "Ultra fast". By default no preset is used.
- Added Constant Rate Factor (CRF) mode, which allows changing the bit-rate
depending on the desired quality and the input. This generally produces the
best quality videos, at the expense of not knowing the exact bit-rate and
file size.
- Added optional maximum of non-B-frames between B-frames (`max_b_frames`).
- Presets were adjusted for these changes, and new presets added. One of the
new presets is [recommended](https://trac.ffmpeg.org/wiki/Encode/VFX#H.264)
for reviewing videos, as it allows players to scrub through it easily. Might
be nice in weeklies. This preset also requires control over the
`max_b_frames` setting.
GUI-only changes:
- Renamed "MPEG" in the output file format menu with "FFmpeg", as this is more
accurate. After all, FFmpeg is used when this option is chosen, which can
also output non-MPEG files.
- Certain parts of the GUI are disabled when not in use:
- bit rate options are not used when a constant rate factor is given.
- audio bitrate & volume are not used when no audio is exported.
Note that I did not touch `BKE_ffmpeg_preset_set()`. There are currently two
preset systems for FFmpeg (`BKE_ffmpeg_preset_set()` and the Python preset
system). Before we do more work on `BKE_ffmpeg_preset_set()`, I think it's a
good idea to determine whether we want to keep it at all.
After this patch has been accepted, I'd be happy to go through the code and
remove any then-obsolete bits, such as the handling of "XVID" as a container
format.
Reviewers: sergey, mont29, brecht
Subscribers: mpan3, Blendify, brecht, fsiddi
Tags: #bf_blender
Differential Revision: https://developer.blender.org/D2242
2016-09-21 13:01:51 +00:00
|
|
|
bpy.context.scene.render.ffmpeg.format = "MPEG4"
|
2012-01-13 12:34:41 +00:00
|
|
|
bpy.context.scene.render.ffmpeg.codec = "H264"
|
2010-03-13 00:17:52 +00:00
|
|
|
|
|
|
|
if is_ntsc:
|
2012-01-13 12:34:41 +00:00
|
|
|
bpy.context.scene.render.ffmpeg.gopsize = 18
|
2010-03-13 00:17:52 +00:00
|
|
|
else:
|
2012-01-13 12:34:41 +00:00
|
|
|
bpy.context.scene.render.ffmpeg.gopsize = 15
|
FFmpeg interface improvements
This patch changes a couple of things in the video output encoding.
{F362527}
- Clearer separation between container and codec. No more "format", as this is
too ambiguous. As a result, codecs were removed from the container list.
- Added FFmpeg speed presets, so the user can choosen from the range "Very
slow" to "Ultra fast". By default no preset is used.
- Added Constant Rate Factor (CRF) mode, which allows changing the bit-rate
depending on the desired quality and the input. This generally produces the
best quality videos, at the expense of not knowing the exact bit-rate and
file size.
- Added optional maximum of non-B-frames between B-frames (`max_b_frames`).
- Presets were adjusted for these changes, and new presets added. One of the
new presets is [recommended](https://trac.ffmpeg.org/wiki/Encode/VFX#H.264)
for reviewing videos, as it allows players to scrub through it easily. Might
be nice in weeklies. This preset also requires control over the
`max_b_frames` setting.
GUI-only changes:
- Renamed "MPEG" in the output file format menu with "FFmpeg", as this is more
accurate. After all, FFmpeg is used when this option is chosen, which can
also output non-MPEG files.
- Certain parts of the GUI are disabled when not in use:
- bit rate options are not used when a constant rate factor is given.
- audio bitrate & volume are not used when no audio is exported.
Note that I did not touch `BKE_ffmpeg_preset_set()`. There are currently two
preset systems for FFmpeg (`BKE_ffmpeg_preset_set()` and the Python preset
system). Before we do more work on `BKE_ffmpeg_preset_set()`, I think it's a
good idea to determine whether we want to keep it at all.
After this patch has been accepted, I'd be happy to go through the code and
remove any then-obsolete bits, such as the handling of "XVID" as a container
format.
Reviewers: sergey, mont29, brecht
Subscribers: mpan3, Blendify, brecht, fsiddi
Tags: #bf_blender
Differential Revision: https://developer.blender.org/D2242
2016-09-21 13:01:51 +00:00
|
|
|
bpy.context.scene.render.ffmpeg.use_max_b_frames = False
|
2010-03-13 00:17:52 +00:00
|
|
|
|
2012-01-13 12:34:41 +00:00
|
|
|
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
|