PHP и FFMPEG - Выполнение интеллектуального преобразования видео

У меня странно сложная задача. Я думал, что это будет легко, но все мои усилия оказались бесплодными.

Я преобразую видео, загруженные в php-скрипт из различных форматов (.avi, .mpg, .wmv, .mov и т. Д.), В один формат .flv. Преобразование работает отлично, но у меня проблемы с разрешением видео.

Это команда, которую я сейчас выполняю (с PHP-вариациями):

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

И $ original, и $ convert содержат полные пути к этим файлам. Моя проблема в том, что это всегда преобразуется в 640x480 (как я говорю), даже когда источник меньше. Очевидно, что при загрузке видео это пустая трата дискового пространства и пропускной способности. Кроме того, это не учитывает входные видео в любом соотношении сторон, кроме 4: 3, что приводит к «сжатому» формату. преобразование, если я загружаю видео 16: 9.

Есть 3 вещи, которые мне нужно сделать:

Determine the aspect ratio of the original video. If not 4:3, pad top and bottom with black bars. Convert to 640x480 if either dimension of the original is larger or a 4:3 aspect ratio relating to the width/height of the original (whichever is closer to 640x480).

Я бегуffmpeg -i на нескольких видео, но я не вижу согласованного формата или местоположения, в котором можно найти исходное разрешение. Как только я смогу это выяснить, я знаю, что смогу «сделать математику». чтобы определить правильный размер и указать отступы, чтобы исправить соотношение сторон с помощью -padttop, -padbottom и т. д.

Ответы на вопрос(3)

Ваш ответ на вопрос