mp3形式音声ファイルの再生時間取得

 下記のような、30個の音声ファイルが存在します。それぞれの再生時間を表示したいと思います。

 

 コアとなるコマンドは ffprobe というものです。このコマンドを叩くと、下記のように長々と情報が表示されます。欲しいのはこの中の 下から2行目 Duration の次に表示されている時間です。ちなみにこれらの情報は標準エラーに出力されています。

 

 そこで、下記のコマンド get_duration.sh を作成しました。ディレクトリ内の全てのmp3ファイルを対象として再生時間を取得してくれます。

#!/bin/bash

declare -a mp3files=( ` ls *.mp3` )
for mp3file in ${mp3files[*]}
do
duration=`ffprobe ${mp3file} 2>&1 |\
 grep "Duration:" |\
 awk '{print $2}' |\
 sed -e "s/,//g"`
 printf "%s\t%s\n" ${mp3file} ${duration}
done

 

 

 

 今回使用した音声ファイルは李姉妹(2021)「李姉妹のおしゃべりな中国語」(ISBN:9784398147523)のものを使用させていただきました。