Skip to content

Commit cc81dd4

Browse files
committed
Support progress when encoding audio
1 parent 31343fb commit cc81dd4

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

ffmpeg/statistics.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,11 @@ class Statistics:
3535
@classmethod
3636
def from_line(cls, line: str) -> Optional[Self]:
3737
statistics = {key: value for key, value in _pattern.findall(line)}
38-
if len(statistics) != len(_field_factory):
38+
if len(statistics) < 4:
39+
# When a media type is audio,FFmpeg reports the below statistics
40+
# - size, time, bitrate, speed
41+
# When a media type is video, FFmpeg reports the below statistics
42+
# - frame, fps, size, time, bitrate, speed
3943
return None
4044

4145
fields = {key: _field_factory[key](value) for key, value in statistics.items() if value != "N/A"}

tests/test_statistics.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@
44

55

66
def test_statistics():
7+
assert Statistics.from_line(
8+
"size= 243kB time=00:01:01.47 bitrate= 32.4kbits/s speed= 123x",
9+
) == Statistics(
10+
frame=0,
11+
fps=0.0,
12+
size=243 * 1024,
13+
time=timedelta(minutes=1, seconds=1, microseconds=470000),
14+
bitrate=32.4,
15+
speed=123,
16+
)
17+
718
assert Statistics.from_line(
819
"frame= 0 fps=0.0 q=0.0 size= 0kB time=00:00:00.33 bitrate= 1.1kbits/s speed=22.8x",
920
) == Statistics(

0 commit comments

Comments
 (0)