使用mplayer确定音频/视频文件的长度

时间:2009-01-30 23:27:49

标签: shell

以下可以很好地确定各种音频/视频文件的长度:

mplayer -identify file.ogg 2>/dev/null | grep ID_LENGTH

但是,我想杀死mplayer的输出,这样我就可以更有效地确定许多文件的长度。我该怎么做?

5 个答案:

答案 0 :(得分:15)

MPlayer源附带一个名为midentify的示例脚本,如下所示:

#!/bin/sh
#
# This is a wrapper around the -identify functionality.
# It is supposed to escape the output properly, so it can be easily
# used in shellscripts by 'eval'ing the output of this script.
#
# Written by Tobias Diedrich <ranma+mplayer@tdiedrich.de>
# Licensed under GNU GPL.

if [ -z "$1" ]; then
        echo "Usage: midentify.sh <file> [<file> ...]"
        exit 1
fi

mplayer -vo null -ao null -frames 0 -identify "$@" 2>/dev/null |
        sed -ne '/^ID_/ {
                          s/[]()|&;<>`'"'"'\\!$" []/\\&/g;p
                        }'

-frames 0立即退出mplayer-vo null -ao null阻止其尝试打开任何视频或音频设备。这些选项都记录在man mplayer

答案 1 :(得分:5)

FFMPEG可以以不同的格式提供相同的信息(并且不会尝试播放该文件):

ffmpeg -i <myfile>

答案 2 :(得分:2)

除了@ codelogic的方法之外还有另一种FF方式,它不会因错误而退出:

ffprobe <file>

并查找持续时间条目。

或直接在错误流中grep:

ffprobe <file> 2> >(grep Duration)

答案 3 :(得分:0)

看起来有一些其他可用的库,请参阅time length of an mp3 file

答案 4 :(得分:-1)

下载.mp3文件,使用播放器(例如Windows Media Player)播放,播放器将在播放结束时显示总时间。