Vamos dar uma olhada no código-fonte do mplayer, mplayer.c :
...
// Audio time
if (mpctx->sh_audio) {
saddf(line, &pos, width, "A:%6.1f ", a_pos);
if (!sh_video) {
float len = demuxer_get_time_length(mpctx->demuxer);
saddf(line, &pos, width, "(");
sadd_hhmmssf(line, &pos, width, a_pos);
saddf(line, &pos, width, ") of %.1f (", len);
sadd_hhmmssf(line, &pos, width, len);
saddf(line, &pos, width, ") ");
}
}
// Video time
if (sh_video)
saddf(line, &pos, width, "V:%6.1f ", sh_video->pts);
// A-V sync
if (mpctx->sh_audio && sh_video)
saddf(line, &pos, width, "A-V:%7.3f ct:%7.3f ", a_v, corr);
...
Como você pode ver, somente if (mpctx->sh_audio) AND if (!sh_video)
, enquanto somente áudio, chamará sadd_hhmmssf()
, que imprimirá o formato hh: mm: ss para stdout. Mas mpctx->sh_audio && sh_video
, enquanto o áudio + vídeo não.
Portanto, se você chamar o comando mplayer
com a opção -novideo
, ele será incluído no formato hh: mm: ss :
[xiaobai@xiaobai example]$ mplayer -novideo example.mkv
MPlayer SVN-r37391-5.1.1 (C) 2000-2015 MPlayer Team
...
Video: no video
Position: 58 %
A: 90.5 (01:30.4) of 145.4 (02:25.4) 0.0%
[MPlayer-dev-eng] [PATCH] tempo total para áudio somente arquivos explicaram a origem do áudio somente:
the attached patch makes MPlayer display the total time in the status line for audio-only files. I think this is useful for audio-only since
1) the status line is still quite small
2) you can't just activate the OSD to find the total time
A partir desta explicação, sabemos que o OSD pode ser ativado para atingir o mesmo objetivo. Agora, basta ler man mplayer
e pesquisar a palavra-chave do OSD:
...
o
Toggle OSD states: none / seek / seek + timer / seek + timer + total time.
...
P
Show progression bar, elapsed time and total duration on the OSD.
...
-osdlevel <0-3> (MPlayer only)
Specifies which mode the OSD should start in.
0 subtitles only
1 volume + seek (default)
2 volume + seek + timer + percentage
3 volume + seek + timer + percentage + total time
...
Isso significa que pressionar P alternará a hora / o tempo total em tempo real ou chamar mplayer -osdlevel 3 file
para mostrar a hora atual / tempo total de forma consistente:
[UPDATE]
Tenha em atenção que existem 4 estados se premir continuamente o :
- hora atual
- hora atual / tempo total (age como
-osdlevel 3
) - OSD ativado (sem hora de exibição, mas pressionando P é permitido)
- OSD desativado (pressione P não fará nada)
Por motivo desconhecido, -novideo
ainda aceitam a chave o e só introduzem 2 estados, ou seja, habilitam o OSD e desabilitam o OSD. Um erro ocorrerá se você pressionar o para ativar o OSD e, em seguida, pressionar P e ele exibirá 00: 00: 00 / total time .