Blender Git Commit Log

Git Commits -> Revision a7e7479

Revision a7e7479 by Sybren A. Stüvel (master)
September 21, 2016, 13:03 (GMT)
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

Commit Details:

Full Hash: a7e74791221e2ef9b44ee1b3eb9ece37785aa62a
Parent Commit: 2476fae
Lines Changed: +297, -168

5 Added Paths:

/release/scripts/presets/ffmpeg/DVD (note_colon_ this changes render resolution).py (+24, -0) (View)
/release/scripts/presets/ffmpeg/h264 in Matroska for scrubbing.py (+14, -0) (View)
/release/scripts/presets/ffmpeg/h264 in Matroska.py (+17, -0) (View)
/release/scripts/presets/ffmpeg/h264 in MP4.py (+18, -0) (View)
/release/scripts/presets/ffmpeg/ogg_theora.py (+18, -0) (View)

6 Deleted Paths:

/release/scripts/presets/ffmpeg/DV.py (+0, -14)
/release/scripts/presets/ffmpeg/DVD.py (+0, -24)
/release/scripts/presets/ffmpeg/h264.py (+0, -17)
/release/scripts/presets/ffmpeg/SVCD.py (+0, -24)
/release/scripts/presets/ffmpeg/theora.py (+0, -17)
/release/scripts/presets/ffmpeg/VCD.py (+0, -24)

7 Modified Paths:

/release/scripts/presets/ffmpeg/xvid.py (+3, -1) (Diff)
/release/scripts/startup/bl_ui/properties_render.py (+26, -14) (Diff)
/source/blender/blenkernel/intern/image.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/writeffmpeg.c (+55, -21) (Diff)
/source/blender/blenloader/intern/versioning_270.c (+14, -0) (Diff)
/source/blender/makesdna/DNA_scene_types.h (+37, -0) (Diff)
/source/blender/makesrna/intern/rna_scene.c (+70, -11) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021