python读取视频文件大小,码率,帧率,以及通过码率计算文件大小与流量
Posted 梦想橡皮擦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python读取视频文件大小,码率,帧率,以及通过码率计算文件大小与流量相关的知识,希望对你有一定的参考价值。
实操背景
本篇博客将通过Python获取视频文件的大小,码率,帧率等元数据信息,并提取视频的第一帧作为封面。
使用到的模块是 ffmpeg-python
,同时需要提前安装好 ffmpeg
工具,基本使用可以参考python操作ffmpeg,做视频转码【上篇】。
模块安装 pip install ffmpeg-python
,模块导入 import ffmpeg
。
此时用到的是 ffmpeg
工具中的 ffprobe.exe
程序(测试环境在 windows 上实施)
如果你使用的是 Linux ,可以使用查找命令检索一下 ffprobe
程序所在位置
find / -name ffprobe
/usr/local/bin/ffprobe
提前准备一个 MP4 文件用于分析,调用属性查看得到的视频信息如下所示。
视频时长,比特率等内容
视频文件大小和相关时间
编码时间
完成的代码如下所示,相关说明已经写在注释中。
import ffmpeg
def get_video_info():
probe = ffmpeg.probe('./测试视频文件.mp4')
print(probe) # 获取视频多媒体文件的信息
format = probe['format']
# print(format)
bit_rate = format['bit_rate']
print(int(bit_rate)) # 单位 bps(每秒字节数)
kbps = int(bit_rate) / 1000
duration = format['duration']
duration = int(float(duration)) # 时长(单位秒)
print(int(format['size'])) # 获取文件大小(单位字节)
print(int(int(probe['streams'][0]['r_frame_rate'].split('/')[0]) / int(
probe['streams'][0]['r_frame_rate'].split('/')[1]))) # 获取帧率
# 通过比特率X时长/8 计算文件大小
file_size = kbps * duration / 8
print(file_size) # 得到文件的大小是 KB
print(file_size / 1024) # 计算得到的数据
print(int(format['size']) / 1024 / 1024) # 读取得到的数据
if __name__ == '__main__':
get_video_info()
其中除帧率外,其它值可以直接读取, streams
是文件流数据,包括视频与音频。
使用比特率计算出来的文件大小与直接读取文件大小差异不大,该形式可以用于计算用户流量的使用。
记录时间
2022年度 Flag,写作的 566 / 1024 篇。
可以关注我,点赞我、评论我、收藏我啦。
更多精彩
以上是关于python读取视频文件大小,码率,帧率,以及通过码率计算文件大小与流量的主要内容,如果未能解决你的问题,请参考以下文章