- handle
-master
in dee's version string
- add Windows 7 support with custom Python build: https://github.com/adang1345/PythonWin7
- fix #37: Only show basename for already existing intermediate files
- fix
&
in filename by bpoxy
- use custom PyInstaller for less virus flagging
- update
pyproject.toml
andpoetry.lock
- added ac4 to format error message
- fixed
allowed_bitrates
inac4_20
- added AC4 immersive stereo support by MartinEesmaa
- add
dee_audio_filter_ac4_ims.dll
andObject_0000.exe
from the AC4 zip to your DEE installation path and addac4_2_0 = 320
under the[default_bitrates]
section in your config file.
- add
- mono input for TrueHD encoding error handling
- FLAC recommendation prompt for lossless mono/stereo encoding
- remove
-map 0:a:index
fromffmpeg_args
if-filter_complex
is present somewhere in the command, so new ffmpeg versions can be used
- allow new python version to be used
- fixed spaces in paths
(
quote
parameter was not working inwpc()
ifis_wsl
was false)
- added
-ti
/--track-index
- strip delay from output filenames
- fix spelling in override everywhere
- use custom pyinstaller build to avoid anti-viruses going crazy
- fixed unnecessary newlines in argparse
- moved binary version parsing to another place to avoid error
if
binaries
is set to false in config
- removed
m
/p
delay support and updated help to avoid confusion
- fixed version in tool itself
- added
summary_sections
to config - parsing delay from filenames too
- fixed first metavar removal for argparse's
--input
- fixed exception printing in threads
- use a Windows path by default under WSL
- temp path added to the summary
- better instructions on config error
- added additional instance clamping for Windows DEE (6), it seems like you can't do more than 6 even on a 16 thread cpu
- fixed typo in help
- changed default DRC to
music_light
, which is closer to the missingnone
preset: https://forum.doom9.org/showpost.php?p=1972689&postcount=136 - fixed DRC option not being applied for stereo TrueHD encodes
- colorized argparse's help a little bit
- renamed
-t
/--threads
to-in
/--instances
to be more accurate, since one DEE instance can use 2 threads. see-h
for more info
- specified xml encoding as
utf-8
, this fixes errors with weird characters - fixed xml's
os.remove
- revert clamping to
cpu_count() - 2
for Windows DEE
- better thread clamping, the previous
cpu_count() - 2
has been changed tocpu_count()
for Linux/macOS andcpu_count() - 1
for Windows (for some reason you can only run 7 instances of DEE on a cpu with 8 threads)
- added
-c
/--changelog
: show config and config location(s) - added
-gc
/--generate-config
: generate a new config
- fixed help of
--downmix
- updated
-cl
/--changelog
- reversed order
- only print last 10 elements
- print
\
characters properly
- moved logo, help, bitrate and changelog printing to a more appropriate place
- updated
wpc
's path generaration (C:
->C:\
) (drive paths without subfolders couldn't be used before)
- fixed
simplens.pb
- fixed pip
- turned into proper python package
- removed wsl option from config (autosetup with platform and binary type without additional libraries)
- fixed file extension selection when
-fs
/-fb
is used again
- fixed file extension selection when
-fs
/-fb
is used
- fixed
help
of--force-standard
- added
-fs
/--force-standard
and-fb
/--force-bluray
options for DDP 7.1 encoding-fs
is forcing standard profile (384-1024 kbps)-fb
is forcing bluray profile (768-1664 kbps)- without these options deew will prefer standard profile and will pick that if the bitrate isn't higher than standard's max (1024kbps)
- added configurable default bitrates
- added
-lb
,--list-bitrates
- refactor config code
- fix config location search
- readd local config support for standalone builds
- more robust version parsing for summary based on word index
- move
ffmpeg
andffprobe
parsing totry except
- fix
ffprobe
's name in summary
title_style
for the summary to avoid padding being messed up in tmux- added filename sanitizing for xml temp files (for some reason dee can't handle weird characters in the xml's name)
- added proper config location handling with ˙platformdirs˙
- autogenerate config if it's missing
- added build workflows for Github Actions
- added
DEE
,ffmpeg
,ffprobe
versions in the encoding summary - implemented
DEE
version specific progress bar handling, this fixes the bug where the progress bar goes from 0% to 100% during the measuring step and stays there until the encoding step finishes (this happened when DEE version was 5.2.0 or higher)
- proper error handling for missing keys in config
- completely disabled xml validation when DEE's platform is not Windows
- added
-np
/--no-prompt
- colorized argparse
- replaced
multiprocessing
withThreadPoolExecutor
- multiple progress bars for batch encoding
- dee's percentage remapping is removed (reverted to 1.2.8 behaviour)
because the TrueHD encoder works way differently - spinning animation for ffmpeg when length can't be parsed
- removed
TimeRemainingColumn
because it can't be reset,
and it only showed the first step's remaining time
- proper error when
ffprobe
fails - added
-d
/--delay
option- supports ms, s and frame@fps
- value has to start with
m
/-
orp
/+
- fps can be int, float, division or
ntsc
/pal
- examples: -5.1ms, +1,52s, p5s, m5@pal, +10@24000/1001
- added
mono
andstereo
encoding with a warning prompt - added
-dn
/--dialnorm
option with a warning prompt - added
-dm
/--downmix
option - rewrote bitrate and
encoder_mode
selection bluray
encoder_mode
(for bitrates > 1024) works on Linux/Mac now- better encoding summary using
rich.table
- added
show_summary
option to config - shows input/output settings
- shows if a new version is available
- added
- added
threads
option to config- you can overwrite it with -t/--threads.
- the threads number will be clamped between 1 and
cpu_count() - 2
- dialnorm appears in the progress bar when the measuring step is done
- added
-mo
/--measure-only
option- kills DEE when the dialnorm value gets written to the progress bar
- overwrites format with
ddp
if specified
ffmpeg
andDEE
arguments are printed just once with filename placeholders- files that already have an intermediate file will be listed
- you can display the arguments for each file with actual filenames
with
-la
/--long-argument
- standalone exe build
- icon for the project
- fixed variable
- switched
-af
to-filter_complex
for resampling, so channel swapping
and sample rate conversion works at the same time
- disabled
surround_90_degree_phase_shift
DEE
's measure and encoding step's progress has been remapped,
both step goes to 100% now
- set
<surround_3db_attenuation>
tofalse
inthd.xml
- prior to this version deew swapped Ls Rs with Lrs Rrs, now it passes
-filter_complex pan=7.1|c0=c0|c1=c1|c2=c2|c3=c3|c4=c6|c5=c7|c6=c4|c7=c5
to 7.1 sources. - moved ffmpeg args setup out of for loop
- added
-cl
/--changelog
option - better argparse
- added types and improvements by nyuszika7h
- single input encodes shows a per encode progress bar that indicates both
ffmpeg
's temp creation andDEE
's measuring and encoding step - fixed dd multithreading
- better temp folder config:
- empty: next to the script
- relative path: from your current directory
- you can also use fullpath
- in any case will be created automatically if it doesn't exist already
- added check for intermediate file existence, now you can do:
./deew.py -f dd -b 448 -i input -k
./deew.py -f dd -b 640 -i input -k
./deew.py -f ddp -i input
and the intermediate file will only be created once (and removed after the
last encode) - added automatic sample rate conversion with
ffmpeg
'ssoxr
resampler- 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 - command:
-af aresample=resampler=soxr -ar 48000/96000
-precision 28 -cutoff 1 -dither_scale 0
- added alternative config path (
~/.config/deew/config.toml
) to Linux - removed progress option, commands are printed at the same time as the
progress bar appears - added drc option (
film_light
,film_standard
,music_light
,
music_standard
,speech
) - you can now specify invalid bitrates and it will pick the closest
allowed one (-f dd -b 635
-> 640k) - added error for TrueHD encoding with Linux version of
DEE
- all xml files are generated before encoding
- added back logos and logo config
- fixed intermediate file's bit depth to 32 bit if there's resampling involved
- added sample rate, channel count and bit depth parsing for better error
handling and reducing temp file sizes (needsffprobe
)- spits out error for unsupported sample rates and channel counts
- suggests using qaac or opus for mono and stereo
- suggests using DMP or ffmpeg's
-ac 6
/8
and-af "pan=filter"
for
weird surround layouts - suggests using
sox
for sample rate conversion in case of unsupported
sample rates - in a run every input has to have the same channel count, sample rate
and bit depth (because of batch encoding) - grabs bits_per_sample value, if that doesn't exist or if it's 0 grabs
bits_per_raw_sample and if there's no bit depth 32 will be used - any bit depth that is not 16, 24 or 32 will be rounded up to the
nearest value
- changed channel option to mix
- only works with DDP
- DD will be encoded as 5.1 (using
DEE
's downmix in case of a 7.1 source) - up/downmixing is reported at start
- removed dialnorm option
- automatic measurement is better than relying on the input's metadata
DEE
always measures the dialnorm, so there's no speed gain of setting
it manuallydeew
with Linux binaries ofDEE
should work now
- removed logo configuration and option and changed the smallest logo to an
even smaller one - changed config.toml to config.toml.example so it throws an error that it
should be renamed and edited (to avoid user confusion) - added temp path existence check (to avoid user confusion)
- removed magic dependency and added a wsl option to the config instead
- added
-drc_scale 0
in theffmpeg
arg list just in case someone encodes
from a DD/DDP source for whatever reason - small XML option tweaks by cnzqy1