diff --git a/CHANGELOG.md b/CHANGELOG.md index fc22363..66c0d65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,41 @@ # Changelog +## v1.1.0 (2023-08-16) + +* Document inaccurate read-duration. + +* --read-length CLI option + some code suggestions (#11) + + * Added --read-length CLI option + + * Removed additional round for duration + - duration is rounded at calculation & when creating BitrateStatsSummary + + * Edited logging in run_command function + - removed verbose input parameter + - added debug level log + + * fix first packet's pts bug with --read-length + - calculates pts from next packet if value is missing + + * minor code touchups + + * Replaced read-length with read-start & read-end + + * fix read-duration type and add to README + + * fix first packet's duration bug + - occurs with --read-duration) + + * edited for test case + - added check for 1st packet's duration type + + --------- + +* Fix tests. + + ## v1.0.2 (2023-07-25) * Do not output chunk size when aggregation is GOP-based. diff --git a/docs/ffmpeg_bitrate_stats.html b/docs/ffmpeg_bitrate_stats.html index 3fcaea6..5fcf7fa 100644 --- a/docs/ffmpeg_bitrate_stats.html +++ b/docs/ffmpeg_bitrate_stats.html @@ -118,7 +118,7 @@

1from .bitrate_stats import BitrateStats, BitrateStatsSummary, run_command
 2
-3__version__ = "1.0.2"
+3__version__ = "1.1.0"
 4
 5__all__ = ["BitrateStats", "BitrateStatsSummary", "run_command"]
 
@@ -136,419 +136,444 @@

-
107class BitrateStats:
-108    """
-109    Initialize the BitrateStats class.
-110
-111    Args:
-112        input_file (str): Path to the input file
-113        stream_type (str, optional): Stream type (audio/video). Defaults to "video".
-114        aggregation (str, optional): Aggregation type (time/gop). Defaults to "time".
-115        chunk_size (int, optional): Chunk size. Defaults to 1.
-116        dry_run (bool, optional): Dry run. Defaults to False.
-117    """
-118
-119    def __init__(
-120        self,
-121        input_file: str,
-122        stream_type: StreamType = "video",
-123        aggregation: Aggregation = "time",
-124        chunk_size: int = 1,
-125        dry_run: bool = False,
-126    ):
-127        self.input_file = input_file
-128
-129        if stream_type not in ["audio", "video"]:
-130            raise ValueError("Stream type must be audio/video")
-131        self.stream_type: StreamType = stream_type
-132
-133        if aggregation not in ["time", "gop"]:
-134            raise ValueError("Wrong aggregation type")
-135        if aggregation == "gop" and stream_type == "audio":
-136            raise ValueError("GOP aggregation for audio does not make sense")
-137        self.aggregation: Aggregation = aggregation
-138
-139        if chunk_size and chunk_size < 0:
-140            raise ValueError("Chunk size must be greater than 0")
-141        self.chunk_size = chunk_size
-142
-143        self.dry_run = dry_run
-144
-145        self.duration: float = 0
-146        self.fps: float = 0
-147        self.max_bitrate: float = 0
-148        self.min_bitrate: float = 0
-149        self.moving_avg_bitrate: list[float] = []
-150        self.frames: list[FrameEntry] = []
-151        self.bitrate_stats: BitrateStatsSummary | None = None
-152
-153        self.rounding_factor: int = 3
+            
110class BitrateStats:
+111    """
+112    Initialize the BitrateStats class.
+113
+114    Args:
+115        input_file (str): Path to the input file
+116        stream_type (str, optional): Stream type (audio/video). Defaults to "video".
+117        aggregation (str, optional): Aggregation type (time/gop). Defaults to "time".
+118        chunk_size (int, optional): Chunk size. Defaults to 1.
+119        read_start (str, optional): Start time for reading in HH:MM:SS.msec or seconds. Defaults to None.
+120        read_duration (str, optional): Duration for reading in HH:MM:SS.msec or seconds. Defaults to None.
+121        dry_run (bool, optional): Dry run. Defaults to False.
+122    """
+123
+124    def __init__(
+125        self,
+126        input_file: str,
+127        stream_type: StreamType = "video",
+128        aggregation: Aggregation = "time",
+129        chunk_size: int = 1,
+130        read_start: Optional[str] = None,
+131        read_duration: Optional[str] = None,
+132        dry_run: bool = False,
+133    ):
+134        self.input_file = input_file
+135
+136        if stream_type not in ["audio", "video"]:
+137            raise ValueError("Stream type must be audio/video")
+138        self.stream_type: StreamType = stream_type
+139
+140        if aggregation not in ["time", "gop"]:
+141            raise ValueError("Wrong aggregation type")
+142        if aggregation == "gop" and stream_type == "audio":
+143            raise ValueError("GOP aggregation for audio does not make sense")
+144        self.aggregation: Aggregation = aggregation
+145
+146        if chunk_size and chunk_size < 0:
+147            raise ValueError("Chunk size must be greater than 0")
+148        self.chunk_size = chunk_size
+149
+150        self.read_length = "{}%{}".format(
+151            f"+{read_start}" if read_start else "",
+152            f"+{read_duration}" if read_duration else "",
+153        )
 154
-155        self._gop_start_times: Optional[list[float]] = None
-156        self._chunks: list[float] = []
-157
-158    def calculate_statistics(self) -> BitrateStatsSummary:
-159        """
-160        Calculate the bitrate statistics.
-161
-162        Raises:
-163            RuntimeError: If an error occurred.
+155        self.dry_run = dry_run
+156
+157        self.duration: float = 0
+158        self.fps: float = 0
+159        self.max_bitrate: float = 0
+160        self.min_bitrate: float = 0
+161        self.moving_avg_bitrate: list[float] = []
+162        self.frames: list[FrameEntry] = []
+163        self.bitrate_stats: BitrateStatsSummary | None = None
 164
-165        Returns:
-166            dict: The bitrate statistics summary.
-167        """
-168        self._calculate_frame_sizes()
-169        self._calculate_duration()
-170        self._calculate_fps()
-171        self._calculate_max_min_bitrate()
-172        self._assemble_bitrate_statistics()
+165        self.rounding_factor: int = 3
+166
+167        self._gop_start_times: Optional[list[float]] = None
+168        self._chunks: list[float] = []
+169
+170    def calculate_statistics(self) -> BitrateStatsSummary:
+171        """
+172        Calculate the bitrate statistics.
 173
-174        if self.bitrate_stats is None:
-175            raise RuntimeError("bitrate_stats is None, should not happen")
+174        Raises:
+175            RuntimeError: If an error occurred.
 176
-177        return self.bitrate_stats
-178
-179    def _calculate_frame_sizes(self) -> list[FrameEntry]:
-180        """
-181        Get the frame sizes via ffprobe using the -show_packets option.
-182        This includes the NAL headers, of course.
-183
-184        Returns:
-185            list[dict]: The frame sizes plus some extra info.
-186        """
-187        logger.debug(f"Calculating frame size from {self.input_file}")
+177        Returns:
+178            dict: The bitrate statistics summary.
+179        """
+180        self._calculate_frame_sizes()
+181        self._calculate_duration()
+182        self._calculate_fps()
+183        self._calculate_max_min_bitrate()
+184        self._assemble_bitrate_statistics()
+185
+186        if self.bitrate_stats is None:
+187            raise RuntimeError("bitrate_stats is None, should not happen")
 188
-189        cmd = [
-190            "ffprobe",
-191            "-loglevel",
-192            "error",
-193            "-select_streams",
-194            self.stream_type[0] + ":0",
-195            "-show_packets",
-196            "-show_entries",
-197            "packet=pts_time,dts_time,duration_time,size,flags",
-198            "-of",
-199            "json",
-200            self.input_file,
-201        ]
-202
-203        stdout, _ = run_command(cmd, self.dry_run)
-204        if self.dry_run or stdout is None:
-205            logger.error("Aborting prematurely, dry-run specified or stdout was empty")
-206            sys.exit(0)
-207
-208        info = json.loads(stdout)["packets"]
-209
-210        ret: list[FrameEntry] = []
-211        idx = 1
-212
-213        default_duration = next(
-214            (x["duration_time"] for x in info if "duration_time" in x.keys()), "NaN"
-215        )
+189        return self.bitrate_stats
+190
+191    def _calculate_frame_sizes(self) -> list[FrameEntry]:
+192        """
+193        Get the frame sizes via ffprobe using the -show_packets option.
+194        This includes the NAL headers, of course.
+195
+196        Returns:
+197            list[dict]: The frame sizes plus some extra info.
+198        """
+199        logger.debug(f"Calculating frame size from {self.input_file}")
+200
+201        cmd = [
+202            "ffprobe",
+203            "-loglevel",
+204            "error",
+205            "-select_streams",
+206            self.stream_type[0] + ":0",
+207            "-read_intervals",
+208            self.read_length,
+209            "-show_packets",
+210            "-show_entries",
+211            "packet=pts_time,dts_time,duration_time,size,flags",
+212            "-of",
+213            "json",
+214            self.input_file,
+215        ]
 216
-217        for packet_info in info:
-218            frame_type: Literal["I", "Non-I"] = (
-219                # key frames are marked with a capital K (K_ or K__) in packet flags
-220                "I"
-221                if "K" in packet_info["flags"]
-222                else "Non-I"
-223            )
-224
-225            pts: float | Literal["NaN"] = (
-226                float(packet_info["pts_time"])
-227                if "pts_time" in packet_info.keys()
-228                else "NaN"
-229            )
+217        stdout, _ = run_command(cmd, self.dry_run)
+218        if self.dry_run or stdout is None:
+219            logger.error("Aborting prematurely, dry-run specified or stdout was empty")
+220            sys.exit(0)
+221
+222        info = json.loads(stdout)["packets"]
+223
+224        ret: list[FrameEntry] = []
+225        idx = 1
+226
+227        default_duration = next(
+228            (x["duration_time"] for x in info if "duration_time" in x.keys()), "NaN"
+229        )
 230
