É possível usar o ffmpeg para cortar X segundos do início de um vídeo com um comprimento não especificado?

17

Eu preciso cortar apenas os primeiros 1 ou 2 segundos de uma série de gravações FLV de comprimentos diferentes e não especificados. Encontrei muitos recursos para extrair uma duração especificada de um vídeo (por exemplo, 30 segundos de clipes), mas nenhum para continuar até o final de um vídeo.

Ambas as tentativas produzem apenas uma versão copiada do vídeo, sem o corte desejado:

ffmpeg -ss 2 -vcodec copy -acodec copy -i input.flv output.flv

ffmpeg -ss 2 -t 120 -vcodec copy -acodec copy -i input.flv output.flv
O pensamento no segundo foi: talvez se eu especificasse um comprimento além do que era possível, ele iria até o fim. Sem dados.

Eu sei que não é um problema com codecs ou usar segundos em vez de códigos de tempo, já que o seguinte funcionou como um encanto:

ffmpeg -ss 2 -t 5 -vcodec copy -acodec copy -i input.flv output.flv

Alguma outra ideia? Estou aberto a usar outras ferramentas de linha de comando (baseadas no Windows), no entanto estou favorecendo strongmente o ffmpeg, já que eu já estou usando para criação de miniaturas e estou familiarizado com ele.

Se isso ajudar, meus vídeos serão todos de menos de 2 minutos.

ATUALIZAÇÃO:

Eu mudei para usar o Mencoder ( link ), já que parece que o ffmpeg não conseguirá isso sem alguma hackeria adicional.

A sintaxe Mencoder para realizar o que eu pretendo fazer é:

mencoder.exe -ss 2 -oac copy -ovc copy input.flv -o output.flv
    
por marcelebrate 15.03.2011 / 21:42

2 respostas

21

Acontece que este comando irá cortar o vídeo de 2 segundos, como esperado:

ffmpeg -ss 2 -i input.flv -vcodec copy -acodec copy output.flv

O problema foi com o intervalo do quadro-chave em input.flv. Ele foi definido para 5 segundos, o que rendeu 3 segundos de quadros pretos no início do vídeo (5 - 2 = 3). Desde então, mudei meu intervalo de quadro-chave para 1 segundo, embora 2 segundos provavelmente também renderiam os resultados desejados no meu caso.

    
por 12.04.2011 / 19:09
6

Tente:

ffmpeg -i input.flv -ss 2 -vcodec copy -acodec copy output.flv

Acho que o parâmetro de entrada deve ser o primeiro.

    
por 12.04.2011 / 06:59