Obter o mplayer para exibir a hora atual em horas e minutos

4

Por padrão, o mplayer exibe a localização atual no vídeo em segundos, o que é menos do que inútil. Exemplo:

A:4086.2 V:4086.2 A-V:  0.000 ct:  0.039   0/  0 17%  2%  2.1% 3 0 
  ^--------^----- This is the current location in seconds.

Bem, e daí? O Mplayer tem padrões terríveis. O que mais é novo? Mas o mplayer é altamente configurável até o último detalhe, então tem que haver uma maneira de mudar essa linha e colocar qualquer informação que você queira lá. Eu vasculhei a manpage embora, e não consigo encontrar uma opção que faça isso. Comportamento ideal:

A:1:08:06.2 V:1:08:06.2 A-V:  0.000 ct:  0.039   0/  0 17%  2%  2.1% 3 0 
  ^-----------^----- This is the current location in hours:minutes:seconds.

Alguém descobriu uma maneira de fazer isso?

    
por enigmaticPhysicist 02.03.2015 / 04:20

2 respostas

3

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 :

  1. hora atual
  2. hora atual / tempo total (age como -osdlevel 3 )
  3. OSD ativado (sem hora de exibição, mas pressionando P é permitido)
  4. 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 .

    
por 29.12.2015 / 12:16
0

Minha própria solução acabou sendo uma mudança para o fork mplayer chamado mpv, que lida com a exibição do tempo terminal em tempo real de forma muito mais sensata por padrão. Parece sério desenvolvimento mplayer estagnou completamente, assim mpv é agora melhor em todos os sentidos imagináveis. Tornou-se meu principal media player.

    
por 16.09.2016 / 07:56