Skip to content

Commit 7436dee

Browse files
Merge pull request #51 from Fiereu/main
Since ffmpeg 7.0 the file size is shown in KiB.
2 parents c0c4787 + e4e2fea commit 7436dee

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

ffmpeg/statistics.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from typing_extensions import Self
99

10-
from ffmpeg.utils import parse_time
10+
from ffmpeg.utils import parse_time, parse_size
1111

1212
# Reference: https://github.com/FFmpeg/FFmpeg/blob/release/6.1/fftools/ffmpeg.c#L496
1313

@@ -16,7 +16,7 @@
1616
_field_factory = {
1717
"frame": int,
1818
"fps": float,
19-
"size": lambda item: int(item.replace("kB", "")) * 1024,
19+
"size": parse_size,
2020
"time": parse_time,
2121
"bitrate": lambda item: float(item.replace("kbits/s", "")),
2222
"speed": lambda item: float(item.replace("x", "")),

ffmpeg/utils.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,14 @@ def parse_time(time: str) -> timedelta:
2121
milliseconds=int(match.group(4)) * 10,
2222
)
2323

24+
# https://github.com/FFmpeg/FFmpeg/blob/d38bf5e08e768722096723b5c8781cd2eb18d070/fftools/ffmpeg.c#L618C53-L618C56
25+
def parse_size(item: str) -> int:
26+
if "kB" in item:
27+
return int(item.replace("kB", "")) * 1024
28+
elif "KiB" in item:
29+
return int(item.replace("KiB", "")) * 1024
30+
else:
31+
raise ValueError(f"Unknown size format: {item}")
2432

2533
def is_windows() -> bool:
2634
return sys.platform == "win32"

0 commit comments

Comments
 (0)