Jak przekonwertować film 16: 9 na format letterbox 4: 3?

11

Załóżmy, że masz plik filmu w formacie 16: 9 i chcesz stworzyć wersję idealną do odtwarzania na urządzeniu 4: 3. Ponieważ nie chcesz przycinać żadnego obrazu ani zniekształcać go, dlatego chcesz utworzyć wersję skrzynki pocztowej.

Oznacza to, że chcesz mieć film 4: 3 z czarnymi pasami u góry iu dołu otaczającymi prostokąt ruchomego obrazu, który ma prawdziwe wymiary 16: 9.

Czy możesz nam powiedzieć, jak to zrobić w systemie Windows lub Linux, korzystając z bezpłatnych narzędzi wiersza polecenia lub GUI.

dggoldst
źródło

Odpowiedzi:

11

Nowsze wersje ffmpeg zastępują opcje „padtop” i „padbottom”. Aby to zrobić w nowej wersji, użyj tej samej podstawowej logiki powyżej. W moim przypadku moje oryginalne wideo było 720x404, ale chciałem zakodować 720x480 - wypełniając górę i dół. Tak więc powyżej:

(480-404) / 2 = 38

tj. Pad 38 pikseli na górze i na dole. Polecenie „pad” chce rozmiaru kodowanego wideo oraz tego, jak daleko w lewo iw dół chcesz przenieść oryginał. Więc:

-vf pad=720:480:0:38

zwróć uwagę, że rozdzielczość wyjściowa musi być zapisana jako 720: 480, a nie 720x480

Ćwiek
źródło
Szczegółowe informacje można znaleźć na stronie ffmpeg.org/ffmpeg-filters.html#pad .
Meekohi
7

Można to zrobić w ffmpeg. Zanim zaczniesz, przeczytaj ten wspaniały zasób poświęcony zrozumieniu matematyki: http://www.doom9.org/index.html?/aspectratios.htm

Najpierw obliczyć górne i dolne wartości wypełnienia.

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

UWAGA: jeśli górne i dolne wypełnienia nie są liczbami NAWET, wymuś je, aby sumowały się do sumy wypełnienia (np. Nie 47 i 53, ale 48 i 52, aby uzyskać 100)

Po drugie dodaj paski listów i upewnij się, że plik wyjściowy zostanie rozpoznany jako 4x3. Załóżmy, że Twoje wypełnienia mają 58 pikseli na górze i na dole

ffmpeg -i Infile.avi -padtop 58 -padbottom 58 -padcolor 000000 -aspect 4:3 Outfile_letterbox.mpg
dggoldst
źródło
2

Pobierz i zainstaluj Avisynth . Otwórz notatnik, wstaw następujące:

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

Zapisz go jako mymovie.avs i umieść w swoim koderze.

Być może będziesz musiał dostosować rozmiar i granice, ale ogólnie możesz zobaczyć, co się tutaj dzieje. Ponadto, jeśli wideo nie ładuje się za pomocą AviSource, zamień go na DirectShowSource.

Przełom
źródło
1

Przez „idealny” zgaduję, że twoje urządzenie do odtwarzania rozciąga filmy?

Idealną sytuacją jest brak dodawania czarnych pasków do wideo, ale wyświetlanie wideo za pomocą czarnych pasków - ponowne kodowanie wideo w celu dodania pasków nie tylko łamie zasadę „koduj raz”, ale również obniża ogólną jakość na bit dodając dodatkowe, bezużyteczne informacje.

Czy możesz wyjaśnić, jaki problem próbujesz rozwiązać?

łosoś łososiowy
źródło
Mam telewizor 4: 3. Mam filmy 16: 9. Nagrywam je na odtwarzalne dyski DVD i zdarza się jedna z dwóch rzeczy: 1) zmieniają rozmiar na 4: 3 (tzn. Rozciągają) 2) nie rozciągają się, ale nie wyświetlają się w ramce z literami. Ponieważ niemożliwe jest, aby nierozciągnięty obraz 16: 9 wypełniał ekran 4: 3, oznacza to, że krawędzie są przycinane. Używam tandetnego komercyjnego oprogramowania do tworzenia odtwarzalnych płyt DVD (Cyberlink PowerProducer). Może to jest problem. Jestem otwarty na inne sposoby tworzenia płyt DVD z plików .avi i .mpg.
dggoldst
Ahhh, ok, jest problem - nie używam już dysków, ale sugeruję zakup innego oprogramowania - z góry mojej głowy Myślę, że musisz mieć możliwość eksportowania za pomocą anamorficznych pikseli - spowoduje to rozciągnięcie filmu do 4: 3, ale powiedz graczowi, aby zmienił proporcje.
łosoś łososiowy