Linux
從命令行獲取文件夾的音頻播放時間
linux命令行(bash)有沒有辦法/工具來獲取某個目錄的整體音頻播放時間?
就像是:
playtime --all --recursive /Music/DrumAndBass/ output: 1:35:06
我找到了一個簡單的方法,通過使用該工具
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
的將輸出限制為僅列印第一個匹配項)