Como converter um filme 16: 9 para uma versão em caixa de correio 4: 3?

11

Suponha que você tenha um arquivo de filme em formato largo de formato 16: 9 e deseje criar uma versão ideal para reprodução em um dispositivo 4: 3. Como você não deseja recortar nenhuma imagem ou distorcer a imagem, você deseja criar uma versão em caixa de correio.

Ou seja, você deseja um filme 4: 3 com barras pretas nas partes superior e inferior ao redor do retângulo da imagem em movimento, que possui dimensões 16: 9 reais.

Você pode nos dizer como fazer isso no Windows ou Linux, usando ferramentas gratuitas de linha de comando ou GUI.

dggoldst
fonte

Respostas:

11

As versões mais recentes do ffmpeg descontinuam as opções "padtop" e "padbottom". Para fazer isso com a nova versão, use a mesma lógica básica acima. No meu caso, meu vídeo original era 720x404, mas eu queria codificar 720x480 - preenchendo as partes superior e inferior. Então, acima:

(480-404) / 2 = 38

Coloque 38 pixels na parte superior e inferior. O comando "pad" deseja o tamanho do vídeo que você está codificando e a que distância você deseja mover o original. Então:

-vf pad=720:480:0:38

Observe que a resolução de saída precisa ser escrita como 720: 480 e não 720x480

Brad
fonte
consulte ffmpeg.org/ffmpeg-filters.html#pad para obter detalhes.
Meekohi
7

Isso pode ser feito no ffmpeg. Antes de começar, leia este ótimo recurso para entender a matemática: http://www.doom9.org/index.html?/aspectratios.htm

Primeiro, calcule os valores de preenchimento superior e inferior.

long=width of original,
skinny=height of orginal
totalPadding = .75*long - skinny
top padding = bottom padding = totalPadding / 2

OBSERVAÇÃO: se os preenchimentos superior e inferior não forem números MESMO, force-os de maneira que eles totalizem o totalPadding (por exemplo, não 47 e 53, mas 48 e 52 para obter 100)

Segundo, adicione barras de caixas de correio e garanta que o arquivo de saída seja reconhecido como 4x3. Suponha que seus preenchimentos tenham 58 pixels para as partes superior e inferior

ffmpeg -i Infile.avi -padtop 58 -padbottom 58 -padcolor 000000 -aspect 4:3 Outfile_letterbox.mpg
dggoldst
fonte
2

Baixe e instale o Avisynth . Abra o bloco de notas, coloque o seguinte:

AviSource("c:\movies\somemovie.avi")
BicubicResize(720,266,0,0.5)
AddBorders(0, 106, 0, 108)

Salve-o como mymovie.avs e coloque-o no seu codificador.

Você pode precisar ajustar o redimensionamento e as bordas, mas geralmente pode ver o que está acontecendo aqui. Além disso, se o seu vídeo não carregar com o AviSource, substitua-o pelo DirectShowSource.

Avanço
fonte
1

Por "ideal", acho que o seu dispositivo de reprodução está esticando vídeos?

A situação ideal é não adicionar barras pretas ao vídeo, mas exibi-lo com barras pretas - recodificar um vídeo para adicionar barras não apenas quebra a regra de "codificar uma vez", mas também reduz a qualidade geral por bit adicionando informações extras e inúteis.

Você pode explicar melhor qual problema você está tentando resolver?

salmonmoose
fonte
Eu tenho uma TV 4: 3. Eu tenho filmes 16: 9. Eu os gravo em DVDs reproduzíveis e uma das duas coisas acontece 1) eles são redimensionados para 4: 3 (ou seja, esticados) 2) eles não são esticados, mas não são exibidos como caixas de correio. Como é impossível ter uma imagem 16: 9 não esticada preenchendo uma tela 4: 3, isso significa que as bordas estão sendo cortadas. Estou usando algum software comercial extravagante para criar DVDs reproduzíveis (Cyberlink PowerProducer). Talvez esse seja o problema. Estou aberto a outras maneiras de criar os DVDs a partir de arquivos .avi e .mpg.
precisa saber é o seguinte
Ahhh, ok, existe o problema - eu não uso mais discos, mas sugiro que procure outro software - em cima da minha cabeça eu acho que você precisa exportar com pixels anamórficos - isso esticará o vídeo para 4: 3, mas diga ao jogador para alterar a proporção.
salmonmoose