Tenho um arquivo MP4 de uma gravação de tela que preciso cortar. Como posso fazer isso sem usar ferramentas caras como Adobe Premier ou Final Cut? Eu prefiro ffmpeg porque já usei antes.

Resposta

Use o crop filtro :

ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4 

Onde as opções são as seguintes:

  • out_w é a largura do retângulo de saída
  • out_h é a altura do retângulo de saída
  • x e y especificam o canto superior esquerdo do retângulo de saída

Imagem original

imagem original
Imagem original 320×240

Exemplo 1

80x60

Para cortar uma seção 80 × 60, começando da posição (200, 100):

ffmpeg -i in.mp4 -filter:v "crop=80:60:200:100" -c:a copy out.mp4 
  • O áudio é stream copiado neste exemplo, então a recodificação é evitada.

Exemplo 2

quarto inferior direito

Para cortar o quarto inferior direito:

ffmpeg -i in.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy out.mp4 

É o mesmo que:

ffmpeg -i in.mp4 -filter:v "crop=320/2:240/2:320/2:240/2" -c:a copy out.mp4 

Que é o mesmo que:

ffmpeg -i in.mp4 -filter:v "crop=160:120:160:120" -c:a copy out.mp4 
  • Você pode consultar o tamanho da imagem de entrada com in_w e in_h conforme mostrado neste primeiro exemplo. A largura e altura de saída também podem ser usadas com out_w e out_h.

Exemplo 3

20 pixels da parte superior e 20 pixels da parte inferior

Corte 20 pixels da parte superior e 20 pixels da parte inferior:

 ffmpeg -i in.mp4 -filter:v "crop=in_w:in_h-40" -c:a copy out.mp4 
  • O filtro centralizará automaticamente o corte se x e y são omitidos como neste exemplo.

Visualização

Você pode fazer um recorte (heh heh) e visualizá-lo ao vivo com ffplay:

ffplay -i input -vf "crop=in_w:in_h-40" 

Dessa forma, você pode experimentar e ajustar o corte sem a necessidade de codificar, visualizar, repetir.

Observações

  • crop documentação do filtro

  • O codificador padrão para MP4 é libx264 (vídeo H.264) ou mpeg4 (MPEG- Vídeo 4 Parte 2) dependendo do seu ffmpeg construir. Consulte FFmpeg Wiki: Guia de codificação de vídeo H.264 para obter mais informações.

  • Em vez de recortar e voltar codificação, considere cortar durante a reprodução. Isso é possível com qualquer jogador que valha a pena usar.

  • Construções ffmpeg antigas usadas -croptop , -cropbottom, -cropleft, -cropright opções em vez de crop. Se este for o seu caso, obtenha um ffmpeg moderno. O desenvolvimento é muito ativo e não há razão para usar uma antiguidade.

Comentários

  • Funciona com ' avconv ' agora.
  • vale a pena mencionar esta técnica (com a crop filtro) recodifica o vídeo, consulte stackoverflow.com/questions/33378548/… se re a codificação é importante para você
  • editado para alterar o desatualizado -filter:v para o mais atualizado e mais simples de digitar -vf . Saúde!
  • Se você ' estiver tentando remover as barras pretas ao redor do seu vídeo (caixa de correio, caixa de correio, caixa de janela etc.), use cropdetect primeiro a ter os parâmetros de corte de impressão do ffmpeg para você: ffmpeg.exe -i vid.mp4 -vf cropdetect out.mp4
  • Este filtro de corte funciona muito bem! Para determinar a caixa delimitadora necessária para cortar um vídeo, exportei um quadro de vídeo para uma imagem com ffmpeg. Em seguida, abra a imagem com o GIMP onde posso desenhar uma caixa delimitadora para a área que quero recortar o vídeo e, a seguir, posso obter as informações X, Y, W, H da janela do ponteiro. Pergunte se isso não está claro o suficiente.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *