Commit Graph

10 Commits

Author SHA1 Message Date
Sybren A. Stüvel
a7e7479122 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 15:03:11 +02:00
Sergey Sharybin
8197361f51 Move FFmpeg and QuickTime settings to own structure inside RenderSettings
rather than making all properties have ffmpeg_ and quicktime_ prefixes
2012-01-13 12:34:41 +00:00
Sergey Sharybin
164237b8d5 Fix #29707: Sequencer presets corrupt audio scene settings
Problem was caused by using amount of channels as integer instead of enum
identifiers in preset files.
2011-12-28 12:39:35 +00:00
Joerg Mueller
eb9d591898 * Merging trunk up to r38981.
* Fixing a minor issue in a previous commit.
2011-08-03 12:44:52 +00:00
Campbell Barton
6a37c24115 fix for xvid encoding preset giving a python error 2011-08-02 17:40:27 +00:00
Joerg Mueller
2d3d025e8c 3D Audio GSoC:
- Sequencer dynamics: Now it's possible to change the output channels and the resampling quality also increased (previously maximum quality was 44,1 kHz)
- Changed two buffers to use ffmpeg allocation, not sure if that helps somehow.
2011-06-21 20:39:41 +00:00
Campbell Barton
736a7b7a22 pep8 cleanup 2011-02-04 09:27:25 +00:00
Peter Schlaile
49320e697f Probably bugfix for [#25050] Outputing mpeg (audio in AC3 format) causes
audio to become buggy.

Added sensible audio preset settings for ffmpeg rendering
2010-12-05 16:14:34 +00:00
Campbell Barton
90e1119619 import bpy needed for presets now 2010-07-08 16:10:14 +00:00
Matt Ebb
25a14bad61 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
2010-03-13 00:17:52 +00:00