python读取视频文件大小,码率,帧率,以及通过码率计算文件大小与流量
生活随笔
收集整理的這篇文章主要介紹了
python读取视频文件大小,码率,帧率,以及通过码率计算文件大小与流量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實操背景
本篇博客將通過Python獲取視頻文件的大小,碼率,幀率等元數據信息,并提取視頻的第一幀作為封面。
使用到的模塊是 ffmpeg-python ,同時需要提前安裝好 ffmpeg 工具,基本使用可以參考python操作ffmpeg,做視頻轉碼【上篇】。
模塊安裝 pip install ffmpeg-python ,模塊導入 import ffmpeg 。
此時用到的是 ffmpeg 工具中的 ffprobe.exe 程序(測試環境在 windows 上實施)
如果你使用的是 Linux ,可以使用查找命令檢索一下 ffprobe 程序所在位置
提前準備一個 MP4 文件用于分析,調用屬性查看得到的視頻信息如下所示。
視頻時長,比特率等內容
視頻文件大小和相關時間
編碼時間
完成的代碼如下所示,相關說明已經寫在注釋中。
import ffmpegdef 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) / 1000duration = 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 / 8print(file_size) # 得到文件的大小是 KBprint(file_size / 1024) # 計算得到的數據print(int(format['size']) / 1024 / 1024) # 讀取得到的數據if __name__ == '__main__':get_video_info()其中除幀率外,其它值可以直接讀取, streams 是文件流數據,包括視頻與音頻。
使用比特率計算出來的文件大小與直接讀取文件大小差異不大,該形式可以用于計算用戶流量的使用。
記錄時間
2022年度 Flag,寫作的 566 / 1024 篇。
可以關注我,點贊我、評論我、收藏我啦。
更多精彩
- Python 爬蟲 100 例教程導航帖(連續 3 年,不斷更!)
- Python爬蟲120 (39.9 元,保 5 年更新)
👇👇👇掃碼加入【78技術人】~ Python 事業部👇👇👇
總結
以上是生活随笔為你收集整理的python读取视频文件大小,码率,帧率,以及通过码率计算文件大小与流量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 请求Root权限代码
- 下一篇: python 使用 requests 库