-231            duration: float | Literal["NaN"] = (
-232                float(packet_info["duration_time"])
-233                if "duration_time" in packet_info.keys()
-234                else float(default_duration)
-235                if default_duration != "NaN"
-236                else "NaN"
+231        for packet_info in info:
+232            frame_type: Literal["I", "Non-I"] = (
+233                # key frames are marked with a capital K (K_ or K__) in packet flags
+234                "I"
+235                if "K" in packet_info["flags"]
+236                else "Non-I"
 237            )
 238
-239            ret.append(
-240                {
-241                    "n": idx,
-242                    "frame_type": frame_type,
-243                    "pts": pts,
-244                    "size": int(packet_info["size"]),
-245                    "duration": duration,
-246                }
-247            )
-248            idx += 1
-249
-250        # fix for missing durations, estimate it via PTS
-251        if default_duration == "NaN":
-252            ret = self._fix_durations(ret)
-253
-254        self.frames = ret
-255        return ret
-256
-257    def _fix_durations(self, ret: List[FrameEntry]) -> List[FrameEntry]:
-258        """
-259        Calculate durations based on delta PTS.
-260        """
-261        last_duration = None
-262        for i in range(len(ret) - 1):
-263            curr_pts = ret[i]["pts"]
-264            next_pts = ret[i + 1]["pts"]
-265            if curr_pts == "NaN" or next_pts == "NaN":
-266                logger.warning("PTS is NaN, duration/bitrate may be invalid")
-267                continue
-268            if next_pts < curr_pts:
-269                logger.warning(
-270                    "Non-monotonically increasing PTS, duration/bitrate may be invalid"
-271                )
-272            last_duration = next_pts - curr_pts
-273            ret[i]["duration"] = last_duration
-274        if last_duration is not None:
-275            ret[-1]["duration"] = last_duration
-276        return ret
-277
-278    def _calculate_duration(self) -> float:
-279        """
-280        Sum of all duration entries.
+239            pts: float | Literal["NaN"] = (
+240                float(packet_info["pts_time"])
+241                if "pts_time" in packet_info.keys()
+242                else "NaN"
+243            )
+244
+245            duration: float | Literal["NaN"] = (
+246                float(packet_info["duration_time"])
+247                if "duration_time" in packet_info.keys()
+248                else float(default_duration)
+249                if default_duration != "NaN"
+250                else "NaN"
+251            )
+252
+253            ret.append(
+254                {
+255                    "n": idx,
+256                    "frame_type": frame_type,
+257                    "pts": pts,
+258                    "size": int(packet_info["size"]),
+259                    "duration": duration,
+260                }
+261            )
+262            idx += 1
+263
+264        # fix for missing durations, estimate it via PTS
+265        if default_duration == "NaN":
+266            ret = self._fix_durations(ret)
+267
+268        # fix missing data in first packet (occurs occassionally when reading streams)
+269        if (
+270            ret[0]["duration"] == "NaN"
+271            and isinstance(ret[1]["duration"], float)
+272        ):
+273            ret[0]["duration"] = ret[1]["duration"]
+274
+275        if (
+276            ret[0]["pts"] == "NaN"
+277            and isinstance(ret[1]["pts"], float)
+278            and isinstance(ret[0]["duration"], float)
+279        ):
+280            ret[0]["pts"] = ret[1]["pts"] - ret[0]["duration"]
 281
-282        Returns:
-283            float: The duration in seconds.
-284        """
-285        self.duration = round(
-286            sum(f["duration"] for f in self.frames if f["duration"] != "NaN"), 2
-287        )
-288        return self.duration
-289
-290    def _calculate_fps(self) -> float:
-291        """
-292        FPS = number of frames divided by duration. A rough estimate.
-293
-294        Returns:
-295            float: The FPS.
-296        """
-297        self.fps = len(self.frames) / self.duration
-298        return self.fps
-299
-300    def _collect_chunks(self) -> list[float]:
-301        """
-302        Collect chunks of a certain aggregation length (in seconds, or GOP).
-303        This is cached.
-304
-305        Returns:
-306            list[float]: The bitrate values per chunk in kbit/s.
-307        """
-308        if len(self._chunks):
-309            return self._chunks
-310
-311        logger.debug("Collecting chunks for bitrate calculation")
-312
-313        # this is where we will store the stats in buckets
-314        aggregation_chunks: list[list[FrameEntry]] = []
-315        curr_list: list[FrameEntry] = []
-316
-317        self._gop_start_times = []
-318
-319        if self.aggregation == "gop":
-320            # collect group of pictures, each one containing all frames belonging to it
-321            for frame in self.frames:
-322                if frame["frame_type"] != "I":
-323                    curr_list.append(frame)
-324                if frame["frame_type"] == "I":
-325                    if curr_list:
-326                        aggregation_chunks.append(curr_list)
-327                    curr_list = [frame]
-328                    self._gop_start_times.append(float(frame["pts"]))
-329            # flush the last one
-330            aggregation_chunks.append(curr_list)
-331
-332        else:
-333            # per-time aggregation
-334            agg_time: float = 0
-335            for frame in self.frames:
-336                if agg_time < self.chunk_size:
-337                    curr_list.append(frame)
-338                    agg_time += float(frame["duration"])
-339                else:
-340                    if curr_list:
-341                        aggregation_chunks.append(curr_list)
-342                    curr_list = [frame]
-343                    agg_time = float(frame["duration"])
-344            aggregation_chunks.append(curr_list)
-345
-346        # calculate BR per group
-347        self._chunks = [
-348            BitrateStats._bitrate_for_frame_list(x) for x in aggregation_chunks
-349        ]
-350
-351        return self._chunks
-352
-353    @staticmethod
-354    def _bitrate_for_frame_list(frame_list: list[FrameEntry]) -> float:
-355        """
-356        Given a list of frames with size and PTS, get the bitrate.
-357
-358        Args:
-359            frame_list (list): list of frames
-360
-361        Returns:
-362            float: bitrate in kbit/s
-363        """
-364        if len(frame_list) < 2:
-365            return math.nan
-366
-367        # sort frames by PTS in case they are unordered
-368        frame_list.sort(key=lambda x: x["pts"])
-369
-370        duration = float(frame_list[-1]["pts"]) - float(frame_list[0]["pts"])
-371        size = sum(f["size"] for f in frame_list)
-372        bitrate = ((size * 8) / 1000) / duration
+282        self.frames = ret
+283        return ret
+284
+285    def _fix_durations(self, ret: List[FrameEntry]) -> List[FrameEntry]:
+286        """
+287        Calculate durations based on delta PTS.
+288        """
+289        last_duration = None
+290        for i in range(len(ret) - 1):
+291            curr_pts = ret[i]["pts"]
+292            next_pts = ret[i + 1]["pts"]
+293            if curr_pts == "NaN" or next_pts == "NaN":
+294                logger.warning("PTS is NaN, duration/bitrate may be invalid")
+295                continue
+296            if next_pts < curr_pts:
+297                logger.warning(
+298                    "Non-monotonically increasing PTS, duration/bitrate may be invalid"
+299                )
+300            last_duration = next_pts - curr_pts
+301            ret[i]["duration"] = last_duration
+302        if last_duration is not None:
+303            ret[-1]["duration"] = last_duration
+304        return ret
+305
+306    def _calculate_duration(self) -> float:
+307        """
+308        Sum of all duration entries.
+309
+310        Returns:
+311            float: The duration in seconds.
+312        """
+313        self.duration = sum(
+314            f["duration"] for f in self.frames if f["duration"] != "NaN"
+315        )
+316        return self.duration
+317
+318    def _calculate_fps(self) -> float:
+319        """
+320        FPS = number of frames divided by duration. A rough estimate.
+321
+322        Returns:
+323            float: The FPS.
+324        """
+325        self.fps = len(self.frames) / self.duration
+326        return self.fps
+327
+328    def _collect_chunks(self) -> list[float]:
+329        """
+330        Collect chunks of a certain aggregation length (in seconds, or GOP).
+331        This is cached.
+332
+333        Returns:
+334            list[float]: The bitrate values per chunk in kbit/s.
+335        """
+336        if len(self._chunks):
+337            return self._chunks
+338
+339        logger.debug("Collecting chunks for bitrate calculation")
+340
+341        # this is where we will store the stats in buckets
+342        aggregation_chunks: list[list[FrameEntry]] = []
+343        curr_list: list[FrameEntry] = []
+344
+345        self._gop_start_times = []
+346
+347        if self.aggregation == "gop":
+348            # collect group of pictures, each one containing all frames belonging to it
+349            for frame in self.frames:
+350                if frame["frame_type"] != "I":
+351                    curr_list.append(frame)
+352                if frame["frame_type"] == "I":
+353                    if curr_list:
+354                        aggregation_chunks.append(curr_list)
+355                    curr_list = [frame]
+356                    self._gop_start_times.append(float(frame["pts"]))
+357            # flush the last one
+358            aggregation_chunks.append(curr_list)
+359
+360        else:
+361            # per-time aggregation
+362            agg_time: float = 0
+363            for frame in self.frames:
+364                if agg_time < self.chunk_size:
+365                    curr_list.append(frame)
+366                    agg_time += float(frame["duration"])
+367                else:
+368                    if curr_list:
+369                        aggregation_chunks.append(curr_list)
+370                    curr_list = [frame]
+371                    agg_time = float(frame["duration"])
+372            aggregation_chunks.append(curr_list)
 373
-374        return bitrate
-375
-376    def _calculate_max_min_bitrate(self) -> tuple[float, float]:
-377        """
-378        Find the min/max from the chunks.
-379
-380        Returns:
-381            tuple: max, min bitrate in kbit/s
-382        """
-383        self.max_bitrate = max(self._collect_chunks())
-384        self.min_bitrate = min(self._collect_chunks())
-385        return self.max_bitrate, self.min_bitrate
-386
-387    def _assemble_bitrate_statistics(self) -> BitrateStatsSummary:
-388        """
-389        Assemble all pre-calculated statistics plus some simple statistical measures.
-390
-391        Returns:
-392            dict: bitrate statistics
-393        """
+374        # calculate BR per group
+375        self._chunks = [
+376            BitrateStats._bitrate_for_frame_list(x) for x in aggregation_chunks
+377        ]
+378
+379        return self._chunks
+380
+381    @staticmethod
+382    def _bitrate_for_frame_list(frame_list: list[FrameEntry]) -> float:
+383        """
+384        Given a list of frames with size and PTS, get the bitrate.
+385
+386        Args:
+387            frame_list (list): list of frames
+388
+389        Returns:
+390            float: bitrate in kbit/s
+391        """
+392        if len(frame_list) < 2:
+393            return math.nan
 394
-395        self.avg_bitrate = (
-396            sum(f["size"] for f in self.frames) * 8 / 1000
-397        ) / self.duration
-398        self.avg_bitrate_over_chunks: float = cast(
-399            float, np.mean(self._collect_chunks())
-400        )
+395        # sort frames by PTS in case they are unordered
+396        frame_list.sort(key=lambda x: x["pts"])
+397
+398        duration = float(frame_list[-1]["pts"]) - float(frame_list[0]["pts"])
+399        size = sum(f["size"] for f in frame_list)
+400        bitrate = ((size * 8) / 1000) / duration
 401
-402        self.max_bitrate_factor = self.max_bitrate / self.avg_bitrate
+402        return bitrate
 403
-404        # output data
-405        ret: BitrateStatsSummary = {
-406            "input_file": self.input_file,
-407            "stream_type": self.stream_type,
-408            "avg_fps": round(self.fps, self.rounding_factor),
-409            "num_frames": len(self.frames),
-410            "avg_bitrate": round(self.avg_bitrate, self.rounding_factor),
-411            "avg_bitrate_over_chunks": round(
-412                self.avg_bitrate_over_chunks, self.rounding_factor
-413            ),
-414            "max_bitrate": round(self.max_bitrate, self.rounding_factor),
-415            "min_bitrate": round(self.min_bitrate, self.rounding_factor),
-416            "max_bitrate_factor": round(self.max_bitrate_factor, self.rounding_factor),
-417            "bitrate_per_chunk": [
-418                round(b, self.rounding_factor) for b in self._collect_chunks()
-419            ],
-420            "aggregation": self.aggregation,
-421            "chunk_size": self.chunk_size if self.aggregation == "time" else None,
-422            "duration": round(self.duration, self.rounding_factor),
-423        }
-424
-425        self.bitrate_stats = ret
-426        return self.bitrate_stats
-427
-428    def print_statistics(self, output_format: Literal["csv", "json"]) -> None:
-429        """
-430        Print the statistics in the specified format to stdout.
+404    def _calculate_max_min_bitrate(self) -> tuple[float, float]:
+405        """
+406        Find the min/max from the chunks.
+407
+408        Returns:
+409            tuple: max, min bitrate in kbit/s
+410        """
+411        self.max_bitrate = max(self._collect_chunks())
+412        self.min_bitrate = min(self._collect_chunks())
+413        return self.max_bitrate, self.min_bitrate
+414
+415    def _assemble_bitrate_statistics(self) -> BitrateStatsSummary:
+416        """
+417        Assemble all pre-calculated statistics plus some simple statistical measures.
+418
+419        Returns:
+420            dict: bitrate statistics
+421        """
+422
+423        self.avg_bitrate = (
+424            sum(f["size"] for f in self.frames) * 8 / 1000
+425        ) / self.duration
+426        self.avg_bitrate_over_chunks: float = cast(
+427            float, np.mean(self._collect_chunks())
+428        )
+429
+430        self.max_bitrate_factor = self.max_bitrate / self.avg_bitrate
 431
-432        Args:
-433            output_format: The format to print the statistics in (csv, json)
-434
-435        Raises:
-436            ValueError: If the output format is invalid
-437        """
-438        if output_format == "csv":
-439            print(self.get_csv())
-440        elif output_format == "json":
-441            print(self.get_json())
-442        else:
-443            raise ValueError("Invalid output format")
-444
-445    def get_csv(self) -> str:
-446        """
-447        Get the bitrate statistics as a CSV string.
-448
-449        Raises:
-450            RuntimeError: If no bitrate statistics are available
-451
-452        Returns:
-453            str: The bitrate statistics as a CSV string
-454        """
-455        if not self.bitrate_stats:
-456            raise RuntimeError("No bitrate stats available")
-457
-458        df = pd.DataFrame(self.bitrate_stats)
-459        df.reset_index(level=0, inplace=True)
-460        df.rename(index=str, columns={"index": "chunk_index"}, inplace=True)
-461        cols = df.columns.tolist()
-462        cols.insert(0, cols.pop(cols.index("input_file")))
-463        df = df.reindex(columns=cols)
-464        return cast(str, df.to_csv(index=False))
-465
-466    def get_json(self) -> str:
-467        """
-468        Get the bitrate statistics as a JSON string.
-469
-470        Raises:
-471            RuntimeError: If no bitrate statistics are available
+432        # output data
+433        ret: BitrateStatsSummary = {
+434            "input_file": self.input_file,
+435            "stream_type": self.stream_type,
+436            "avg_fps": round(self.fps, self.rounding_factor),
+437            "num_frames": len(self.frames),
+438            "avg_bitrate": round(self.avg_bitrate, self.rounding_factor),
+439            "avg_bitrate_over_chunks": round(
+440                self.avg_bitrate_over_chunks, self.rounding_factor
+441            ),
+442            "max_bitrate": round(self.max_bitrate, self.rounding_factor),
+443            "min_bitrate": round(self.min_bitrate, self.rounding_factor),
+444            "max_bitrate_factor": round(self.max_bitrate_factor, self.rounding_factor),
+445            "bitrate_per_chunk": [
+446                round(b, self.rounding_factor) for b in self._collect_chunks()
+447            ],
+448            "aggregation": self.aggregation,
+449            "chunk_size": self.chunk_size if self.aggregation == "time" else None,
+450            "duration": round(self.duration, self.rounding_factor),
+451        }
+452
+453        self.bitrate_stats = ret
+454        return self.bitrate_stats
+455
+456    def print_statistics(self, output_format: Literal["csv", "json"]) -> None:
+457        """
+458        Print the statistics in the specified format to stdout.
+459
+460        Args:
+461            output_format: The format to print the statistics in (csv, json)
+462
+463        Raises:
+464            ValueError: If the output format is invalid
+465        """
+466        if output_format == "csv":
+467            print(self.get_csv())
+468        elif output_format == "json":
+469            print(self.get_json())
+470        else:
+471            raise ValueError("Invalid output format")
 472
-473        Returns:
-474            str: The bitrate statistics as a JSON string
-475        """
-476        if not self.bitrate_stats:
-477            raise RuntimeError("No bitrate stats available")
-478
-479        return json.dumps(self.bitrate_stats, indent=4)
-480
-481    def plot(self, width: int = 80, height: int = 30) -> None:
-482        """
-483        Plot the bitrate over time to STDERR.
-484
-485        Args:
-486            width (int, optional): Width of the plot. Defaults to 80.
-487            height (int, optional): Height of the plot. Defaults to 30.
-488        """
-489        chunks = self._collect_chunks()
-490
-491        fig = plotille.Figure()
-492        fig.width = width
-493        fig.height = height
-494
-495        def _round_decimals(
-496            val: Any, chars: int, delta: float, left: bool = False
-497        ) -> str:
-498            align = "<" if left else ""
-499            return f"{val:{align}{chars}.{self.rounding_factor}f}"
+473    def get_csv(self) -> str:
+474        """
+475        Get the bitrate statistics as a CSV string.
+476
+477        Raises:
+478            RuntimeError: If no bitrate statistics are available
+479
+480        Returns:
+481            str: The bitrate statistics as a CSV string
+482        """
+483        if not self.bitrate_stats:
+484            raise RuntimeError("No bitrate stats available")
+485
+486        df = pd.DataFrame(self.bitrate_stats)
+487        df.reset_index(level=0, inplace=True)
+488        df.rename(index=str, columns={"index": "chunk_index"}, inplace=True)
+489        cols = df.columns.tolist()
+490        cols.insert(0, cols.pop(cols.index("input_file")))
+491        df = df.reindex(columns=cols)
+492        return cast(str, df.to_csv(index=False))
+493
+494    def get_json(self) -> str:
+495        """
+496        Get the bitrate statistics as a JSON string.
+497
+498        Raises:
+499            RuntimeError: If no bitrate statistics are available
 500
-501        x_values = (
-502            self._gop_start_times
-503            if self.aggregation == "gop"
-504            else [i * self.chunk_size for i in range(len(chunks))]
-505        )
+501        Returns:
+502            str: The bitrate statistics as a JSON string
+503        """
+504        if not self.bitrate_stats:
+505            raise RuntimeError("No bitrate stats available")
 506
-507        fig.register_label_formatter(int, _round_decimals)
-508        fig.register_label_formatter(float, _round_decimals)
-509        fig.set_x_limits(min_=0, max_=self.duration)
-510        fig.set_y_limits(min_=0)
-511        fig.x_label = "Time (s)"
-512        fig.y_label = "Bitrate (kbit/s)"
-513
-514        fig.plot(
-515            x_values,
-516            chunks,
-517        )
+507        return json.dumps(self.bitrate_stats, indent=4)
+508
+509    def plot(self, width: int = 80, height: int = 30) -> None:
+510        """
+511        Plot the bitrate over time to STDERR.
+512
+513        Args:
+514            width (int, optional): Width of the plot. Defaults to 80.
+515            height (int, optional): Height of the plot. Defaults to 30.
+516        """
+517        chunks = self._collect_chunks()
 518
-519        print(fig.show(), file=sys.stderr)
+519        fig = plotille.Figure()
+520        fig.width = width
+521        fig.height = height
+522
+523        def _round_decimals(
+524            val: Any, chars: int, delta: float, left: bool = False
+525        ) -> str:
+526            align = "<" if left else ""
+527            return f"{val:{align}{chars}.{self.rounding_factor}f}"
+528
+529        x_values = (
+530            self._gop_start_times
+531            if self.aggregation == "gop"
+532            else [i * self.chunk_size for i in range(len(chunks))]
+533        )
+534
+535        fig.register_label_formatter(int, _round_decimals)
+536        fig.register_label_formatter(float, _round_decimals)
+537        fig.set_x_limits(min_=0, max_=self.duration)
+538        fig.set_y_limits(min_=0)
+539        fig.x_label = "Time (s)"
+540        fig.y_label = "Bitrate (kbit/s)"
+541
+542        fig.plot(
+543            x_values,
+544            chunks,
+545        )
+546
+547        print(fig.show(), file=sys.stderr)
 
@@ -561,6 +586,8 @@
Arguments:
  • stream_type (str, optional): Stream type (audio/video). Defaults to "video".
  • aggregation (str, optional): Aggregation type (time/gop). Defaults to "time".
  • chunk_size (int, optional): Chunk size. Defaults to 1.
  • +
  • read_start (str, optional): Start time for reading in HH:MM:SS.msec or seconds. Defaults to None.
  • +
  • read_duration (str, optional): Duration for reading in HH:MM:SS.msec or seconds. Defaults to None.
  • dry_run (bool, optional): Dry run. Defaults to False.
  • @@ -570,50 +597,57 @@

    Arguments:
    - BitrateStats( input_file: str, stream_type: Literal['audio', 'video'] = 'video', aggregation: Literal['time', 'gop'] = 'time', chunk_size: int = 1, dry_run: bool = False) + BitrateStats( input_file: str, stream_type: Literal['audio', 'video'] = 'video', aggregation: Literal['time', 'gop'] = 'time', chunk_size: int = 1, read_start: Optional[str] = None, read_duration: Optional[str] = None, dry_run: bool = False)
    -
    119    def __init__(
    -120        self,
    -121        input_file: str,
    -122        stream_type: StreamType = "video",
    -123        aggregation: Aggregation = "time",
    -124        chunk_size: int = 1,
    -125        dry_run: bool = False,
    -126    ):
    -127        self.input_file = input_file
    -128
    -129        if stream_type not in ["audio", "video"]:
    -130            raise ValueError("Stream type must be audio/video")
    -131        self.stream_type: StreamType = stream_type
    -132
    -133        if aggregation not in ["time", "gop"]:
    -134            raise ValueError("Wrong aggregation type")
    -135        if aggregation == "gop" and stream_type == "audio":
    -136            raise ValueError("GOP aggregation for audio does not make sense")
    -137        self.aggregation: Aggregation = aggregation
    -138
    -139        if chunk_size and chunk_size < 0:
    -140            raise ValueError("Chunk size must be greater than 0")
    -141        self.chunk_size = chunk_size
    -142
    -143        self.dry_run = dry_run
    -144
    -145        self.duration: float = 0
    -146        self.fps: float = 0
    -147        self.max_bitrate: float = 0
    -148        self.min_bitrate: float = 0
    -149        self.moving_avg_bitrate: list[float] = []
    -150        self.frames: list[FrameEntry] = []
    -151        self.bitrate_stats: BitrateStatsSummary | None = None
    -152
    -153        self.rounding_factor: int = 3
    +            
    124    def __init__(
    +125        self,
    +126        input_file: str,
    +127        stream_type: StreamType = "video",
    +128        aggregation: Aggregation = "time",
    +129        chunk_size: int = 1,
    +130        read_start: Optional[str] = None,
    +131        read_duration: Optional[str] = None,
    +132        dry_run: bool = False,
    +133    ):
    +134        self.input_file = input_file
    +135
    +136        if stream_type not in ["audio", "video"]:
    +137            raise ValueError("Stream type must be audio/video")
    +138        self.stream_type: StreamType = stream_type
    +139
    +140        if aggregation not in ["time", "gop"]:
    +141            raise ValueError("Wrong aggregation type")
    +142        if aggregation == "gop" and stream_type == "audio":
    +143            raise ValueError("GOP aggregation for audio does not make sense")
    +144        self.aggregation: Aggregation = aggregation
    +145
    +146        if chunk_size and chunk_size < 0:
    +147            raise ValueError("Chunk size must be greater than 0")
    +148        self.chunk_size = chunk_size
    +149
    +150        self.read_length = "{}%{}".format(
    +151            f"+{read_start}" if read_start else "",
    +152            f"+{read_duration}" if read_duration else "",
    +153        )
     154
    -155        self._gop_start_times: Optional[list[float]] = None
    -156        self._chunks: list[float] = []
    +155        self.dry_run = dry_run
    +156
    +157        self.duration: float = 0
    +158        self.fps: float = 0
    +159        self.max_bitrate: float = 0
    +160        self.min_bitrate: float = 0
    +161        self.moving_avg_bitrate: list[float] = []
    +162        self.frames: list[FrameEntry] = []
    +163        self.bitrate_stats: BitrateStatsSummary | None = None
    +164
    +165        self.rounding_factor: int = 3
    +166
    +167        self._gop_start_times: Optional[list[float]] = None
    +168        self._chunks: list[float] = []
     
    @@ -631,26 +665,26 @@
    Arguments:
    -
    158    def calculate_statistics(self) -> BitrateStatsSummary:
    -159        """
    -160        Calculate the bitrate statistics.
    -161
    -162        Raises:
    -163            RuntimeError: If an error occurred.
    -164
    -165        Returns:
    -166            dict: The bitrate statistics summary.
    -167        """
    -168        self._calculate_frame_sizes()
    -169        self._calculate_duration()
    -170        self._calculate_fps()
    -171        self._calculate_max_min_bitrate()
    -172        self._assemble_bitrate_statistics()
    +            
    170    def calculate_statistics(self) -> BitrateStatsSummary:
    +171        """
    +172        Calculate the bitrate statistics.
     173
    -174        if self.bitrate_stats is None:
    -175            raise RuntimeError("bitrate_stats is None, should not happen")
    +174        Raises:
    +175            RuntimeError: If an error occurred.
     176
    -177        return self.bitrate_stats
    +177        Returns:
    +178            dict: The bitrate statistics summary.
    +179        """
    +180        self._calculate_frame_sizes()
    +181        self._calculate_duration()
    +182        self._calculate_fps()
    +183        self._calculate_max_min_bitrate()
    +184        self._assemble_bitrate_statistics()
    +185
    +186        if self.bitrate_stats is None:
    +187            raise RuntimeError("bitrate_stats is None, should not happen")
    +188
    +189        return self.bitrate_stats
     
    @@ -682,22 +716,22 @@
    Returns:
    -
    428    def print_statistics(self, output_format: Literal["csv", "json"]) -> None:
    -429        """
    -430        Print the statistics in the specified format to stdout.
    -431
    -432        Args:
    -433            output_format: The format to print the statistics in (csv, json)
    -434
    -435        Raises:
    -436            ValueError: If the output format is invalid
    -437        """
    -438        if output_format == "csv":
    -439            print(self.get_csv())
    -440        elif output_format == "json":
    -441            print(self.get_json())
    -442        else:
    -443            raise ValueError("Invalid output format")
    +            
    456    def print_statistics(self, output_format: Literal["csv", "json"]) -> None:
    +457        """
    +458        Print the statistics in the specified format to stdout.
    +459
    +460        Args:
    +461            output_format: The format to print the statistics in (csv, json)
    +462
    +463        Raises:
    +464            ValueError: If the output format is invalid
    +465        """
    +466        if output_format == "csv":
    +467            print(self.get_csv())
    +468        elif output_format == "json":
    +469            print(self.get_json())
    +470        else:
    +471            raise ValueError("Invalid output format")
     
    @@ -729,26 +763,26 @@
    Raises:
    -
    445    def get_csv(self) -> str:
    -446        """
    -447        Get the bitrate statistics as a CSV string.
    -448
    -449        Raises:
    -450            RuntimeError: If no bitrate statistics are available
    -451
    -452        Returns:
    -453            str: The bitrate statistics as a CSV string
    -454        """
    -455        if not self.bitrate_stats:
    -456            raise RuntimeError("No bitrate stats available")
    -457
    -458        df = pd.DataFrame(self.bitrate_stats)
    -459        df.reset_index(level=0, inplace=True)
    -460        df.rename(index=str, columns={"index": "chunk_index"}, inplace=True)
    -461        cols = df.columns.tolist()
    -462        cols.insert(0, cols.pop(cols.index("input_file")))
    -463        df = df.reindex(columns=cols)
    -464        return cast(str, df.to_csv(index=False))
    +            
    473    def get_csv(self) -> str:
    +474        """
    +475        Get the bitrate statistics as a CSV string.
    +476
    +477        Raises:
    +478            RuntimeError: If no bitrate statistics are available
    +479
    +480        Returns:
    +481            str: The bitrate statistics as a CSV string
    +482        """
    +483        if not self.bitrate_stats:
    +484            raise RuntimeError("No bitrate stats available")
    +485
    +486        df = pd.DataFrame(self.bitrate_stats)
    +487        df.reset_index(level=0, inplace=True)
    +488        df.rename(index=str, columns={"index": "chunk_index"}, inplace=True)
    +489        cols = df.columns.tolist()
    +490        cols.insert(0, cols.pop(cols.index("input_file")))
    +491        df = df.reindex(columns=cols)
    +492        return cast(str, df.to_csv(index=False))
     
    @@ -780,20 +814,20 @@
    Returns:
    -
    466    def get_json(self) -> str:
    -467        """
    -468        Get the bitrate statistics as a JSON string.
    -469
    -470        Raises:
    -471            RuntimeError: If no bitrate statistics are available
    -472
    -473        Returns:
    -474            str: The bitrate statistics as a JSON string
    -475        """
    -476        if not self.bitrate_stats:
    -477            raise RuntimeError("No bitrate stats available")
    -478
    -479        return json.dumps(self.bitrate_stats, indent=4)
    +            
    494    def get_json(self) -> str:
    +495        """
    +496        Get the bitrate statistics as a JSON string.
    +497
    +498        Raises:
    +499            RuntimeError: If no bitrate statistics are available
    +500
    +501        Returns:
    +502            str: The bitrate statistics as a JSON string
    +503        """
    +504        if not self.bitrate_stats:
    +505            raise RuntimeError("No bitrate stats available")
    +506
    +507        return json.dumps(self.bitrate_stats, indent=4)
     
    @@ -825,45 +859,45 @@
    Returns:
    -
    481    def plot(self, width: int = 80, height: int = 30) -> None:
    -482        """
    -483        Plot the bitrate over time to STDERR.
    -484
    -485        Args:
    -486            width (int, optional): Width of the plot. Defaults to 80.
    -487            height (int, optional): Height of the plot. Defaults to 30.
    -488        """
    -489        chunks = self._collect_chunks()
    -490
    -491        fig = plotille.Figure()
    -492        fig.width = width
    -493        fig.height = height
    -494
    -495        def _round_decimals(
    -496            val: Any, chars: int, delta: float, left: bool = False
    -497        ) -> str:
    -498            align = "<" if left else ""
    -499            return f"{val:{align}{chars}.{self.rounding_factor}f}"
    -500
    -501        x_values = (
    -502            self._gop_start_times
    -503            if self.aggregation == "gop"
    -504            else [i * self.chunk_size for i in range(len(chunks))]
    -505        )
    -506
    -507        fig.register_label_formatter(int, _round_decimals)
    -508        fig.register_label_formatter(float, _round_decimals)
    -509        fig.set_x_limits(min_=0, max_=self.duration)
    -510        fig.set_y_limits(min_=0)
    -511        fig.x_label = "Time (s)"
    -512        fig.y_label = "Bitrate (kbit/s)"
    -513
    -514        fig.plot(
    -515            x_values,
    -516            chunks,
    -517        )
    +            
    509    def plot(self, width: int = 80, height: int = 30) -> None:
    +510        """
    +511        Plot the bitrate over time to STDERR.
    +512
    +513        Args:
    +514            width (int, optional): Width of the plot. Defaults to 80.
    +515            height (int, optional): Height of the plot. Defaults to 30.
    +516        """
    +517        chunks = self._collect_chunks()
     518
    -519        print(fig.show(), file=sys.stderr)
    +519        fig = plotille.Figure()
    +520        fig.width = width
    +521        fig.height = height
    +522
    +523        def _round_decimals(
    +524            val: Any, chars: int, delta: float, left: bool = False
    +525        ) -> str:
    +526            align = "<" if left else ""
    +527            return f"{val:{align}{chars}.{self.rounding_factor}f}"
    +528
    +529        x_values = (
    +530            self._gop_start_times
    +531            if self.aggregation == "gop"
    +532            else [i * self.chunk_size for i in range(len(chunks))]
    +533        )
    +534
    +535        fig.register_label_formatter(int, _round_decimals)
    +536        fig.register_label_formatter(float, _round_decimals)
    +537        fig.set_x_limits(min_=0, max_=self.duration)
    +538        fig.set_y_limits(min_=0)
    +539        fig.x_label = "Time (s)"
    +540        fig.y_label = "Bitrate (kbit/s)"
    +541
    +542        fig.plot(
    +543            x_values,
    +544            chunks,
    +545        )
    +546
    +547        print(fig.show(), file=sys.stderr)
     
    @@ -891,59 +925,59 @@
    Arguments:
    -
     52class BitrateStatsSummary(TypedDict):
    - 53    input_file: str
    - 54    """
    - 55    The input file.
    - 56    """
    - 57    stream_type: StreamType
    - 58    """
    - 59    The stream type (audio/video).
    - 60    """
    - 61    avg_fps: float
    - 62    """
    - 63    The average FPS.
    - 64    """
    - 65    num_frames: int
    - 66    """
    - 67    The number of frames.
    - 68    """
    - 69    avg_bitrate: float
    - 70    """
    - 71    The average bitrate in kbit/s.
    - 72    """
    - 73    avg_bitrate_over_chunks: float
    - 74    """
    - 75    The average bitrate in kbit/s over chunks.
    - 76    """
    - 77    max_bitrate: float
    - 78    """
    - 79    The maximum bitrate in kbit/s.
    - 80    """
    - 81    min_bitrate: float
    - 82    """
    - 83    The minimum bitrate in kbit/s.
    - 84    """
    - 85    max_bitrate_factor: float
    - 86    """
    - 87    Relation between peak and average.
    - 88    """
    - 89    bitrate_per_chunk: list[float]
    - 90    """
    - 91    The bitrate per chunk in kbit/s.
    - 92    """
    - 93    aggregation: Aggregation
    - 94    """
    - 95    The aggregation type (time/chunks).
    - 96    """
    - 97    chunk_size: Optional[int]
    - 98    """
    - 99    The chunk size in seconds.
    -100    """
    -101    duration: float
    -102    """
    -103    The duration in seconds.
    -104    """
    +            
     55class BitrateStatsSummary(TypedDict):
    + 56    input_file: str
    + 57    """
    + 58    The input file.
    + 59    """
    + 60    stream_type: StreamType
    + 61    """
    + 62    The stream type (audio/video).
    + 63    """
    + 64    avg_fps: float
    + 65    """
    + 66    The average FPS.
    + 67    """
    + 68    num_frames: int
    + 69    """
    + 70    The number of frames.
    + 71    """
    + 72    avg_bitrate: float
    + 73    """
    + 74    The average bitrate in kbit/s.
    + 75    """
    + 76    avg_bitrate_over_chunks: float
    + 77    """
    + 78    The average bitrate in kbit/s over chunks.
    + 79    """
    + 80    max_bitrate: float
    + 81    """
    + 82    The maximum bitrate in kbit/s.
    + 83    """
    + 84    min_bitrate: float
    + 85    """
    + 86    The minimum bitrate in kbit/s.
    + 87    """
    + 88    max_bitrate_factor: float
    + 89    """
    + 90    Relation between peak and average.
    + 91    """
    + 92    bitrate_per_chunk: list[float]
    + 93    """
    + 94    The bitrate per chunk in kbit/s.
    + 95    """
    + 96    aggregation: Aggregation
    + 97    """
    + 98    The aggregation type (time/chunks).
    + 99    """
    +100    chunk_size: Optional[int]
    +101    """
    +102    The chunk size in seconds.
    +103    """
    +104    duration: float
    +105    """
    +106    The duration in seconds.
    +107    """
     
    @@ -1143,32 +1177,35 @@
    Inherited Members
    def - run_command( cmd: List[str], dry_run: bool = False, verbose: bool = False) -> tuple[str, str] | tuple[None, None]: + run_command( cmd: List[str], dry_run: bool = False) -> tuple[str, str] | tuple[None, None]:
    18def run_command(
    -19    cmd: List[str], dry_run: bool = False, verbose: bool = False
    +19    cmd: List[str], dry_run: bool = False
     20) -> tuple[str, str] | tuple[None, None]:
     21    """
     22    Run a command directly
     23    """
    -24    if dry_run or verbose:
    -25        logger.info("[cmd] " + " ".join(cmd))
    -26        if dry_run:
    -27            return None, None
    -28
    -29    process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    -30    stdout, stderr = process.communicate()
    +24
    +25    # for verbose mode
    +26    logger.debug("[cmd] " + " ".join(cmd))
    +27
    +28    if dry_run:
    +29        logger.info("[cmd] " + " ".join(cmd))
    +30        return None, None
     31
    -32    if process.returncode == 0:
    -33        return stdout.decode("utf-8"), stderr.decode("utf-8")
    -34    else:
    -35        logger.error("error running command: {}".format(" ".join(cmd)))
    -36        logger.error(stderr.decode("utf-8"))
    -37        sys.exit(1)
    +32    process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    +33    stdout, stderr = process.communicate()
    +34
    +35    if process.returncode == 0:
    +36        return stdout.decode("utf-8"), stderr.decode("utf-8")
    +37    else:
    +38        logger.error("error running command: {}".format(" ".join(cmd)))
    +39        logger.error(stderr.decode("utf-8"))
    +40        sys.exit(1)
     
    diff --git a/docs/search.js b/docs/search.js index e33f4a4..bbf7960 100644 --- a/docs/search.js +++ b/docs/search.js @@ -1,6 +1,6 @@ window.pdocSearch = (function(){ /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),t.utils.toString=function(e){return void 0===e||null===e?"":e.toString()},t.EventEmitter=function(){this.events={}},t.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),t=e.pop(),n=e;if("function"!=typeof t)throw new TypeError("last argument must be a function");n.forEach(function(e){this.hasHandler(e)||(this.events[e]=[]),this.events[e].push(t)},this)},t.EventEmitter.prototype.removeListener=function(e,t){if(this.hasHandler(e)){var n=this.events[e].indexOf(t);-1!==n&&(this.events[e].splice(n,1),0==this.events[e].length&&delete this.events[e])}},t.EventEmitter.prototype.emit=function(e){if(this.hasHandler(e)){var t=Array.prototype.slice.call(arguments,1);this.events[e].forEach(function(e){e.apply(void 0,t)},this)}},t.EventEmitter.prototype.hasHandler=function(e){return e in this.events},t.tokenizer=function(e){if(!arguments.length||null===e||void 0===e)return[];if(Array.isArray(e)){var n=e.filter(function(e){return null===e||void 0===e?!1:!0});n=n.map(function(e){return t.utils.toString(e).toLowerCase()});var i=[];return n.forEach(function(e){var n=e.split(t.tokenizer.seperator);i=i.concat(n)},this),i}return e.toString().trim().toLowerCase().split(t.tokenizer.seperator)},t.tokenizer.defaultSeperator=/[\s\-]+/,t.tokenizer.seperator=t.tokenizer.defaultSeperator,t.tokenizer.setSeperator=function(e){null!==e&&void 0!==e&&"object"==typeof e&&(t.tokenizer.seperator=e)},t.tokenizer.resetSeperator=function(){t.tokenizer.seperator=t.tokenizer.defaultSeperator},t.tokenizer.getSeperator=function(){return t.tokenizer.seperator},t.Pipeline=function(){this._queue=[]},t.Pipeline.registeredFunctions={},t.Pipeline.registerFunction=function(e,n){n in t.Pipeline.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[n]=e},t.Pipeline.getRegisteredFunction=function(e){return e in t.Pipeline.registeredFunctions!=!0?null:t.Pipeline.registeredFunctions[e]},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(e){var i=t.Pipeline.getRegisteredFunction(e);if(!i)throw new Error("Cannot load un-registered function: "+e);n.add(i)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(e){t.Pipeline.warnIfFunctionNotRegistered(e),this._queue.push(e)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i+1,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var i=this._queue.indexOf(e);if(-1===i)throw new Error("Cannot find existingFn");this._queue.splice(i,0,n)},t.Pipeline.prototype.remove=function(e){var t=this._queue.indexOf(e);-1!==t&&this._queue.splice(t,1)},t.Pipeline.prototype.run=function(e){for(var t=[],n=e.length,i=this._queue.length,o=0;n>o;o++){for(var r=e[o],s=0;i>s&&(r=this._queue[s](r,o,e),void 0!==r&&null!==r);s++);void 0!==r&&null!==r&&t.push(r)}return t},t.Pipeline.prototype.reset=function(){this._queue=[]},t.Pipeline.prototype.get=function(){return this._queue},t.Pipeline.prototype.toJSON=function(){return this._queue.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})},t.Index=function(){this._fields=[],this._ref="id",this.pipeline=new t.Pipeline,this.documentStore=new t.DocumentStore,this.index={},this.eventEmitter=new t.EventEmitter,this._idfCache={},this.on("add","remove","update",function(){this._idfCache={}}.bind(this))},t.Index.prototype.on=function(){var e=Array.prototype.slice.call(arguments);return this.eventEmitter.addListener.apply(this.eventEmitter,e)},t.Index.prototype.off=function(e,t){return this.eventEmitter.removeListener(e,t)},t.Index.load=function(e){e.version!==t.version&&t.utils.warn("version mismatch: current "+t.version+" importing "+e.version);var n=new this;n._fields=e.fields,n._ref=e.ref,n.documentStore=t.DocumentStore.load(e.documentStore),n.pipeline=t.Pipeline.load(e.pipeline),n.index={};for(var i in e.index)n.index[i]=t.InvertedIndex.load(e.index[i]);return n},t.Index.prototype.addField=function(e){return this._fields.push(e),this.index[e]=new t.InvertedIndex,this},t.Index.prototype.setRef=function(e){return this._ref=e,this},t.Index.prototype.saveDocument=function(e){return this.documentStore=new t.DocumentStore(e),this},t.Index.prototype.addDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.addDoc(i,e),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));this.documentStore.addFieldLength(i,n,o.length);var r={};o.forEach(function(e){e in r?r[e]+=1:r[e]=1},this);for(var s in r){var u=r[s];u=Math.sqrt(u),this.index[n].addToken(s,{ref:i,tf:u})}},this),n&&this.eventEmitter.emit("add",e,this)}},t.Index.prototype.removeDocByRef=function(e){if(e&&this.documentStore.isDocStored()!==!1&&this.documentStore.hasDoc(e)){var t=this.documentStore.getDoc(e);this.removeDoc(t,!1)}},t.Index.prototype.removeDoc=function(e,n){if(e){var n=void 0===n?!0:n,i=e[this._ref];this.documentStore.hasDoc(i)&&(this.documentStore.removeDoc(i),this._fields.forEach(function(n){var o=this.pipeline.run(t.tokenizer(e[n]));o.forEach(function(e){this.index[n].removeToken(e,i)},this)},this),n&&this.eventEmitter.emit("remove",e,this))}},t.Index.prototype.updateDoc=function(e,t){var t=void 0===t?!0:t;this.removeDocByRef(e[this._ref],!1),this.addDoc(e,!1),t&&this.eventEmitter.emit("update",e,this)},t.Index.prototype.idf=function(e,t){var n="@"+t+"/"+e;if(Object.prototype.hasOwnProperty.call(this._idfCache,n))return this._idfCache[n];var i=this.index[t].getDocFreq(e),o=1+Math.log(this.documentStore.length/(i+1));return this._idfCache[n]=o,o},t.Index.prototype.getFields=function(){return this._fields.slice()},t.Index.prototype.search=function(e,n){if(!e)return[];e="string"==typeof e?{any:e}:JSON.parse(JSON.stringify(e));var i=null;null!=n&&(i=JSON.stringify(n));for(var o=new t.Configuration(i,this.getFields()).get(),r={},s=Object.keys(e),u=0;u0&&t.push(e);for(var i in n)"docs"!==i&&"df"!==i&&this.expandToken(e+i,t,n[i]);return t},t.InvertedIndex.prototype.toJSON=function(){return{root:this.root}},t.Configuration=function(e,n){var e=e||"";if(void 0==n||null==n)throw new Error("fields should not be null");this.config={};var i;try{i=JSON.parse(e),this.buildUserConfig(i,n)}catch(o){t.utils.warn("user configuration parse failed, will use default configuration"),this.buildDefaultConfig(n)}},t.Configuration.prototype.buildDefaultConfig=function(e){this.reset(),e.forEach(function(e){this.config[e]={boost:1,bool:"OR",expand:!1}},this)},t.Configuration.prototype.buildUserConfig=function(e,n){var i="OR",o=!1;if(this.reset(),"bool"in e&&(i=e.bool||i),"expand"in e&&(o=e.expand||o),"fields"in e)for(var r in e.fields)if(n.indexOf(r)>-1){var s=e.fields[r],u=o;void 0!=s.expand&&(u=s.expand),this.config[r]={boost:s.boost||0===s.boost?s.boost:1,bool:s.bool||i,expand:u}}else t.utils.warn("field name in user configuration not found in index instance fields");else this.addAllFields2UserConfig(i,o,n)},t.Configuration.prototype.addAllFields2UserConfig=function(e,t,n){n.forEach(function(n){this.config[n]={boost:1,bool:e,expand:t}},this)},t.Configuration.prototype.get=function(){return this.config},t.Configuration.prototype.reset=function(){this.config={}},lunr.SortedSet=function(){this.length=0,this.elements=[]},lunr.SortedSet.load=function(e){var t=new this;return t.elements=e,t.length=e.length,t},lunr.SortedSet.prototype.add=function(){var e,t;for(e=0;e1;){if(r===e)return o;e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o]}return r===e?o:-1},lunr.SortedSet.prototype.locationFor=function(e){for(var t=0,n=this.elements.length,i=n-t,o=t+Math.floor(i/2),r=this.elements[o];i>1;)e>r&&(t=o),r>e&&(n=o),i=n-t,o=t+Math.floor(i/2),r=this.elements[o];return r>e?o:e>r?o+1:void 0},lunr.SortedSet.prototype.intersect=function(e){for(var t=new lunr.SortedSet,n=0,i=0,o=this.length,r=e.length,s=this.elements,u=e.elements;;){if(n>o-1||i>r-1)break;s[n]!==u[i]?s[n]u[i]&&i++:(t.add(s[n]),n++,i++)}return t},lunr.SortedSet.prototype.clone=function(){var e=new lunr.SortedSet;return e.elements=this.toArray(),e.length=e.elements.length,e},lunr.SortedSet.prototype.union=function(e){var t,n,i;this.length>=e.length?(t=this,n=e):(t=e,n=this),i=t.clone();for(var o=0,r=n.toArray();o

    \n"}, "ffmpeg_bitrate_stats.BitrateStats": {"fullname": "ffmpeg_bitrate_stats.BitrateStats", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats", "kind": "class", "doc": "

    Initialize the BitrateStats class.

    \n\n
    Arguments:
    \n\n
      \n
    • input_file (str): Path to the input file
    • \n
    • stream_type (str, optional): Stream type (audio/video). Defaults to \"video\".
    • \n
    • aggregation (str, optional): Aggregation type (time/gop). Defaults to \"time\".
    • \n
    • chunk_size (int, optional): Chunk size. Defaults to 1.
    • \n
    • dry_run (bool, optional): Dry run. Defaults to False.
    • \n
    \n"}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.__init__", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.__init__", "kind": "function", "doc": "

    \n", "signature": "(\tinput_file: str,\tstream_type: Literal['audio', 'video'] = 'video',\taggregation: Literal['time', 'gop'] = 'time',\tchunk_size: int = 1,\tdry_run: bool = False)"}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.calculate_statistics", "kind": "function", "doc": "

    Calculate the bitrate statistics.

    \n\n
    Raises:
    \n\n
      \n
    • RuntimeError: If an error occurred.
    • \n
    \n\n
    Returns:
    \n\n
    \n

    dict: The bitrate statistics summary.

    \n
    \n", "signature": "(self) -> ffmpeg_bitrate_stats.bitrate_stats.BitrateStatsSummary:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.print_statistics", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.print_statistics", "kind": "function", "doc": "

    Print the statistics in the specified format to stdout.

    \n\n
    Arguments:
    \n\n
      \n
    • output_format: The format to print the statistics in (csv, json)
    • \n
    \n\n
    Raises:
    \n\n
      \n
    • ValueError: If the output format is invalid
    • \n
    \n", "signature": "(self, output_format: Literal['csv', 'json']) -> None:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.get_csv", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.get_csv", "kind": "function", "doc": "

    Get the bitrate statistics as a CSV string.

    \n\n
    Raises:
    \n\n
      \n
    • RuntimeError: If no bitrate statistics are available
    • \n
    \n\n
    Returns:
    \n\n
    \n

    str: The bitrate statistics as a CSV string

    \n
    \n", "signature": "(self) -> str:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.get_json", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.get_json", "kind": "function", "doc": "

    Get the bitrate statistics as a JSON string.

    \n\n
    Raises:
    \n\n
      \n
    • RuntimeError: If no bitrate statistics are available
    • \n
    \n\n
    Returns:
    \n\n
    \n

    str: The bitrate statistics as a JSON string

    \n
    \n", "signature": "(self) -> str:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.plot", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.plot", "kind": "function", "doc": "

    Plot the bitrate over time to STDERR.

    \n\n
    Arguments:
    \n\n
      \n
    • width (int, optional): Width of the plot. Defaults to 80.
    • \n
    • height (int, optional): Height of the plot. Defaults to 30.
    • \n
    \n", "signature": "(self, width: int = 80, height: int = 30) -> None:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary", "kind": "class", "doc": "

    \n", "bases": "typing.TypedDict"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.input_file", "kind": "variable", "doc": "

    The input file.

    \n", "annotation": ": str"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.stream_type", "kind": "variable", "doc": "

    The stream type (audio/video).

    \n", "annotation": ": Literal['audio', 'video']"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.avg_fps", "kind": "variable", "doc": "

    The average FPS.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.num_frames", "kind": "variable", "doc": "

    The number of frames.

    \n", "annotation": ": int"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.avg_bitrate", "kind": "variable", "doc": "

    The average bitrate in kbit/s.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.avg_bitrate_over_chunks", "kind": "variable", "doc": "

    The average bitrate in kbit/s over chunks.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.max_bitrate", "kind": "variable", "doc": "

    The maximum bitrate in kbit/s.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.min_bitrate", "kind": "variable", "doc": "

    The minimum bitrate in kbit/s.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.max_bitrate_factor", "kind": "variable", "doc": "

    Relation between peak and average.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.bitrate_per_chunk", "kind": "variable", "doc": "

    The bitrate per chunk in kbit/s.

    \n", "annotation": ": list[float]"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.aggregation", "kind": "variable", "doc": "

    The aggregation type (time/chunks).

    \n", "annotation": ": Literal['time', 'gop']"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.chunk_size", "kind": "variable", "doc": "

    The chunk size in seconds.

    \n", "annotation": ": Optional[int]"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.duration", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.duration", "kind": "variable", "doc": "

    The duration in seconds.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.run_command": {"fullname": "ffmpeg_bitrate_stats.run_command", "modulename": "ffmpeg_bitrate_stats", "qualname": "run_command", "kind": "function", "doc": "

    Run a command directly

    \n", "signature": "(\tcmd: List[str],\tdry_run: bool = False,\tverbose: bool = False) -> tuple[str, str] | tuple[None, None]:", "funcdef": "def"}}, "docInfo": {"ffmpeg_bitrate_stats": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ffmpeg_bitrate_stats.BitrateStats": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 88}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 139, "bases": 0, "doc": 3}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 39}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 53}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 46}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 46}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 49}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 6}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"qualname": 3, "fullname": 6, "annotation": 9, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 6}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"qualname": 2, "fullname": 5, "annotation": 9, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "ffmpeg_bitrate_stats.run_command": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 93, "bases": 0, "doc": 6}}, "length": 23, "save": true}, "index": {"qualname": {"root": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 7, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 14}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 2, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 3}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}, "fullname": {"root": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 23}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 23, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 7, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 14}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 23}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 2, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 3}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}, "annotation": {"root": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 13, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 1}}}}}}}}}}, "x": {"2": {"7": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 2}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 2}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 7}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "default_value": {"root": {"docs": {}, "df": 0}}, "signature": {"root": {"1": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}, "3": {"0": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}, "9": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 3.4641016151377544}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 2}}, "df": 2}, "docs": {}, "df": 0}, "8": {"0": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 10.246950765959598}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 4.47213595499958}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 5.830951894845301}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 3.4641016151377544}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 3.4641016151377544}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 6.324555320336759}, "ffmpeg_bitrate_stats.run_command": {"tf": 8.774964387392123}}, "df": 7, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 2}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1.4142135623730951}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1.7320508075688772}}, "df": 4, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 5}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 2}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 2}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1.4142135623730951}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1.4142135623730951}}, "df": 3}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}}, "df": 1}}}}}}}}}}}, "doc": {"root": {"1": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}, "3": {"0": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"0": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"ffmpeg_bitrate_stats": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats": {"tf": 6.164414002968976}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 4.795831523312719}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 4.898979485566356}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 4.58257569495584}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 4.58257569495584}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 4.58257569495584}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.run_command": {"tf": 1.4142135623730951}}, "df": 23, "i": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 8, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 2}}}, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 2}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}, "f": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 4}, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 2.23606797749979}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 18}}, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 2.23606797749979}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.7320508075688772}}, "df": 3}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 2, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 9, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 3, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}}, "df": 2}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 3, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 3}}}}}}}, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 2}}}}}}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 2}}}}}}}}}}, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}}, "df": 2}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 4}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 2}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 2}}, "df": 1}}}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.7320508075688772}}, "df": 4}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 2}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 2}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.7320508075688772}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 2}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 2}}}, "f": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 2}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 2}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 3}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 4}}}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 5}}}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}}, "df": 1}}}}}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; + /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"ffmpeg_bitrate_stats": {"fullname": "ffmpeg_bitrate_stats", "modulename": "ffmpeg_bitrate_stats", "kind": "module", "doc": "

    \n"}, "ffmpeg_bitrate_stats.BitrateStats": {"fullname": "ffmpeg_bitrate_stats.BitrateStats", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats", "kind": "class", "doc": "

    Initialize the BitrateStats class.

    \n\n
    Arguments:
    \n\n
      \n
    • input_file (str): Path to the input file
    • \n
    • stream_type (str, optional): Stream type (audio/video). Defaults to \"video\".
    • \n
    • aggregation (str, optional): Aggregation type (time/gop). Defaults to \"time\".
    • \n
    • chunk_size (int, optional): Chunk size. Defaults to 1.
    • \n
    • read_start (str, optional): Start time for reading in HH:MM:SS.msec or seconds. Defaults to None.
    • \n
    • read_duration (str, optional): Duration for reading in HH:MM:SS.msec or seconds. Defaults to None.
    • \n
    • dry_run (bool, optional): Dry run. Defaults to False.
    • \n
    \n"}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.__init__", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.__init__", "kind": "function", "doc": "

    \n", "signature": "(\tinput_file: str,\tstream_type: Literal['audio', 'video'] = 'video',\taggregation: Literal['time', 'gop'] = 'time',\tchunk_size: int = 1,\tread_start: Optional[str] = None,\tread_duration: Optional[str] = None,\tdry_run: bool = False)"}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.calculate_statistics", "kind": "function", "doc": "

    Calculate the bitrate statistics.

    \n\n
    Raises:
    \n\n
      \n
    • RuntimeError: If an error occurred.
    • \n
    \n\n
    Returns:
    \n\n
    \n

    dict: The bitrate statistics summary.

    \n
    \n", "signature": "(self) -> ffmpeg_bitrate_stats.bitrate_stats.BitrateStatsSummary:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.print_statistics", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.print_statistics", "kind": "function", "doc": "

    Print the statistics in the specified format to stdout.

    \n\n
    Arguments:
    \n\n
      \n
    • output_format: The format to print the statistics in (csv, json)
    • \n
    \n\n
    Raises:
    \n\n
      \n
    • ValueError: If the output format is invalid
    • \n
    \n", "signature": "(self, output_format: Literal['csv', 'json']) -> None:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.get_csv", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.get_csv", "kind": "function", "doc": "

    Get the bitrate statistics as a CSV string.

    \n\n
    Raises:
    \n\n
      \n
    • RuntimeError: If no bitrate statistics are available
    • \n
    \n\n
    Returns:
    \n\n
    \n

    str: The bitrate statistics as a CSV string

    \n
    \n", "signature": "(self) -> str:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.get_json", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.get_json", "kind": "function", "doc": "

    Get the bitrate statistics as a JSON string.

    \n\n
    Raises:
    \n\n
      \n
    • RuntimeError: If no bitrate statistics are available
    • \n
    \n\n
    Returns:
    \n\n
    \n

    str: The bitrate statistics as a JSON string

    \n
    \n", "signature": "(self) -> str:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"fullname": "ffmpeg_bitrate_stats.BitrateStats.plot", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStats.plot", "kind": "function", "doc": "

    Plot the bitrate over time to STDERR.

    \n\n
    Arguments:
    \n\n
      \n
    • width (int, optional): Width of the plot. Defaults to 80.
    • \n
    • height (int, optional): Height of the plot. Defaults to 30.
    • \n
    \n", "signature": "(self, width: int = 80, height: int = 30) -> None:", "funcdef": "def"}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary", "kind": "class", "doc": "

    \n", "bases": "typing.TypedDict"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.input_file", "kind": "variable", "doc": "

    The input file.

    \n", "annotation": ": str"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.stream_type", "kind": "variable", "doc": "

    The stream type (audio/video).

    \n", "annotation": ": Literal['audio', 'video']"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.avg_fps", "kind": "variable", "doc": "

    The average FPS.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.num_frames", "kind": "variable", "doc": "

    The number of frames.

    \n", "annotation": ": int"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.avg_bitrate", "kind": "variable", "doc": "

    The average bitrate in kbit/s.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.avg_bitrate_over_chunks", "kind": "variable", "doc": "

    The average bitrate in kbit/s over chunks.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.max_bitrate", "kind": "variable", "doc": "

    The maximum bitrate in kbit/s.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.min_bitrate", "kind": "variable", "doc": "

    The minimum bitrate in kbit/s.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.max_bitrate_factor", "kind": "variable", "doc": "

    Relation between peak and average.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.bitrate_per_chunk", "kind": "variable", "doc": "

    The bitrate per chunk in kbit/s.

    \n", "annotation": ": list[float]"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.aggregation", "kind": "variable", "doc": "

    The aggregation type (time/chunks).

    \n", "annotation": ": Literal['time', 'gop']"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.chunk_size", "kind": "variable", "doc": "

    The chunk size in seconds.

    \n", "annotation": ": Optional[int]"}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"fullname": "ffmpeg_bitrate_stats.BitrateStatsSummary.duration", "modulename": "ffmpeg_bitrate_stats", "qualname": "BitrateStatsSummary.duration", "kind": "variable", "doc": "

    The duration in seconds.

    \n", "annotation": ": float"}, "ffmpeg_bitrate_stats.run_command": {"fullname": "ffmpeg_bitrate_stats.run_command", "modulename": "ffmpeg_bitrate_stats", "qualname": "run_command", "kind": "function", "doc": "

    Run a command directly

    \n", "signature": "(\tcmd: List[str],\tdry_run: bool = False) -> tuple[str, str] | tuple[None, None]:", "funcdef": "def"}}, "docInfo": {"ffmpeg_bitrate_stats": {"qualname": 0, "fullname": 3, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 3}, "ffmpeg_bitrate_stats.BitrateStats": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 0, "doc": 131}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 189, "bases": 0, "doc": 3}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 27, "bases": 0, "doc": 39}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 45, "bases": 0, "doc": 53}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 46}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"qualname": 3, "fullname": 6, "annotation": 0, "default_value": 0, "signature": 14, "bases": 0, "doc": 46}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 48, "bases": 0, "doc": 49}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"qualname": 1, "fullname": 4, "annotation": 0, "default_value": 0, "signature": 0, "bases": 2, "doc": 3}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 6}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"qualname": 3, "fullname": 6, "annotation": 9, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 6}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"qualname": 5, "fullname": 8, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 10}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"qualname": 4, "fullname": 7, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 9}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"qualname": 2, "fullname": 5, "annotation": 9, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"qualname": 3, "fullname": 6, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 8}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"qualname": 2, "fullname": 5, "annotation": 2, "default_value": 0, "signature": 0, "bases": 0, "doc": 7}, "ffmpeg_bitrate_stats.run_command": {"qualname": 2, "fullname": 5, "annotation": 0, "default_value": 0, "signature": 75, "bases": 0, "doc": 6}}, "length": 23, "save": true}, "index": {"qualname": {"root": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 6, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 7, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 14}}}}}}}}}}}}}}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 2, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 1}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 3}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}, "fullname": {"root": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1, "f": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 23}}}}}, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 23, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 7, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 14}}}}}}}}}}}}}}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 23}, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 2}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}}}, "c": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}}, "df": 1}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 2, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}}}, "p": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 1}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 1}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 3}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}}}}}}}}}, "n": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "x": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 2}}, "i": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}}, "df": 1}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 1}}}}}}}}, "r": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}, "annotation": {"root": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 13, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 1}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 1}}}}}}}}}}, "x": {"2": {"7": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 2}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 2}}, "df": 2}, "docs": {}, "df": 0}, "docs": {}, "df": 0}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 1}}}}}, "f": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 7}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "[": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}, "default_value": {"root": {"docs": {}, "df": 0}}, "signature": {"root": {"1": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}, "3": {"0": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}, "9": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 3.4641016151377544}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 2}}, "df": 2}, "docs": {}, "df": 0}, "8": {"0": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 12.041594578792296}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 4.47213595499958}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 5.830951894845301}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 3.4641016151377544}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 3.4641016151377544}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 6.324555320336759}, "ffmpeg_bitrate_stats.run_command": {"tf": 7.874007874011811}}, "df": 7, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 2}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 2}}}}, "f": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1.7320508075688772}}, "df": 4, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}}, "df": 1}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "f": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 5}}}}, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 2}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}, "m": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1.4142135623730951}}, "df": 4}}}}, "d": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}}, "df": 1}}}}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 2}}}, "b": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}}, "df": 1, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}}}}}}}}}}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}}}, "h": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}}}}}}, "bases": {"root": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1}}, "df": 1}}}}}}}}}}}, "doc": {"root": {"1": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}, "3": {"0": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "8": {"0": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}, "docs": {}, "df": 0}, "docs": {"ffmpeg_bitrate_stats": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats": {"tf": 7.0710678118654755}, "ffmpeg_bitrate_stats.BitrateStats.__init__": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 4.795831523312719}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 4.898979485566356}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 4.58257569495584}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 4.58257569495584}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 4.58257569495584}, "ffmpeg_bitrate_stats.BitrateStatsSummary": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.run_command": {"tf": 1.4142135623730951}}, "df": 23, "i": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 9, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}}}}}, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 2}}}, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 2}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}, "f": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 4}, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}, "t": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 2.23606797749979}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 18}}, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 2.6457513110645907}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.7320508075688772}}, "df": 3}, "y": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 3}}}, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 2, "/": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "p": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}, "c": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 1}}}}}}}}}}}, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 9, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}}}}}}}}, "o": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "w": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}}}}}}, "c": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}, "h": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 3, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}}, "s": {"docs": {}, "df": 0, "v": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}}, "df": 2}}, "o": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}}}, "a": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 3, "r": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 3}}}}}}}, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}, "u": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 2}}}}}}}}}}, "g": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.aggregation": {"tf": 1}}, "df": 2}}}}}}}}}}, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}}, "df": 2}, "v": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 4}}}}}}}, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.input_file": {"tf": 1}}, "df": 2}}}, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 2}}, "df": 1}}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}, "p": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_fps": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}}}}, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 2.23606797749979}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 3, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.stream_type": {"tf": 1}}, "df": 2}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}}, "df": 2}}}}, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1}}, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1.7320508075688772}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.7320508075688772}}, "df": 4}}}}}}}}, "d": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}}, "df": 1}}}}}, "i": {"docs": {}, "df": 0, "z": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}}, "df": 2}}}, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.chunk_size": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 3}}}}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}, "p": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}}}}, "p": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}, "r": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}}, "df": 1}}}}, "l": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.7320508075688772}}, "df": 1}}}, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "k": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 1}}}, "o": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "l": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 2.449489742783178}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1}, "c": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "p": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "v": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}}, "df": 2}}}, "f": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 2}}, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "f": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 2.449489742783178}, "ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 2}}}}}}}, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.BitrateStatsSummary.duration": {"tf": 1}}, "df": 2}}}}}}}, "r": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1}}, "i": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "y": {"docs": {"ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 1}}}}}}}}, "v": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1}}, "df": 1}}}}, "a": {"docs": {}, "df": 0, "l": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}}, "df": 1}}}}}}}}}}, "r": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "d": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "g": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "t": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 3}}}}}, "l": {"docs": {}, "df": 0, "a": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate_factor": {"tf": 1}}, "df": 1}}}}}}}, "u": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}, "ffmpeg_bitrate_stats.run_command": {"tf": 1}}, "df": 2, "t": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 3}}}}}}}}}}}, "a": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 4}}}}}}, "h": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, ":": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1}}}}}}}, "e": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "g": {"docs": {}, "df": 0, "h": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 1}}}}}}, "m": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "c": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1}}}, "a": {"docs": {}, "df": 0, "x": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}}, "df": 1}}}}}}, "i": {"docs": {}, "df": 0, "n": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "u": {"docs": {}, "df": 0, "m": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}}, "df": 1}}}}}}}, "n": {"docs": {}, "df": 0, "o": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2, "n": {"docs": {}, "df": 0, "e": {"docs": {"ffmpeg_bitrate_stats.BitrateStats": {"tf": 1.4142135623730951}}, "df": 1}}}, "u": {"docs": {}, "df": 0, "m": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.num_frames": {"tf": 1}}, "df": 1}}}}}}, "e": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "r": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "r": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.calculate_statistics": {"tf": 1}}, "df": 1}}}}}, "j": {"docs": {}, "df": 0, "s": {"docs": {}, "df": 0, "o": {"docs": {}, "df": 0, "n": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.print_statistics": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1.4142135623730951}}, "df": 2}}}}, "g": {"docs": {}, "df": 0, "e": {"docs": {}, "df": 0, "t": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.get_csv": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStats.get_json": {"tf": 1}}, "df": 2}}}, "w": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "d": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "h": {"docs": {"ffmpeg_bitrate_stats.BitrateStats.plot": {"tf": 1.4142135623730951}}, "df": 1}}}}}, "k": {"docs": {}, "df": 0, "b": {"docs": {}, "df": 0, "i": {"docs": {}, "df": 0, "t": {"docs": {}, "df": 0, "/": {"docs": {}, "df": 0, "s": {"docs": {"ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.avg_bitrate_over_chunks": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.max_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.min_bitrate": {"tf": 1}, "ffmpeg_bitrate_stats.BitrateStatsSummary.bitrate_per_chunk": {"tf": 1}}, "df": 5}}}}}}}}}, "pipeline": ["trimmer"], "_isPrebuiltIndex": true}; // mirrored in build-search-index.js (part 1) // Also split on html tags. this is a cheap heuristic, but good enough. diff --git a/ffmpeg_bitrate_stats/__init__.py b/ffmpeg_bitrate_stats/__init__.py index 77871df..69a32db 100644 --- a/ffmpeg_bitrate_stats/__init__.py +++ b/ffmpeg_bitrate_stats/__init__.py @@ -1,5 +1,5 @@ from .bitrate_stats import BitrateStats, BitrateStatsSummary, run_command -__version__ = "1.0.2" +__version__ = "1.1.0" __all__ = ["BitrateStats", "BitrateStatsSummary", "run_command"]