A command line program that outputs one of the following:
[1] A graph showing the bitrate every second. The graph can be "filled" or "unfilled".
Unfilled graph example:
Filled graph example:
[2] Information about every Group of Pictures (GOP). You must use the -gop
argument if this is what you are looking for. Only applicable if analysing a video file. Here's an example of the output:
Detected the following info about BigBuckBunny.mp4:
----------------------------------------------------
Duration: 596.474195s
Number of Frames: 14315
Framerate: 24.0 FPS
----------------------------------------------------
GOP Statistics:
GOP count: 266
Average number of packets per GOP: 53.8
GOP duration range: 0.500s to 2.500s
Average GOP duration: 2.242s
GOP size range: 0.54 to 9.09 Megabits
GOP bitrate range: 0.51 to 4.07 Mbps
Average GOP bitrate: 2.00 Mbps
✓ Average PTS interval matches expected frame rate
✓ PTS intervals are consistent
[Info] GOP durations are inconsistent:
Min GOP Duration: 0.5000006666665892
Max GOP Duration: 2.5000006666667027
- Python 3.7+
- FFprobe executable in your PATH.
pip install -r requirements.txt
You can find the output of python main.py -h
below:
usage: main.py [-h] -f FILE_PATH [-dts] [-gop] [-g {filled,unfilled}] [-s STREAM_SPECIFIER]
options:
-h, --help show this help message and exit
-f, --file-path FILE_PATH
Enter the path of the file that you want to analyse.
If the path contains a space, it must be surrounded in double quotes.
Example: -f "C:/Users/H/Desktop/my file.mp4"
-dts Use DTS instead of PTS when calculating bitrates.
Only applicable if analysing a video file.
-gop Output information about every Group Of Pictures (GOP).
Only applicable if analysing a video file.
-g, --graph-type {filled,unfilled}
Specify the type of graph that should be created. The default graph type is "unfilled".
To see the difference between a filled and unfilled graph, check out the example graph files.
-s, --stream-specifier STREAM_SPECIFIER
Use FFmpeg stream specifier syntax to specify the audio/video stream that you want to analyse.
The defaults for audio and video files are a:0 and V:0, respectively.
Note that stream index starts at 0.
As an example, to target the 2nd audio stream: --stream-specifier a:1