カテゴリー
fffmpeg python

pythonとffmpegでwebmに変換

前回の内容をpythonを使って、フォルダの中のファイルを変換するプログラムをつくってみました。(環境は前回と同様にWSL2です)

今回のプログラムはシェルスクリプトでパイプを使うのが普通だと思いますが、あえてpythonで作りました。

# -*- coding: utf-8 -*-
import subprocess
import os

input_path = "./movie"
output_path = "./output"

#フォルダの中のファイル
files = os.listdir(input_path)

for i in files:
    #ファイル名と拡張子を分ける
    filename, extension = os.path.splitext(i)
    if extension == ".mp4":
        mp4_path = f'{input_path}/{i}'
        webm_path = f'{output_path}/{filename}.webm'
        try:
            args = f'ffmpeg -i {mp4_path} {webm_path}'
            subprocess.run(args, shell=True, check=True)
            print(f'{filename}は変換されました')
            #ファイル容量取得
            mp4_filesize = os.path.getsize(mp4_path)
            webm_filesize = os.path.getsize(webm_path)
            complession_num = webm_filesize/mp4_filesize
            print("{}のサイズは元の{:.2f}になりました".format(filename, complession_num))
        except Exception as e:
            print('エラー')
            print(e)