Usando o VLC CLI, existe alguma maneira de reproduzir os últimos x segundos de cada vídeo em uma lista de reprodução?
Estou ciente:
--start-time= Hora de início
The stream will start at this position (in seconds).
--stop-time= Hora de parar
The stream will stop at this position (in seconds).
--run-time= Tempo de execução
The stream will run this duration (in seconds).
Mas sem alguma lógica sofisticada, nada disso realmente faz o que eu gostaria.
Isso é para revisar o vídeo acionado por movimento, onde os últimos 15 segundos são geralmente os mais interessantes para determinar se você deseja assistir ou salvar o vídeo inteiro.
Se você também
ffmpeg
instalou, pode usar o seguinte script. É simples e não cuida de casos de limite, como vídeos com menos de 15 segundos ou arquivos com defeito (você teria que estendê-lo). Mas fora isso, reproduz os últimos 15 segundos de um arquivo com o VLC:Você pode, é claro, colocar isso em um
for
loop.Habilidades simples de script bash serão suficientes para fazer isso (você deve ter uma ideia). Não encontrei uma maneira de recuperar a duração de um arquivo de vídeo do VLC, então tive que usar
ffmpeg
.Uma segunda possibilidade é lidar diretamente com a lista de reprodução. Você precisa de um processador XSLT para isso, como
xsltproc
(Linux/Ubuntu) ou Saxon-HE(Linux/Windows):Por exemplo, suponha que você tenha uma lista de reprodução do VLC chamada
play.xspf
.Em seguida, aplique esta folha de estilo XSLT-1.0 (chamada
playlist.xslt
) à lista de reprodução:Você pode fazer isso com
ou
Sua saída é um
bash
script que executará os últimos 15 segundos de cada arquivo da lista de reprodução ou pulará o arquivo se ele tiver menos de 15 segundos.Se você estiver usando o Windows, simplesmente remova a
#!/bin/bash
linha (e ajuste o restante aos requisitos do arquivo em lote, se necessário).