klu*_*utt 1 command-line scripting bash mp3
我有一个包含大量 mp3 文件的目录,我需要一种简单的方法来查找它们的累积持续时间。我知道我可以找到一个文件的持续时间
ffmpeg -i <file> 2>&1 | grep Duration
Run Code Online (Sandbox Code Playgroud)
我还知道我可以使用以下命令对目录中的所有 mp3 文件运行此命令
for file in *.mp3; do ffmpeg -i "$file" 2>&1 | grep Duration; done
Run Code Online (Sandbox Code Playgroud)
这可以稍微过滤一下
for file in *.mp3; do ffmpeg -i "$file" 2>&1 | grep Duration | cut -f4 -d ' '; done
Run Code Online (Sandbox Code Playgroud)
但我该如何总结这一切呢?使用ffmpeg是没有必要的。输出格式也不是那么重要。秒或 mm:ss 或类似的东西都可以。我希望它看起来像这样:
$ <command>
84:33
Run Code Online (Sandbox Code Playgroud)
您可以准确获得以秒为单位的持续时间,然后将它们与 bc 相加:
for file in *.mp3;do ffprobe -v error -select_streams a:0 -show_entries stream=duration -of default=noprint_wrappers=1:nokey=1 "$file";done|paste -sd+|bc -l
Run Code Online (Sandbox Code Playgroud)
请自行将此数字转换为 HH:MM:SS 格式。例如/sf/answers/853987151/
| 归档时间: |
|
| 查看次数: |
2337 次 |
| 最近记录: |