ホームページ >バックエンド開発 >Python チュートリアル >Python でビデオ ファイルのサイズと長さを取得するにはどうすればよいですか?

Python でビデオ ファイルのサイズと長さを取得するにはどうすればよいですか?

WBOY
WBOY転載
2023-04-22 22:25:152694ブラウズ

1. 前提知識

ここでは、os、pandas、moviepy という合計 3 つの Python ライブラリが必要です。

  • ① os: 特定のディレクトリ内のファイルとファイル サイズを取得するために使用されます;

  • ② pandas: 情報を抽出して保存するために使用されますExcel;

  • ③ moviepy: ビデオ ファイルの長さを取得するために使用;

注:

pandas と moviepyはサードパーティのライブラリであるため、次のコマンドを使用して事前にインストールする必要があります。

pip install pandas
pip install moviepy

2. 完全なコード

① すべてのライブラリをインポートします

import os
import pandas as pd
from moviepy.editor import VideoFileClip

② 指定されたディレクトリで修飾されたファイルを取得します

useful_dir = []
for i in os.listdir():
    if i.endswith("wmv"):
        useful_dir.append(i)
useful_dir

結果は次のとおりです:

Python でビデオ ファイルのサイズと長さを取得するにはどうすればよいですか?

③ カスタム時間変換関数

def time_convert(seconds):
    M,H = 60,3600
    if seconds < M:
        return f&#39;00:00:0{seconds}&#39; if seconds < 10 else f&#39;00:00:{str(seconds)}&#39;
    elif seconds < H:
        _M = int(seconds//M)
        _S = int(seconds%M)
        return f&#39;00:{f"0{_M}" if _M < 10 else str(_M)}:{f"0{_S}" if _S < 10 else str(_S)}&#39;
    else:
        _H = int(seconds//H)
        _M = int(seconds%H//M)
        _S = int(seconds%H%M)
        return f&#39;{f"0{_H}" if _H < 10 else str(_H)}:{f"0{_M}" if _M < 10 else str(_M)}:{f"0{_S}" if _S < 10 else str(_S)}&#39;
以下で紹介する VideoFileClip()

メソッドのため、継続時間を取得する単位は秒となります。 。したがって、秒を適切な「時、分、秒」形式に変換する必要があります。時間が1分を超える場合は「分:秒」、1時間を超える場合は「時:分:秒」の形式に変換されます。

④ ファイルサイズと再生時間を取得します

x = []
y = []
for i in useful_dir:
    dir_size = str(round(os.path.getsize(i)/1024/1024,1)) + "M"
    clip = VideoFileClip(i)
    dir_time = time_convert(clip.duration)
    x.append(dir_size)
    y.append(dir_time)
df = pd.DataFrame({"文件大小":x,"文件时长":y})
df

結果は以下の通りです:

Python でビデオ ファイルのサイズと長さを取得するにはどうすればよいですか?

⑤ 取得したデータをExcelに保存します

df.to_excel("info.xlsx",index=False)

最終的な効果は写真の通りです:

Python でビデオ ファイルのサイズと長さを取得するにはどうすればよいですか?

###

以上がPython でビデオ ファイルのサイズと長さを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。