下記のような、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)のものを使用させていただきました。