Skip to content

Commit

Permalink
fix: only add read_intervals option if needed
Browse files Browse the repository at this point in the history
  • Loading branch information
slhck committed Nov 14, 2024
1 parent 28b2bdd commit 02683ac
Showing 1 changed file with 22 additions and 14 deletions.
36 changes: 22 additions & 14 deletions ffmpeg_bitrate_stats/bitrate_stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,12 @@ def __init__(
raise ValueError("Chunk size must be greater than 0")
self.chunk_size = chunk_size

self.read_length = "{}%{}".format(
f"+{read_start}" if read_start else "",
f"+{read_duration}" if read_duration else "",
)
self.read_length: Optional[str] = None
if read_start or read_duration:
self.read_length = "{}%{}".format(
f"+{read_start}" if read_start else "",
f"+{read_duration}" if read_duration else "",
)

self.dry_run = dry_run

Expand Down Expand Up @@ -197,23 +199,29 @@ def _calculate_frame_sizes(self) -> list[FrameEntry]:
"""
logger.debug(f"Calculating frame size from {self.input_file}")

cmd = [
base_cmd = [
"ffprobe",
"-loglevel",
"error",
"-select_streams",
self.stream_type[0] + ":0",
"-read_intervals",
self.read_length,
"-show_packets",
"-show_entries",
"packet=pts_time,dts_time,duration_time,size,flags",
"-of",
"json",
self.input_file,
]

stdout, _ = run_command(cmd, self.dry_run)
if self.read_length:
base_cmd.extend(["-read_intervals", self.read_length])

base_cmd.extend(
[
"-show_packets",
"-show_entries",
"packet=pts_time,dts_time,duration_time,size,flags",
"-of",
"json",
self.input_file,
]
)

stdout, _ = run_command(base_cmd, self.dry_run)
if self.dry_run or stdout is None:
logger.error("Aborting prematurely, dry-run specified or stdout was empty")
sys.exit(0)
Expand Down

0 comments on commit 02683ac

Please sign in to comment.