Normalize audio via ffmpeg / avconv
Project description
ffmpeg-normalize
================
ffmpeg script for normalizing audio.
This program normalizes media files to a certain dB level. The default is an
RMS-based normalization where the mean is lifted. Peak normalization is
possible with the ``-m`` option.
It takes any audio or video file as input, and writes the audio part as
output WAV file. The normalized audio can also be merged with the
original.
Requirements:
- Python 2.7 (Python 3 is not supported yet, PRs welcome)
- `ffmpeg` and `ffprobe` from http://ffmpeg.org/ installed in your `$PATH`
Installation::
pip install ffmpeg-normalize
Usage::
ffmpeg-normalize [options] <input-file>...
Options:
- ``-f``, ``--force`` — Force overwriting existing files
- ``-l``, ``--level <level>`` — dB level to normalize to [default: -26]
- ``-p``, ``--prefix <prefix>`` — Prefix for normalized files or output folder name [default:
normalized]
- ``-np``, ``--no-prefix`` — Write output file without prefix (cannot be used when `--dir` is used)
- ``-t``, ``--threshold <threshold>`` — dB threshold below which the
audio will be not adjusted [default: 0.5]
- ``-o``, ``--dir`` — Create an output folder under the input file's directory with the prefix instead of prefixing the
file (does not work if `--no-prefix` is chosen)
- ``-m``, ``--max`` — Normalize to the maximum (peak) volume instead of
RMS
- ``-v``, ``--verbose`` — Enable verbose output
- ``-n``, ``--dry-run`` — Show what would be done, do not convert
- ``-d``, ``--debug`` — Show debug output
- ``-u``, ``--merge`` — Don’t create a separate WAV file but update the
original file. Use in combination with -p to create a copy
- ``-a``, ``--acodec <acodec>`` — Set audio codec for ffmpeg (see
`ffmpeg -encoders`) (will be chosen based on format, default pcm_s16le for WAV)
- ``-r``, ``--format <format>`` – Set format for ffmpeg (see `ffmpeg -formats`) to use for output file [default: wav]
- ``-e``, ``--extra-options <extra-options>`` — Set extra options
passed to ffmpeg (e.g. “-b:a 192k” to set audio bitrate)
Examples::
Normalize a file and write to `normalized-file.wav`:
ffmpeg-normalize -v file.mp3
ffmpeg-normalize --verbose *.avi
Normalize a number of AVI files and write to `normalized-<file>.wav`:
ffmpeg-normalize -v *.avi
ffmpeg-normalize --verbose *.avi
Normalize a number of MP4 files to -5 dB peak volume and merge the audio stream back into the MP4 files, in a new directory called `normalized`:
ffmpeg-normalize -vuofm -l -5 *.mp4
ffmpeg-normalize --verbose --merge --dir --force --max --level -5 *.mp4
Normalize a number of MKV files and merge the audio back in using the `libfdk_aac` encoder with 192 kBit/s CBR:
ffmpeg-normalize -vu -a libfdk_aac -e "-b:a 192k" *.mkv
ffmpeg-normalize --verbose --merge --acodec libfdk_aac --extra-options "-b:a 192k" *.mkv
History
-------
0.4 (2017-01-24)
__________________
* Cleanup in code, make it class-based
* Drop avconv support, it was never good anyway
* Add support for specifying codec for non-merging operations
* Add support for specifying output format
* README improvements
0.3 (2017-01-19)
__________________
* Add option to remove prefix
0.2.4 (2016-10-27)
__________________
* Fixed issue where multiple spaces were collapsed into one
0.2.3 (2016-02-12)
__________________
* Fixed issue where ffmpeg could not be found if path included spaces
0.2.2 (2016-02-09)
__________________
* Change default level back to -26
0.2.1 (2016-02-08)
__________________
* Documentation fixes
0.2.0 (2016-02-08)
__________________
* Support multiple input files
* Allow merging with input file instead of creating separate WAV
* Write to directory instead of using prefix
* Set the audio codec when merging
* Set additional encoder or ffmpeg options
Note: avconv support is very limited, use the real ffmpeg from http://ffmpeg.org/ instead.
0.1.3 (2015-12-15)
__________________
* Bugfix for detecting ffmpeg or avconv on Windows (as .exe)
* Add version to Usage message
* Update year
0.1.2 (2015-11-13)
__________________
* Bugfix for missing ffmpeg or avconv
0.1.0 (2015-08-01)
__________________
* First release, changing name to ffmpeg-normalize
================
ffmpeg script for normalizing audio.
This program normalizes media files to a certain dB level. The default is an
RMS-based normalization where the mean is lifted. Peak normalization is
possible with the ``-m`` option.
It takes any audio or video file as input, and writes the audio part as
output WAV file. The normalized audio can also be merged with the
original.
Requirements:
- Python 2.7 (Python 3 is not supported yet, PRs welcome)
- `ffmpeg` and `ffprobe` from http://ffmpeg.org/ installed in your `$PATH`
Installation::
pip install ffmpeg-normalize
Usage::
ffmpeg-normalize [options] <input-file>...
Options:
- ``-f``, ``--force`` — Force overwriting existing files
- ``-l``, ``--level <level>`` — dB level to normalize to [default: -26]
- ``-p``, ``--prefix <prefix>`` — Prefix for normalized files or output folder name [default:
normalized]
- ``-np``, ``--no-prefix`` — Write output file without prefix (cannot be used when `--dir` is used)
- ``-t``, ``--threshold <threshold>`` — dB threshold below which the
audio will be not adjusted [default: 0.5]
- ``-o``, ``--dir`` — Create an output folder under the input file's directory with the prefix instead of prefixing the
file (does not work if `--no-prefix` is chosen)
- ``-m``, ``--max`` — Normalize to the maximum (peak) volume instead of
RMS
- ``-v``, ``--verbose`` — Enable verbose output
- ``-n``, ``--dry-run`` — Show what would be done, do not convert
- ``-d``, ``--debug`` — Show debug output
- ``-u``, ``--merge`` — Don’t create a separate WAV file but update the
original file. Use in combination with -p to create a copy
- ``-a``, ``--acodec <acodec>`` — Set audio codec for ffmpeg (see
`ffmpeg -encoders`) (will be chosen based on format, default pcm_s16le for WAV)
- ``-r``, ``--format <format>`` – Set format for ffmpeg (see `ffmpeg -formats`) to use for output file [default: wav]
- ``-e``, ``--extra-options <extra-options>`` — Set extra options
passed to ffmpeg (e.g. “-b:a 192k” to set audio bitrate)
Examples::
Normalize a file and write to `normalized-file.wav`:
ffmpeg-normalize -v file.mp3
ffmpeg-normalize --verbose *.avi
Normalize a number of AVI files and write to `normalized-<file>.wav`:
ffmpeg-normalize -v *.avi
ffmpeg-normalize --verbose *.avi
Normalize a number of MP4 files to -5 dB peak volume and merge the audio stream back into the MP4 files, in a new directory called `normalized`:
ffmpeg-normalize -vuofm -l -5 *.mp4
ffmpeg-normalize --verbose --merge --dir --force --max --level -5 *.mp4
Normalize a number of MKV files and merge the audio back in using the `libfdk_aac` encoder with 192 kBit/s CBR:
ffmpeg-normalize -vu -a libfdk_aac -e "-b:a 192k" *.mkv
ffmpeg-normalize --verbose --merge --acodec libfdk_aac --extra-options "-b:a 192k" *.mkv
History
-------
0.4 (2017-01-24)
__________________
* Cleanup in code, make it class-based
* Drop avconv support, it was never good anyway
* Add support for specifying codec for non-merging operations
* Add support for specifying output format
* README improvements
0.3 (2017-01-19)
__________________
* Add option to remove prefix
0.2.4 (2016-10-27)
__________________
* Fixed issue where multiple spaces were collapsed into one
0.2.3 (2016-02-12)
__________________
* Fixed issue where ffmpeg could not be found if path included spaces
0.2.2 (2016-02-09)
__________________
* Change default level back to -26
0.2.1 (2016-02-08)
__________________
* Documentation fixes
0.2.0 (2016-02-08)
__________________
* Support multiple input files
* Allow merging with input file instead of creating separate WAV
* Write to directory instead of using prefix
* Set the audio codec when merging
* Set additional encoder or ffmpeg options
Note: avconv support is very limited, use the real ffmpeg from http://ffmpeg.org/ instead.
0.1.3 (2015-12-15)
__________________
* Bugfix for detecting ffmpeg or avconv on Windows (as .exe)
* Add version to Usage message
* Update year
0.1.2 (2015-11-13)
__________________
* Bugfix for missing ffmpeg or avconv
0.1.0 (2015-08-01)
__________________
* First release, changing name to ffmpeg-normalize
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ffmpeg-normalize-0.4.0.tar.gz
(7.7 kB
view hashes)