python读取视频文件大小,码率,帧率,以及通过码率计算文件大小与流量

这篇博客介绍了如何通过Python的ffmpeg-python库获取视频的元数据,如大小、码率、帧率等,并展示了如何计算视频文件大小。文章提供了详细代码示例,演示了获取视频信息并提取第一帧作为封面的过程。
摘要由CSDN通过智能技术生成

实操背景

本篇博客将通过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 文件用于分析,调用属性查看得到的视频信息如下所示。
视频时长,比特率等内容

python读取视频文件大小,码率,帧率,以及通过码率计算文件大小与流量

视频文件大小和相关时间

python读取视频文件大小,码率,帧率,以及通过码率计算文件大小与流量

编码时间

完成的代码如下所示,相关说明已经写在注释中。

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 篇。
可以关注我,点赞我、评论我、收藏我啦。

更多精彩


👇👇👇扫码加入【78技术人】~ Python 事业部👇👇👇
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值