Como adicionar o timestamp como parte do nome do arquivo de imagem gerado no ffmpeg

1

Estou tentando extrair imagens png de um vídeo usando o ffmpeg e adicionar o registro de data e hora como parte do nome do arquivo de imagem gerado.

Por favor, veja o comando abaixo que estou usando para o mesmo

ffmpeg -vcodec mpeg2video -f mpegts -i test_movie.ts -f image2 -vf "drawtext=fontfile=/Library/Fonts/Tahoma.ttf: timecode='$(date +%H\:%M\:%S).00': r=30: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000000@1" -vsync vfr -pattern_type glob ./compare_multiple_$(gdate +%H\_%M\_%S_%3N).png

Mas isso não está anexando o nome do arquivo corretamente. Dá um erro como mostrado abaixo:

[image2 @ 0x7ff01301f600] Could not get frame filename number 2 from pattern './compare_multiple_10_09_58_490.png' (either set updatefirst or use a pattern like %03d within the filename pattern) av_interleaved_write_frame(): Invalid argument frame= 10 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.12 bitrate=N/A video:1047kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown Conversion failed!

    
por Sen 02.11.2015 / 09:29

1 resposta

0

Você estava próximo, mas o problema é apontado diretamente da mensagem de erro: Seu padrão ./compare_multiple_$(gdate +%H\_%M\_%S_%3N).png está incorreto.

Na documentação , quando eles usam "N" no padrão, "N" é simbólico para o "inteiro de sua escolha", e no seu caso, parece que você quer que seja 3. Então use %3d em vez de %3N e você deve estar pronto.

    
por 02.11.2015 / 10:12