使用ffmpeg计算比特率统计
ffmpeg_bitrate_stats的Python项目详细描述
使用ffmpeg计算比特率统计的简单脚本。
作者:werner robitzawerner.robitza@gmail.com
内容:
要求
- Python3.6
- FFmpeg:
- 从their website 下载静态生成
- 将ffprobe可执行文件放入$PATH
- pip3 install -r requirements.txt
安装
pip install ffmpeg_bitrate_stats
或者克隆此存储库,然后使用 python -m ffmpeg_bitrate_stats
用法
脚本输出一组比特率统计信息,包括聚合 用于预定义窗口。这些窗口可以是基于时间的,也可以是 基于GOP(用于视频流)。选择基于时间的窗口时, 可以以秒为单位指定块的大小。
输出为STDOUT,因此可以将其重定向到一个或另一个文件 脚本
见ffmpeg_bitrate_stats -h:
usage: ffmpeg_bitrate_stats [-h] [-n] [-v] [-s {video,audio}] [-a {time,gop}] [-c CHUNK_SIZE] [-of {json,csv}] input positional arguments: input input file optional arguments: -h, --help show this help message and exit -n, --dry-run Do not run command, just show what would be done (default: False) -v, --verbose Show verbose output (default: False) -s {video,audio}, --stream-type {video,audio} Stream type to analyze (default: video) -a {time,gop}, --aggregation {time,gop} Window for aggregating statistics, either time-based (per-second) or per GOP (default: time) -c CHUNK_SIZE, --chunk-size CHUNK_SIZE Custom aggregation window size in seconds (default: 1.0) -of {json,csv}, --output-format {json,csv} output in which format (default: json)
输出
输出可以是json,它包括每个块的各个字段, 或者csv,它为每个块重复每一行。CSV遵循 “整洁”的数据概念,所以有点多余
速率以千位每秒为单位,使用SI前缀(即,千= 1000)。
字段说明:
- input_file:输入文件的路径
- stream_type:使用的流类型(视频、音频)
- avg_fps:平均fps(帧数除以持续时间)
- num_frames:帧数
- avg_bitrate:平均比特率
- avg_bitrate_over_chunks:在 大块
- ^ TT12}$:在块 上计算的最大比特率
- min_bitrate:在块上计算的最小比特率
- max_bitrate_factor:峰值和平均值之间的关系
- bitrate_per_chunk:每个块的个别比特率
- aggregation:使用的聚合类型
- chunk_size:块的大小(聚合为“时间”时)
- duration:流的总持续时间(最后一帧DTS减去 第一个DTS)
json示例:
➜ ffmpeg_bitrate_stats -a time -c 30 -of json BigBuckBunny.mp4 { "input_file": "BigBuckBunny.mp4", "stream_type": "video", "avg_fps": 60.002, "num_frames": 38072, "avg_bitrate": 8002.859, "avg_bitrate_over_chunks": 7849.263, "max_bitrate": 14565.117, "min_bitrate": 3876.533, "max_bitrate_factor": 1.82, "bitrate_per_chunk": [ 8960.89, 8036.678, 6099.959, 4247.879, 7276.979, 5738.383, 7740.339, 7881.705, 7572.594, 8387.719, 9634.343, 9939.488, 9365.104, 5061.071, 14565.117, 9725.483, 4573.873, 7765.041, 9796.135, 12524.024, 3876.533, 3914.455 ], "aggregation": "time", "chunk_size": 30.0, "duration": 634.517 }
CSV示例:
➜ ffmpeg_bitrate_stats -a time -c 30 -of csv BigBuckBunny.mp4 input_file,chunk_index,stream_type,avg_fps,num_frames,avg_bitrate,avg_bitrate_over_chunks,max_bitrate,min_bitrate,max_bitrate_factor,bitrate_per_chunk,aggregation,chunk_size,duration BigBuckBunny.mp4,0,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,8960.89,time,30.0,634.517 BigBuckBunny.mp4,1,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,8036.678,time,30.0,634.517 BigBuckBunny.mp4,2,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,6099.959,time,30.0,634.517 BigBuckBunny.mp4,3,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,4247.879,time,30.0,634.517 BigBuckBunny.mp4,4,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,7276.979,time,30.0,634.517 BigBuckBunny.mp4,5,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,5738.383,time,30.0,634.517 BigBuckBunny.mp4,6,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,7740.339,time,30.0,634.517 BigBuckBunny.mp4,7,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,7881.705,time,30.0,634.517 BigBuckBunny.mp4,8,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,7572.594,time,30.0,634.517 BigBuckBunny.mp4,9,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,8387.719,time,30.0,634.517 BigBuckBunny.mp4,10,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,9634.343,time,30.0,634.517 BigBuckBunny.mp4,11,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,9939.488,time,30.0,634.517 BigBuckBunny.mp4,12,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,9365.104,time,30.0,634.517 BigBuckBunny.mp4,13,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,5061.071,time,30.0,634.517 BigBuckBunny.mp4,14,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,14565.117,time,30.0,634.517 BigBuckBunny.mp4,15,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,9725.483,time,30.0,634.517 BigBuckBunny.mp4,16,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,4573.873,time,30.0,634.517 BigBuckBunny.mp4,17,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,7765.041,time,30.0,634.517 BigBuckBunny.mp4,18,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,9796.135,time,30.0,634.517 BigBuckBunny.mp4,19,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,12524.024,time,30.0,634.517 BigBuckBunny.mp4,20,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,3876.533,time,30.0,634.517 BigBuckBunny.mp4,21,video,60.002,38072,8002.859,7849.263,14565.117,3876.533,1.82,3914.455,time,30.0,634.517
许可证
ffmpeg_比特率统计,版权所有(c)2019 Werner Robitz
特此免费向任何获得 本软件和相关文档文件的副本 “软件”),无限制地处理软件,包括 但不限于使用、复制、修改、合并、发布, 分发、再授权和/或出售软件副本,以及 允许向其提供软件的人员这样做,但须遵守 以下条件:
上述版权公告及本许可公告须包括在内 在软件的所有副本或大部分中
软件按“原样”提供,不作任何形式的保证 或默示的,包括但不限于 适销性、适合特定目的和不侵权。 在任何情况下,作者或版权持有人均不对任何 索赔、损害赔偿或其他责任,无论是在合同诉讼中, 侵权行为或其他,由 软件或软件中的使用或其他交易