O lote extrai imagens de * .mts a cada 30 segundos?

1

Perdoe-me pois estou apenas começando com o ffmpeg. Eu tenho uma pasta de vídeos * .mts (os títulos são meio que estranhos, muitos espaços e caracteres e números - não tenho certeza se isso está afetando) e eu preciso extrair imagens a cada 30 segundos para todos os vídeos em um pasta.

Eu tenho bons scripts para extraí-lo um por um, como

ffmpeg -i "* .mts" -número_do_start 0 -vf fps = 1/30 "B 00-% 02d-30.000.png"

No entanto, eu preciso criar um arquivo de lote para fazer isso para todos os arquivos .mts em uma pasta especificada.

Alguma chance de alguém me explicar como escrevê-lo (supondo que o arquivo de lote esteja no mesmo local que as fotos)?

Obrigado

    
por Alissa Marie Exantus 18.10.2015 / 21:08

1 resposta

1

Eu usaria o comando for :

for /f "delims=|" %%f in ('dir /b *.mts') do (ffmpeg -i "%%f" -start_number 0 -vf fps=1/30 "B 00-%02d-30.000.png")

Eu não verifiquei a sintaxe do seu comando ffmpeg, mas isso deve funcionar a partir de um arquivo em lotes quando ele é executado com o diretório de trabalho sendo o caminho da sua pasta. Caso contrário, você pode alterar o dir /b *.mts para algo como dir /b C:\FolderWithFiles\*.mts ou usar o %~dp0 para que ele use o caminho em que seu arquivo de lote reside.

EDIT: Além disso, observe que, se você estiver tentando testar o comando fora de um arquivo em lote e diretamente do prompt de comando, será necessário alterar o %%f 's para ser %f .

    
por 18.10.2015 / 21:46