Ffmpeg upscale e letterbox um vídeo

3

Eu tenho um vídeo com 480x360 de resolução, o que eu quero fazer é aprimorar este vídeo para 1280: 720 e não perder a proporção de aspecto dos vídeos originais ( letterbox do lado esquerdo e direito)

Então, eu sei que as pessoas podem realizar essa tarefa com o ffmpeg, mas até agora não posso fazê-lo

Então alguem pode compartilhar um ffmpeg comigo?

Muito obrigado pela sua ajuda

    
por Levan 18.03.2015 / 17:49

1 resposta

11
ffmpeg -i input.mp4 -vf "scale=(iw*sar)*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih), pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2" output.mp4

Deixe-me quebrar este comando para você:

ffmpeg -i input.mp4

Este é o método de entrada padrão para o ffmpeg. Substitua "input.mp4" pelo nome do seu arquivo de entrada.

-vf

Especifica que alguns filtros de vídeo seguem no comando. Os filtros de vídeo especificados são aplicados sequencialmente a cada quadro.

scale=(iw*sar)*min(1280/(iw*sar)\,720/ih):ih*min(1280/(iw*sar)\,720/ih)

O primeiro filtro é o filtro de escala. O filtro de escala é poderoso porque pode realizar a substituição de valor e matemática. Neste caso, a matemática calcula a nova largura e altura escalonadas. Ele dimensionará a imagem de entrada para ajustar a largura e / ou altura do formato de saída desejado sem distorcer a imagem. Você não precisa fazer nenhuma modificação nos parâmetros da escala porque ela substituirá automaticamente os valores reais de "iw", "sar" e "ih". No seu caso, como o seu vídeo de entrada é 4x3, sabemos que a matemática funcionará para uma altura de 720, mas uma largura menor que 1280. Mais informações: link

pad=1280:720:(1280-iw*min(1280/iw\,720/ih))/2:(720-ih*min(1280/iw\,720/ih))/2

O segundo filtro é o filtro de bloco. Ele possui os mesmos recursos de matemática / substituição que o recurso de escala. Então, descobrirá os números exatos para você. Você não precisa mudar nada para que funcione. Os parâmetros informam o filtro de bloco para fazer a saída de 720x1280 e colocar a imagem de entrada no centro do quadro. O filtro de bloco preencherá a imagem de saída com preto em qualquer lugar que a imagem de entrada não cubra. No caso de sua entrada, sabemos que o filtro de escala escalou a altura para 720, mas a largura é menor que 1280. Assim, as barras pretas serão adicionadas aos lados para compensar a diferença. Mais informações: link

output.mp4

Isto especifica o arquivo de saída onde o ffmpeg irá colocar os resultados. Pode ser necessário adicionar todos os tipos de parâmetros para formato, taxa de bits, etc., para atender às suas necessidades exatas.

    
por 19.03.2015 / 15:03