Skip to main content

Dolby Encoding Engine Wrapper

Project description

builds github_release pypi_release license
telegram commits issues
name name name



Dolby Encoding Engine Wrapper

DDP encoding has never been so easy!

img

Description

  • handles Dolby's XML input fuckery in the background, giving you a proper CLI interface
  • converts inputs to rf64 which DEE can use
    • bit depth, number of channels and other infos are parsed from the source
  • an XML file will be generated for each input based on the settings
  • the script utilizes thread pooling for batch encoding (see config)
  • supports WSL path conversion for the Win version of DEE (see config)
  • in case of an invalid bitrate it will pick the closest allowed one
  • automatic sample rate conversion using ffmpeg's soxr resampler in case of an unsupported sample rate
    • for dd/ddp unsupported rates will be converted to 48000
    • for thd unsupported rates will be converted to 48000 if source sample rate is lower than 72000, otherwise will be converted to 96000
  • automatic channel swapping for 7.1 sources (DEE swaps Ls Rs with Lrs Rrs for some reason)
  • automatic dialnorm setting
  • automatically compensates for DEE's 256 sample delay (DD and DDP encoding)
  • checks if intermediate file is already created so you can encode different formats/bitrates using a single intermediate file, for example:
    ./deew.py -f dd -b 448 -i input -k
    ./deew.py -f dd -b 640 -i input -k
    ./deew.py -f ddp -i input
  • works even with video inputs (first audio will be selected)
  • fancy terminal output using rich
  • versatile delay option that supports ms, s and also frame@fps formats

Requirements

  • Python (you don't need it if you use a standlone build of deew)
  • ffmpeg
  • ffprobe
  • Dolby Encoding Engine

Dolby Encoding Engine installation

  • install your DEE
    • for TrueHD encoding support you need the Windows version.
    • if you use WSL1 use the Windows version for better performance.
    • if you use the Windows version of DEE under Linux (and not from WSL) / macOS install wine-binfmt
  • place your license.lic file next to the DEE binary

deew installation

with standalone build (Windows / Linux)

deew
  • on the first run deew will create a config file, choose where you want to keep it (run the binary from terminal, doubleclicking it won't work)

with Python environment (Windows / Linux / macOS)

  • install python and pip if you don't have it already
  • run pip install deew
  • run with:
deew
  • on the first run deew will create a config file

Usage

❯ ./deew.py -h
deew 2.3.0

USAGE: deew [-h] [-v] [-i [INPUT ...]] [-o OUTPUT] [-f FORMAT] [-b BITRATE]
            [-dm DOWNMIX] [-d DELAY] [-drc DRC] [-dn DIALNORM] [-t THREADS]
            [-k] [-mo] [-fs] [-fb] [-lb] [-la] [-np] [-pl] [-cl]

FLAGS:
  -h, --help                           show this help message.
  -v, --version                        show version.
  -i [INPUT ...], --input [INPUT ...]  audio file(s) or folder(s)
  -o OUTPUT, --output OUTPUT           output directory
                                       default: current directory
  -f FORMAT, --format FORMAT           dd / ddp / thd
                                       default: ddp
  -b BITRATE, --bitrate BITRATE        defaults: see config
  -dm DOWNMIX, --downmix DOWNMIX       1 / 2 / 6
                                       specifies down/upmix, only works for DD/DDP
                                       DD will be automatically downmixed to 5.1 in case of a 7.1 source
  -d DELAY, --delay DELAY              specifies delay as ms, s or frame@FPS
                                       FPS can be a number, division or ntsc / pal
                                       + / - can also be defined as p / m
                                       examples: -5.1ms, +1,52s, p5s, m5@pal, +10@24000/1001
                                       default: 0ms
  -drc DRC                             film_light / film_standard / music_light / music_standard / speech
                                       drc profile
                                       default: film_light
  -dn DIALNORM, --dialnorm DIALNORM    applied dialnorm value between -31 and 0
                                       0 means auto (DEE's measurement will be used)
                                       default: 0
  -t THREADS, --threads THREADS        number of threads to use, only works for batch encoding,
                                       individial encodes can't be parallelized
                                       default: all threads-1
  -k, --keeptemp                       keep temp files
  -mo, --measure-only                  kills DEE when the dialnorm gets written to the progress bar
                                       this option overwrites format with ddp
  -fs, --force-standard                forces standard profile for 7.1 DDP encoding (384-1024 kbps)
  -fb, --force-bluray                  forces bluray profile for 7.1 DDP encoding (768-1664 kbps)
  -lb, --list-bitrates                 lists bitrates that DEE can do for DD and DDP encoding
  -la, --long-argument                 print ffmpeg and DEE arguments for each input
  -np, --no-prompt                     disables prompt
  -pl, --print-logos                   show all logo variants you can set in the config
  -cl, --changelog                     show changelog

Examples

deew -i *thd
encode DDP

deew -b 768 -i *flac
encode DDP@768

deew -dm 2 -f dd -b 192 -i *.ec3
encode DD@192 with stereo downmixing

deew -f dd -b 448 -t 4 -i S01
encode DD@448 using 4 threads (input is a folder)

deew -f thd -i *w64
encode TrueHD

deew -f dd -i *dts -k
deew -f ddp -i *dts
encode multiple formats/bitrates while creating the temp file only once

Support

https://t.me/deew_support
(You can ask for help in this group.)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deew-2.3.3.tar.gz (19.0 kB view hashes)

Uploaded Source

Built Distribution

deew-2.3.3-py3-none-any.whl (18.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page