PHP i FFMPEG - Wykonywanie inteligentnej konwersji wideo

Mam dziwnie trudne zadanie do wykonania. Myślałem, że to będzie łatwe, ale wszystkie moje wysiłki były bezowocne.

Konwertuję filmy wideo przesłane do skryptu php z różnych formatów (.avi, .mpg, .wmv, .mov itp.) Na pojedynczy format .flv. Konwersja działa świetnie, ale mam problem z rozdzielczością filmów.

To jest polecenie, które aktualnie wykonuję (z PHP vars):

ffmpeg -i $original -ab 96k -b 700k -ar 44100 -s 640x480 -acodec mp3 $converted

Zarówno $ original, jak i $ convert zawierają pełne ścieżki do tych plików. Moim problemem jest to, że zawsze konwertuje się do 640x480 (tak jak mówię), nawet gdy źródło jest mniejsze. Oczywiście jest to strata miejsca na dysku i przepustowości po pobraniu wideo. Nie oznacza to również, że filmy wejściowe mają inny współczynnik proporcji niż 4: 3, co powoduje „zgniecioną” konwersję po przesłaniu filmu 16: 9.

Są 3 rzeczy, które muszę zrobić:

Określ współczynnik proporcji oryginalnego wideo.Jeśli nie 4: 3, pad górny i dolny z czarnymi paskami.Konwertuj na 640x480, jeśli jeden z wymiarów oryginału jest większy lub proporcje 4: 3 odnoszą się do szerokości / wysokości oryginału (w zależności od tego, który jest bliższy 640x480).

Uciekłemffmpeg -i na kilku filmach, ale nie widzę spójnego formatu ani lokalizacji, aby znaleźć rozdzielczość oryginału. Kiedy już będę w stanie to zrozumieć, wiem, że mogę „zrobić matematykę”, aby ustalić właściwy rozmiar i określić dopełnienie, aby naprawić współczynnik proporcji przy pomocy -padttop, -padbottom itp.

questionAnswers(3)

yourAnswerToTheQuestion