音楽ファイルの時間をpythonで取得(ffmpeg使用)

 

{{DZ_TITLE}}
音楽ファイルの時間をpythonで取得
ffmpegのffprobe を使用します。

import subprocess

def get_duration(ffprobe,m4a):
    proc = subprocess.Popen([ffprobe,m4a], shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    while True:
        try:
            line = proc.stdout.readline().decode().strip()
        except:
            continue
        if not line and proc.poll() is not None:
            break
        if not 'Duration:' in line:
            continue

        ary = line.split(',')
        for item in ary:
            if 'Duration:' in line:
                duration = item.replace('Duration:','').strip()
                split_dot = duration.split('.')
                split_coron = split_dot[0].split(':')
                return duration, \
                    float(split_coron[0]) * 60 * 60 + \
                    float(split_coron[1]) * 60  + \
                    float(split_coron[2]) + \
                    float(split_dot[1])/100
                        
    return 'Error'

実行

ffprove_path = r'D:\App\ffprobe.exe'
filepatn     = r'D:\Temp\test.m4a'
get_duration(ffprove_path,filepatn)

結果

('00:16:17.53', 977.53)

おすすめ記事

to_excelでxlsx,xlsファイルを書き込む / Python Pandas
to_excelでxlsx,xlsファイルを書き込む / Python Pandas
エラーを解消したい PermissionError: [Errno 13] Permission denied: ファイル名 - Python
エラーを解消したい PermissionError: [Errno 13] Permission denied: ファイル名 - Python
OpenCVで動画作成 VideoWriter - Python徹底解説
OpenCVで動画作成 VideoWriter - Python徹底解説
文字列による条件抽出 - Python Pandas
文字列による条件抽出 - Python Pandas
Django テンプレート 使用 #3 List Dictの表示
Django テンプレート 使用 #3 List Dictの表示
賞金 $55,000、OSIC肺線維症の進行 確認プログラム コンペティション
賞金 $55,000、OSIC肺線維症の進行 確認プログラム コンペティション
Supponsered

外部サイト
↓プログラムを学んでみたい場合、学習コースなどもおすすめです!

Comments

comments powered by Disqus