Mam strumień wideo o następujących właściwościach:
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 720x416 [SAR 1:1 DAR 45:26], 1908 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
Kiedy uruchamiam go w VLC, muszę nacisnąć „A”, aby zmienić proporcje obrazu na „4: 3”, aby wideo wyświetlało się z właściwym współczynnikiem proporcji.
Patrząc na fakty wideo, czy błąd polega na tym, że a) rzeczywiste wideo zostało niepoprawnie rozciągnięte w danych pikselowych, lub b) istnieje po prostu pewna wartość metadanych, która została nieprawidłowo ustawiona?
Jeśli to pierwsze, wiem, że mogę ponownie zakodować wideo i zmienić szerokość i wysokość. Ale jeśli to drugie, jakie polecenie ffmpeg uruchomić, aby naprawić metadane bez ponownego kodowania samego wideo?
-c copy
i skalować; można jednak użyć-aspect
do zmiany współczynnika kształtu na poziomie kontenera (ale nie na poziomie strumienia).-aspect
działa w trybie odtwarzaniaffplay
, ale nie działa w WMP ani MPC-HC. Dodaje dodatkowy element SAR / DAR doStream #…
linii informacyjnej w,FFmpeg/probe/play
ale wydaje się, że nie jest to rozwiązanie do ogólnego odtwarzania. Rozciąganie wideo za pomocą okna wydaje się najłatwiejszym rozwiązaniem do odtwarzania MPC-HC.Odpowiedź Delgado jest prawidłowa, że MP4Box może to zrobić, ale
-par
opcja nie działa tak, jak opisano. Za pomocą-out
parametru (aby nie zakłócać oryginalnego pliku):Podczas używania
-par stream-number=width:height
definiujesz proporcje pikseli - to znaczy wynik dzielenia proporcji urządzenia przez proporcje pamięci. (Równolegle opisujesz proporcje piksela źródłowego.) Załóżmy na przykład, że masz źródło DVD o rozdzielczości 720 × 480, a prawidłowy współczynnik wyświetlania wynosi 4: 3. W tym przypadku potrzebujesz:ponieważ (4/3) / (720/480) = 8/9.
Jeśli źródło reprezentuje prawdziwe piksele SD NTSC (w takim przypadku tylko środkowe 704 × 480 pikseli powinny być mapowane na ekran 4 × 3, z 8-pikselowym przeskanowaniem po obu stronach), poprawne polecenie brzmiałoby:
ponieważ (4/3) / (704/480) = 10/11 - dokładnie proporcje pikseli odniesienia dla wideo w standardowej rozdzielczości NTSC.
W przypadku podanym w pytaniu, jeśli to naprawdę 4: 3, daje to bardzo dziwny współczynnik proporcji pikseli: (4/3) / (720/416) = 104/135. Ma 720 szerokości, co sugeruje źródło DVD; jest to wideo 25 fps, sugerujące PAL, ale PAR działa mniej niż 1, sugerując NTSC. Przypuszczam, że może to być 4: 5 (bardzo blisko 104: 135), ale nie znam niczego, co dałoby ten współczynnik pikseli; może najpierw wypróbuj to, a następnie wypróbuj 3: 4, jeśli nadal wygląda na nieco zbyt rozciągniętego w poziomie. Jeśli jesteś pewien, że to dokładnie 4: 3, oczywiście, użyj 104: 135.
źródło
ffmpeg nie może zmienić parametrów strumienia wideo bez ponownego kodowania, MP4Box (część gpac ) i mkvmerge mogą. W przypadku jednego strumienia wideo i rzeczywistego / poprawnego współczynnika proporcji 4: 3 możesz spróbować:
Aby zweryfikować przed i po:
ffmpeg -i VideoFile.mp4
źródło
Zmiana SAR bez reencoding również prace z
ffmpeg
na.mp4
użyciuh264_metadata
jako Gyan wskazał tutaj :źródło