在 OS X 上我可以使用哪些命令行应用程序来获取电影播放时间?我希望能够做这样的事情:
$ running_time matrix.avi
136 min
答案1
最多命令行编码工具可以提供此信息。添加一些 shell 脚本将输出修剪为仅包含持续时间的行。
添加更多内容以将该行处理为您想要的“xxx min”输出。具体需要什么取决于您使用的工具。(请参阅 mplayer 示例以获取建议。)获得这些后,您可以创建一个 shell 脚本或别名来运行该命令running_time
。
FFMpeg:
ffmpeg -i foo.avi
ffmpeg -i foo.avi 2>&1 | grep Duration
Mplayer/Mencoder(ID_LENGTH 以秒为单位):
mplayer -vo null -ao null -identify -frames 0 foo.avi
mplayer -vo null -ao null -identify -frames 0 foo.avi | grep ID_LENGTH
# ugly, but outputs "xx mins"
mplayer -identify -ao null -vo null -frames 0 foo.avi | grep ^ID_LENGTH= | cut -d = -f 2 | perl -lne 'print sprintf("%d mins", $_/60)'
转码(使用tcprobe
工具):
tcprobe -i foo.avi
tcprobe -i foo.avi | grep duration