O nome da saída com o padrão “%” não funciona como esperado

0

Estou tentando converter um vídeo (.ts) e capturar instantâneos (.jpeg) de outro vídeo (.mp4). A conversão funciona bem para ambos, mas o nome do instantâneo snap%.jpeg não muda como snap1.jpeg, snap2.jpeg , como explicado em a documentação do ffmpeg: image2

Comando:

ffmpeg -loglevel 99 -i "C:\path\original.mp4" -an -sn -c:v libx264 -preset slow -crf 22 -r 25 -f segment -segment_format ts -segment_time 10 -strftime 1 "C:\path\result\output-%H-%M-%S.ts" -vf fps=5 -q:v 1 -f image2 -updatefirst 1 "C:\path\result\snap%d.jpeg"

Eu não tenho nenhum erro, mesmo com um alto nível de log .. Eu tentei remover as aspas também, para colocar %03d ou outros, nenhuma mudança ..

Estou trabalhando no Windows 8.1.

versão ffmpeg:

ffmpeg version 3.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 7.2.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-bzlib --enable-fontconfig --enable-gnutls --enabl
e-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libopu
s --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-
libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-z
lib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-cuda --enable-cuvid --enable-d3d11va --enable-nvenc --e
nable-dxva2 --enable-avisynth --enable-libmfx
  libavutil      55. 78.100 / 55. 78.100
  libavcodec     57.107.100 / 57.107.100
  libavformat    57. 83.100 / 57. 83.100
  libavdevice    57. 10.100 / 57. 10.100
  libavfilter     6.107.100 /  6.107.100
  libswscale      4.  8.100 /  4.  8.100
  libswresample   2.  9.100 /  2.  9.100
  libpostproc    54.  7.100 / 54.  7.100

Eu nunca perguntaria à comunidade se eu não pesquisava na internet há muito tempo, então, eu realmente preciso da sua ajuda. Obrigado.

    
por pirs 24.10.2017 / 04:24

1 resposta

1

Duas coisas:

1) com -updatefirst 1 , apenas um arquivo de imagem é criado e atualizado. Remova-o.

2) snap%.jpeg não especifica um padrão, pois não há nenhuma variável de expansão presente. Deve ser snap%d.jpeg

(Além disso, se o formato do segmento for definido como mkv , essa também deverá ser a extensão).

ffmpeg -loglevel 99 -i "C:\path\original.mp4" -an -sn -c:v libx264 -preset slow -crf 22 -r 25 -f segment -segment_format mkv -segment_time 10 -strftime 1 "C:\path\result\output-%H-%M-%S.mkv" -vf fps=5 -q:v 1 -f image2 "C:\path\result\snap%d.jpeg"
    
por 24.10.2017 / 08:06

Tags