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.

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


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

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.


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ć?


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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.