mplayer 命令行仅显示时间戳

mplayer 命令行仅显示时间戳

我想使用 mplayer 命令行在终端中播放音乐文件,并仅保持输出消息安静(音频时间戳除外)。仅保留下面示例中的最后一行A: 133.5 (02:13.4) of 347.1 (05:47.0) 0.(当然 02:13.4/05:47.0 格式会更好)。有什么办法可以得到它吗?谢谢。

> mplayer -novideo "Tokimeki Records,ひかり/Midnight Pretenders (feat. ひかり)/Tokimeki Records,ひかり - Midnight Pretenders (feat. ひかり).flac"
MPlayer 1.5-14.0.0 (C) 2000-2022 MPlayer Team
Can't init Apple Remote.

Playing Tokimeki Records,ひかり/Midnight Pretenders (feat. ひかり)/Tokimeki Records,ひかり - Midnight Pretenders (feat. ひかり).flac.
libavformat version 59.17.102 (internal)
libavformat file format detected.
[lavf] stream 0: audio (flac), -aid 0
[lavf] stream 1: video (mjpeg), -vid 0
Clip info:
 ALBUM: Midnight Pretenders (feat. ひかり)
 ARTIST: Tokimeki Records/ひかり
 COMMENT: Create by xxxx copyright protected dump tool. author 5L
 TITLE: Midnight Pretenders (feat. ひかり)
Load subtitles in Tokimeki Records,ひかり/Midnight Pretenders (feat. ひかり)/
==========================================================================
Opening audio decoder: [ffmpeg] FFmpeg/libavcodec audio decoders
libavcodec version 59.21.100 (internal)
AUDIO: 48000 Hz, 2 ch, s16le, 0.0 kbit/0.00% (ratio: 0->192000)
Selected audio codec: [ffflac] afm: ffmpeg (FFmpeg FLAC audio)
==========================================================================
AO: [coreaudio] 48000Hz 2ch s16le (2 bytes per sample)
Video: no video
Starting playback...
A: 133.5 (02:13.4) of 347.1 (05:47.0)  0.

答案1

您可以通过禁用所有模块的详细程度并仅启用它来做到这一点STATUSLINE

mplayer -novideo -msglevel all=0:statusline=5 infile.mp4

-msglevel选项在手册中进行了解释:

-msglevel <all=<level>:<module>=<level>:...>
直接控制每个模块的详细程度。 “all”模块更改命令行上未明确指定的所有模块的详细程度。请参阅-msglevel help参考资料 获取所有模块的列表。
注意:某些消息是在解析命令行之前打印的,因此不受-msglevel.要控制这些消息,您必须使用MPLAYER_VERBOSE环境变量。
可用级别:
-1 完全静音
0 仅致命消息
1 错误消息
2 警告消息
3 简短提示
4 信息性消息
5 状态消息(默认)
6 详细消息
7 调试级别 2
8 调试级别 3
9 调试级别 4

或者,你可以使用mpv它具有类似的开关并打印经过/总时间,就像您想要的那样:

mpv --no-video --msg-level=all=no,statusline=status infile.mp4

相关内容