Skip to main content

Dolby Encoding Engine Wrapper

Project description

builds github_release pypi_release pypi_downloads license
telegram commits open_issues closed_issues
name name name



Dolby Encoding Engine Wrapper

English readmeMagyar leírás

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 Windows 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/AC4 unsupported rates will be converted to 48 kHz
    • for TrueHD unsupported rates will be converted to 48 kHz if source sample rate is lower than 72 kHz, otherwise will be converted to 96 kHz
  • 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 -f dd -b 448 -i input -k
    deew -f dd -b 640 -i input -k
    deew -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
  • parsing delay from filenames

Requirements

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

Dolby Encoding Engine installation

  • install DEE (if you use macOS, install DME)
    • 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 (dee.exe under Windows, dee under Linux/macOS)
  • if DEE throws Failed to load library "...dll". errors when you run deew install VisualCppRedist AIO

deew installation

with standalone build (Windows 7-11/Linux):

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 it will create a config file
  • updating: pip install deew --upgrade

Setup system PATH variable

If you don't want to use full paths for the binaries in your config or when you use them from CLI, I suggest to setup system PATH variables

Windows:

  • open cmd.exe as administrator
  • run a setx /m PATH "%PATH%;[location]" command for each path that contains binaries
    (replace [location] with the path)
  • for example:
setx /m PATH "%PATH%;C:\bin\dee"
setx /m PATH "%PATH%;C:\bin\ffmpeg"

Linux/macOS:

  • add a PATH="[location]:$PATH" line in your ~/.bashrc or ~/.zshrc file for each path that contains a binary
    (replace [location] with the path)
  • for example:
PATH="/usr/local/bin/dee:$PATH"
PATH="/usr/local/bin/ffmpeg:$PATH"

Usage

❯ deew -h
deew 3.2.1

USAGE: deew [-h] [-v] [-i [INPUT ...]] [-ti INDEX] [-o DIRECTORY] [-f FORMAT]
            [-b BITRATE] [-dm CHANNELS] [-d DELAY] [-r DRC] [-dn DIALNORM]
            [-in INSTANCES] [-k] [-mo] [-fs] [-fb] [-lb] [-la] [-np] [-pl]
            [-cl] [-c] [-gc]

FLAGS:
  -h, --help                  show this help message.
  -v, --version               show version.
  -i, --input [INPUT ...]     audio file(s) or folder(s)
  -ti, --track-index INDEX    default: 0
                              select audio track index of input(s)
  -o, --output DIRECTORY      default: current directory
                              specifies output directory
  -f, --format FORMAT         options: dd / ddp / ac4 / thd
                              default: ddp
  -b, --bitrate BITRATE       options: run -lb/--list-bitrates
                              default: run -c/--config
  -dm, --downmix CHANNELS     options: 1 / 2 / 6
                              specifies downmix, only works for DD/DDP
                              DD will be automatically downmixed to 5.1 in case of a 7.1 source
  -d, --delay DELAY           examples: -5.1ms, +1,52s, -24@pal, +10@24000/1001
                              default: 0ms or parsed from filename
                              specifies delay as ms, s or frame@FPS
                              FPS can be a number, division or ntsc / pal
                              you have to specify negative values as -d=-0ms
  -r, --drc DRC               options: film_light / film_standard / music_light / music_standard / speech
                              default: music_light (this is the closest to the missing none preset)
                              specifies drc profile
  -dn, --dialnorm DIALNORM    options: between -31 and 0 (in case of 0 DEE's measurement will be used)
                              default: 0
                              applied dialnorm value between
  -in, --instances INSTANCES  examples: 1, 4, 50%
                              default: 50%
                              specifies how many encodes can run at the same time
                              50% means 4 on a cpu with 8 threads
                              one DEE can use 2 threads so 50% can utilize all threads
                              (this option overrides the config's number)
  -k, --keeptemp              keep temp files
  -mo, --measure-only         kills DEE when the dialnorm gets written to the progress bar
                              this option overrides format with ddp
  -fs, --force-standard       force standard profile for 7.1 DDP encoding (384-1024 kbps)
  -fb, --force-bluray         force bluray profile for 7.1 DDP encoding (768-1664 kbps)
  -lb, --list-bitrates        list 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
  -c, --config                show config and config location(s)
  -gc, --generate-config      generate a new config

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 -in 4 -i S01
encode DD@448 using 4 instances (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

Discussion and Support

https://t.me/deew_support

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-3.2.1.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

deew-3.2.1-py3-none-any.whl (21.5 kB view details)

Uploaded Python 3

File details

Details for the file deew-3.2.1.tar.gz.

File metadata

  • Download URL: deew-3.2.1.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Windows/2022Server

File hashes

Hashes for deew-3.2.1.tar.gz
Algorithm Hash digest
SHA256 33e3c60254de9f26212d1407e1cf4064a1c6f444bd6c06e4eceb96c49fa92e55
MD5 5fefa939d10615283e109635b097083c
BLAKE2b-256 f513292204f5aec290c86a9cb634008cf3747edef0e2fd3622808fc04838b6f2

See more details on using hashes here.

File details

Details for the file deew-3.2.1-py3-none-any.whl.

File metadata

  • Download URL: deew-3.2.1-py3-none-any.whl
  • Upload date:
  • Size: 21.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.1 Windows/2022Server

File hashes

Hashes for deew-3.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 26569447e06673a302f38906c79bd6dff1366d1a5c530f57b41d4a5db0dcc466
MD5 938b80da9dcddad3872f3511d6720ebe
BLAKE2b-256 6eb260e9d92ea96365b0ffc8ada202be829374ad9b6dd9c971afc8fb5464c52b

See more details on using hashes here.

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