
特定のディレクトリの完全なオーディオ再生時間を取得するLinuxコマンドライン(bash)に方法/ツールがありますか?
それは次のとおりです。
playtime --all --recursive /Music/DrumAndBass/
output: 1:35:06
答え1
このツールを使って簡単なmp3info
方法を見つけましたawk
。
残念ながら、これはmp3ファイルでのみ機能します。
mp3info -p "%m:%s\n" directory/*.mp3 |
awk -F: '{a+=$1*60+$2}END{printf"%d:%02d:%02d",a/3600,a%3600/60,a%3600%60}'
または小さなbashスクリプトで
#!/bin/bash
dir="$1"
mp3info -p "%m:%s\n" "$dir/*.mp3" |
awk -F: '{a+=$1*60+$2}END{printf"%d:%02d:%02d",a/3600,a%3600/60,a%3600%60}'
修正する:
sndfile-info
または、次のようなsox
さまざまなファイル形式の再生時間を取得できます。flac
wav
sndfile-info audio.flac | awk '/^Duration/ { print $3 }'
またはsox
解決策:
sox -V3 audio.flac -n |& awk '/^Duration/ { print $3;exit }'
(最初の項目のみを印刷するようにコマンドexit
の出力を制限します。)awk