>  기사  >  백엔드 개발  >  Python에서 비디오 파일의 크기와 지속 시간을 얻는 방법은 무엇입니까?

Python에서 비디오 파일의 크기와 지속 시간을 얻는 방법은 무엇입니까?

WBOY
WBOY앞으로
2023-04-22 22:25:152640검색

1. 사전 지식

여기에는 os, pandas, moviepy 총 3개의 Python 라이브러리가 필요합니다.

  • ① os: 특정 디렉터리의 파일 및 파일 크기를 얻는 데 사용됩니다.

  • ② pandas: 추출된 정보를 Excel에 저장하는 데 사용됩니다.

  • 3 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에서 비디오 파일의 크기와 지속 시간을 얻는 방법은 무엇입니까?

3 사용자 정의 시간 변환 기능

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시간을 초과하면 "시:분:초" 형식으로 변환됩니다.

4 파일 크기 및 기간 가져오기

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제