ffmpeg-normalize 1.31.0__tar.gz → 1.31.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/CHANGELOG.md +14 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/PKG-INFO +15 -1
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize/__main__.py +1 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize/_ffmpeg_normalize.py +3 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize/_media_file.py +29 -13
- ffmpeg_normalize-1.31.2/ffmpeg_normalize/_version.py +1 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize.egg-info/PKG-INFO +15 -1
- ffmpeg_normalize-1.31.0/ffmpeg_normalize/_version.py +0 -1
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/LICENSE +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/README.md +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize/__init__.py +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize/_cmd_utils.py +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize/_errors.py +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize/_logger.py +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize/_streams.py +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize/py.typed +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize.egg-info/SOURCES.txt +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize.egg-info/dependency_links.txt +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize.egg-info/entry_points.txt +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize.egg-info/not-zip-safe +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize.egg-info/requires.txt +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize.egg-info/top_level.txt +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/setup.cfg +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/setup.py +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/test/out.mp4 +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/test/test.mp4 +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/test/test.py +0 -0
- {ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/test/test.wav +0 -0
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v1.31.2 (2025-03-19)
|
|
5
|
+
|
|
6
|
+
* Fix: special handling of /dev/null.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## v1.31.1 (2025-02-19)
|
|
10
|
+
|
|
11
|
+
* Fix bitrate setting for libvorbis, fixes #277.
|
|
12
|
+
|
|
13
|
+
* Update issue templates.
|
|
14
|
+
|
|
15
|
+
* Prevent blank issues.
|
|
16
|
+
|
|
17
|
+
|
|
4
18
|
## v1.31.0 (2024-12-15)
|
|
5
19
|
|
|
6
20
|
* Update docs and completions.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ffmpeg_normalize
|
|
3
|
-
Version: 1.31.
|
|
3
|
+
Version: 1.31.2
|
|
4
4
|
Summary: Normalize audio via ffmpeg
|
|
5
5
|
Home-page: https://github.com/slhck/ffmpeg-normalize
|
|
6
6
|
Author: Werner Robitza
|
|
@@ -667,6 +667,20 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
667
667
|
# Changelog
|
|
668
668
|
|
|
669
669
|
|
|
670
|
+
## v1.31.2 (2025-03-19)
|
|
671
|
+
|
|
672
|
+
* Fix: special handling of /dev/null.
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
## v1.31.1 (2025-02-19)
|
|
676
|
+
|
|
677
|
+
* Fix bitrate setting for libvorbis, fixes #277.
|
|
678
|
+
|
|
679
|
+
* Update issue templates.
|
|
680
|
+
|
|
681
|
+
* Prevent blank issues.
|
|
682
|
+
|
|
683
|
+
|
|
670
684
|
## v1.31.0 (2024-12-15)
|
|
671
685
|
|
|
672
686
|
* Update docs and completions.
|
|
@@ -559,6 +559,7 @@ def main() -> None:
|
|
|
559
559
|
extra_input_options=extra_input_options,
|
|
560
560
|
extra_output_options=extra_output_options,
|
|
561
561
|
output_format=cli_args.output_format,
|
|
562
|
+
extension=cli_args.extension,
|
|
562
563
|
dry_run=cli_args.dry_run,
|
|
563
564
|
progress=cli_args.progress,
|
|
564
565
|
)
|
|
@@ -79,6 +79,7 @@ class FFmpegNormalize:
|
|
|
79
79
|
extra_input_options (list, optional): Extra input options. Defaults to None.
|
|
80
80
|
extra_output_options (list, optional): Extra output options. Defaults to None.
|
|
81
81
|
output_format (str, optional): Output format. Defaults to None.
|
|
82
|
+
extension (str, optional): Output file extension to use for output files that were not explicitly specified. Defaults to "mkv".
|
|
82
83
|
dry_run (bool, optional): Dry run. Defaults to False.
|
|
83
84
|
debug (bool, optional): Debug. Defaults to False.
|
|
84
85
|
progress (bool, optional): Progress. Defaults to False.
|
|
@@ -117,6 +118,7 @@ class FFmpegNormalize:
|
|
|
117
118
|
extra_input_options: list[str] | None = None,
|
|
118
119
|
extra_output_options: list[str] | None = None,
|
|
119
120
|
output_format: str | None = None,
|
|
121
|
+
extension: str = "mkv",
|
|
120
122
|
dry_run: bool = False,
|
|
121
123
|
debug: bool = False,
|
|
122
124
|
progress: bool = False,
|
|
@@ -197,6 +199,7 @@ class FFmpegNormalize:
|
|
|
197
199
|
self.post_filter = post_filter
|
|
198
200
|
|
|
199
201
|
self.output_format = output_format
|
|
202
|
+
self.extension = extension
|
|
200
203
|
self.dry_run = dry_run
|
|
201
204
|
self.debug = debug
|
|
202
205
|
self.progress = progress
|
|
@@ -67,7 +67,12 @@ class MediaFile:
|
|
|
67
67
|
self.skip = False
|
|
68
68
|
self.input_file = input_file
|
|
69
69
|
self.output_file = output_file
|
|
70
|
-
|
|
70
|
+
current_ext = os.path.splitext(output_file)[1][1:]
|
|
71
|
+
# we need to check if it's empty, e.g. /dev/null or NUL
|
|
72
|
+
if current_ext == "" or self.output_file == NUL:
|
|
73
|
+
self.output_ext = self.ffmpeg_normalize.extension
|
|
74
|
+
else:
|
|
75
|
+
self.output_ext = current_ext
|
|
71
76
|
self.streams: StreamDict = {"audio": {}, "video": {}, "subtitle": {}}
|
|
72
77
|
|
|
73
78
|
self.parse_streams()
|
|
@@ -177,8 +182,7 @@ class MediaFile:
|
|
|
177
182
|
and len(self.streams["audio"].values()) > 1
|
|
178
183
|
):
|
|
179
184
|
_logger.warning(
|
|
180
|
-
"Output file only supports one stream. "
|
|
181
|
-
"Keeping only first audio stream."
|
|
185
|
+
"Output file only supports one stream. Keeping only first audio stream."
|
|
182
186
|
)
|
|
183
187
|
first_stream = list(self.streams["audio"].values())[0]
|
|
184
188
|
self.streams["audio"] = {first_stream.stream_id: first_stream}
|
|
@@ -390,7 +394,12 @@ class MediaFile:
|
|
|
390
394
|
|
|
391
395
|
# other audio options (if any)
|
|
392
396
|
if self.ffmpeg_normalize.audio_bitrate:
|
|
393
|
-
|
|
397
|
+
if self.ffmpeg_normalize.audio_codec == "libvorbis":
|
|
398
|
+
# libvorbis takes just a "-b" option, for some reason
|
|
399
|
+
# https://github.com/slhck/ffmpeg-normalize/issues/277
|
|
400
|
+
cmd.extend(["-b", str(self.ffmpeg_normalize.audio_bitrate)])
|
|
401
|
+
else:
|
|
402
|
+
cmd.extend(["-b:a", str(self.ffmpeg_normalize.audio_bitrate)])
|
|
394
403
|
if self.ffmpeg_normalize.sample_rate:
|
|
395
404
|
cmd.extend(["-ar", str(self.ffmpeg_normalize.sample_rate)])
|
|
396
405
|
if self.ffmpeg_normalize.audio_channels:
|
|
@@ -420,13 +429,18 @@ class MediaFile:
|
|
|
420
429
|
# if dry run, only show sample command
|
|
421
430
|
if self.ffmpeg_normalize.dry_run:
|
|
422
431
|
cmd.append(self.output_file)
|
|
432
|
+
_logger.warning("Dry run used, not actually running second-pass command")
|
|
423
433
|
CommandRunner(dry=True).run_command(cmd)
|
|
424
434
|
yield 100
|
|
425
435
|
return
|
|
426
436
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
437
|
+
# special case: if output is a null device, write directly to it
|
|
438
|
+
if self.output_file == NUL:
|
|
439
|
+
cmd.append(self.output_file)
|
|
440
|
+
else:
|
|
441
|
+
temp_dir = mkdtemp()
|
|
442
|
+
temp_file = os.path.join(temp_dir, f"out.{self.output_ext}")
|
|
443
|
+
cmd.append(temp_file)
|
|
430
444
|
|
|
431
445
|
cmd_runner = CommandRunner()
|
|
432
446
|
try:
|
|
@@ -438,13 +452,15 @@ class MediaFile:
|
|
|
438
452
|
)
|
|
439
453
|
raise e
|
|
440
454
|
else:
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
455
|
+
if self.output_file != NUL:
|
|
456
|
+
_logger.debug(
|
|
457
|
+
f"Moving temporary file from {temp_file} to {self.output_file}"
|
|
458
|
+
)
|
|
459
|
+
move(temp_file, self.output_file)
|
|
460
|
+
rmtree(temp_dir, ignore_errors=True)
|
|
446
461
|
except Exception as e:
|
|
447
|
-
|
|
462
|
+
if self.output_file != NUL:
|
|
463
|
+
rmtree(temp_dir, ignore_errors=True)
|
|
448
464
|
raise e
|
|
449
465
|
|
|
450
466
|
output = cmd_runner.get_output()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "1.31.2"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ffmpeg-normalize
|
|
3
|
-
Version: 1.31.
|
|
3
|
+
Version: 1.31.2
|
|
4
4
|
Summary: Normalize audio via ffmpeg
|
|
5
5
|
Home-page: https://github.com/slhck/ffmpeg-normalize
|
|
6
6
|
Author: Werner Robitza
|
|
@@ -667,6 +667,20 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
|
667
667
|
# Changelog
|
|
668
668
|
|
|
669
669
|
|
|
670
|
+
## v1.31.2 (2025-03-19)
|
|
671
|
+
|
|
672
|
+
* Fix: special handling of /dev/null.
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
## v1.31.1 (2025-02-19)
|
|
676
|
+
|
|
677
|
+
* Fix bitrate setting for libvorbis, fixes #277.
|
|
678
|
+
|
|
679
|
+
* Update issue templates.
|
|
680
|
+
|
|
681
|
+
* Prevent blank issues.
|
|
682
|
+
|
|
683
|
+
|
|
670
684
|
## v1.31.0 (2024-12-15)
|
|
671
685
|
|
|
672
686
|
* Update docs and completions.
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "1.31.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ffmpeg_normalize-1.31.0 → ffmpeg_normalize-1.31.2}/ffmpeg_normalize.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|