if I can even get VLC to provide for me the current "time" of a video I am playing…
Isso pode ser feito. O VLC fornece muitas interfaces. Vamos usar o telnet.
Etapa 1: habilitando o telnet no VLC
Método único por demanda:
vlc --extraintf telnet --telnet-port 4212 --telnet-password "foobar" video_file_to_play.avi
Ou configuração permanente. Execute o VLC, Ferramentas - > Preferências (ou Ctrl + P ), então:
e
Nota:estemétodopermanenterequerquevocêreinicieoVLC.
Etapa2:testando
AgoravocêpodecontrolaroVLCcomotelnet.Digiteasenhacorretaquandosolicitado.Exemplo:
$telnetlocalhost4212Trying127.0.0.1...Connectedtolocalhost.Escapecharacteris'^]'.VLCmediaplayer2.2.2WeatherwaxPassword:Welcome,Master>get_time30>
Comovocêpodever,ocomandopararecuperarotempodereproduçãoatualéget_time
.Digitehelp
parasabermaiscomandosVLC,quit
parasair.Talvezvocêencontresnapshot
útil.
Etapa3:usandoemumscript
Bastantesimplestubo.Aquieuusonc
emvezdetelnet
(efoobar
éminhasenha,useasua):
printf'%s\n'"foobar" "get_time" | nc localhost 4212
Meu VLC retorna:
VLC media player 2.2.2 Weatherwax Password: ���� Welcome, Master 87 > Bye-bye!
então eu uso head
e tail
para extrair apenas a linha relevante:
printf '%s\n' "foobar" "get_time" | nc localhost 4212 | head -n 4 | tail -n 1
Infelizmente, a resolução de tempo é de 1 segundo. Eu não encontrei um comando para recuperar o número do quadro atual ou mais.