Automatyczne obliczanie szerokości dla zmiany rozmiaru wideo w FFMPEG

1

Obecnie używam tego do próby skalowania wideo 720p do 480p, problem polega na tym, że automatyczna szerokość wybiera nieparzystą liczbę.

Obecnie używam -vf "scale=trunc(oh*a*2)/2:480i nadal wybiera 853 dla szerokości. Jakieś wskazówki?

Piotr
źródło
1
Nieważne, sam to rozwiązałem-vf "scale=trunc(oh*a/2)*2:480"
Peter
1
Powinieneś opublikować to jako odpowiedź poniżej. Zachęcamy do samodzielnego udzielania odpowiedzi.
Karan

Odpowiedzi:

3

Problem

Filtr skali ffmpegmoże mieć tylko jeden wymiar i może automatycznie obliczyć niezadeklarowany wymiar, jeśli użyjesz go -1jako wartości, na przykład z -vf scale=640:-1, ale może to być nieparzysta liczba.

ffmpegużywa libx264 do kodowania wideo H.264. Ten koder wymaga mod2 dla szerokości i wysokości dla podpróbkowania barwy 4: 2: 0; co oznacza, że ​​szerokość i wysokość muszą być podzielne przez 2.

Rozwiązanie

Użyj -2. To będzie:

  • Automatycznie oblicz prawidłową wartość w stosunku do zadeklarowanego wymiaru, zachowując proporcje.

  • Udostępnij wynik przez 2. W razie potrzeby dostosuje on wynik.

Przykład

ffmpeg -i input.avi -vf scale=-2:480 output.mp4

Zobacz także

Llogan
źródło