Gire MP4 e altere as dimensões

3

Eu tenho um vídeo em MP4 que foi filmado no meu telefone Android, mas o cara filmou segurando meu celular de um jeito estranho.

Ao visualizá-lo no QuickTime, eu tenho que girar meu laptop em 90 graus e, em seguida, vou vê-lo como um vídeo normal em tela grande e tudo fica bem.

No VLC, o vídeo já é widescreen com dimensões adequadas, mas de cabeça para baixo, então tenho que virar meu laptop de cabeça para baixo.

Quando o importei para o iMovie, girei-o 90 graus e o lado direito para cima, mas o vídeo foi reduzido e ainda mais alto do que largo.

Não tenho certeza do que está acontecendo, mas como posso torná-lo widescreen e com o lado certo?

    
por ThingWings 13.05.2013 / 06:03

1 resposta

8

Os arquivos MP4 podem ter um sinalizador rotate , que informa ao player para girar o vídeo durante a reprodução, sem alterar a maneira como o fluxo de bits do vídeo real é codificado e orientado. O VLC suporta este flag desde a versão 2.2.0 .

A questão é o que você quer fazer com o vídeo. Você basicamente tem duas escolhas:

  • Mantenha-o como está e remova o sinalizador de rotação. Se você quiser editar o vídeo mais tarde, abra-o em qualquer programa que você use para fazer isso. Se você quiser jogá-lo, escolha um player que suporte a rotação em tempo real.
  • Gire e transcodifique o vídeo para que ele tenha uma orientação adequada. Isso irá degradar a qualidade do vídeo um pouco.

Você pode fazer tudo isso com ffmpeg . Faça o download de uma versão estática do seu sistema operacional e extraia-a para um diretório, por exemplo, para que o arquivo executável ffmpeg esteja em ~/Downloads . Em seguida, abra uma janela de terminal e navegue até o diretório indicado:

cd ~/Downloads
./ffmpeg

Isso deve executar o binário ffmpeg . Para mais informações, leia nosso artigo no blog sobre ffmpeg .

Aqui estão os comandos reais que você pode usar. Se você quiser manter o fluxo de bits real do vídeo e remover o sinalizador de rotação, só precisará remover os metadados do primeiro fluxo de vídeo v:0 e copiar os fluxos de bits de vídeo e áudio ( -c copy ):

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4

Se você quiser transcodificar o vídeo, invertendo-o em 180 °, precisará especificar um codificador de vídeo (aqui, libx264 ) e o filtro de inversão. O fluxo de áudio será copiado.

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -filter:v "hflip,vflip" -c:a copy output.mp4

Você pode ajustar o CRF ( Fator de taxa constante ) para alterar a qualidade do vídeo. Os valores são entre 18 e 28, dependendo da sua qualidade de entrada. Lower significa melhor qualidade, por isso, se o seu vídeo parecer pior do que o original, tente um valor de CRF mais baixo.

    
por 13.05.2013 / 09:26