Alguém conseguiu a opção '-segment_times' trabalhando com o ffmpeg?

Alguém conseguiu a opção '-segment_times' trabalhando com o ffmpeg?

Ao pesquisar no U&L, notei uma grande quantidade de perguntas perguntando como criar scripts para a geração de ffmpeglinhas de comando como estas:

ffmpeg -i video.mp4 -ss 00:00:00 -t 00:10:00 -c copy 01.mp4
ffmpeg -i video.mp4 -ss 00:10:00 -t 00:10:00 -c copy 02.mp4
ffmpeg -i video.mp4 -ss 00:20:00 -t 00:10:00 -c copy 03.mp4

Ao pesquisar soluções para isso, me deparei com este ticket no ffmpegrastreador de problemas, intitulado:Divida um vídeo de entrada em vários pedaços de vídeo de saída.

Este ticket destaca um patch que permitiria que você finalmente pudesse fornecer uma lista de pontos no tempo para cortar um vídeo em seções menores com uma única linha de comando como esta:

$ ffmpeg -i input.avi -f segment -segment_times 10,20,40,50,90,120,180 \
      -vcodec copy output02%d.avi

O patch parece ter sido lançado nesta revisão do repositório de código:

commit 2058b52cf8a4eea9bf046f72b98e89fe9b36d3e3
Author: Stefano Sabatini <[email protected]>
Date:   Sat Jan 28 22:36:38 2012 +0100

    lavf/segment: add -segment_times option

    Address trac ticket #1504.

Eu baixei esta versão construída estaticamente do ffmpeg,ffmpeg.static.64bit.2013-10-05.tar.gzdesite ffmpeg, mas aparentemente não incluiu essa opção.

$ ./ffmpeg --help |& grep segment
$

Alguém conseguiu fazer esse novo switch funcionar?

Responder1

É porque a falta-mapopção, que designa os fluxos de entrada como origem do arquivo de saída. Estou usando o ffmpeg 2.6.1 e consigo dividir o vídeo com -segment_times:

ffmpeg -i foo.mp4 -segment_times 10,20,30,40 -c copy -map 0 -f segment  %03d.mp4

Se precisar de uma divisão mais elaborada, você pode usar o OpenCV para ler o vídeo original e gravar o quadro desejado na nova divisão. Confira:"Criando um vídeo com OpenCV"e"Divida um vídeo em vários pedaços de acordo com vários índices de quadros iniciais e finais"

informação relacionada