Как я могу конвертировать фильм в .MP4 из .MOV, используя скрипт загрузки PHP? - PullRequest
3 голосов
/ 25 июня 2011

Я пытаюсь загрузить фильм на сайт, а затем автоматически преобразовать его в формат .mp4 из формата iPhone .mov. Есть ли библиотека преобразования PHP или инструмент, который поможет мне сделать это?

Спасибо.

Ответы [ 5 ]

5 голосов
/ 25 июня 2011

Ну, я знаю, что это альтернативное решение:

PHP:

$cmd = './HandBrakeCLI -i /path/to/source.MOV -o movie.mp4 --preset="iPhone & iPod Touch"';
echo exec($cmd);

Примечание. Вам потребуется установить Handbrake на свой сервер

3 голосов
/ 16 июля 2011

Файлы Apple mov на самом деле являются контейнерами MP4, поэтому .mov == .m4v == .mp4 == .m4a. Будет нормально просто переименовать файл. Или вы хотите конкретный кодек?

3 голосов
/ 25 июня 2011

Вы можете попробовать расширение ffmpeg: http://ffmpeg -php.sourceforge.net /

Edit:

Оказывается, расширение ffmpeg, вероятно, выиграло 'Это не поможет, но вы все равно можете использовать ffmpeg для преобразования.Вам, вероятно, лучше иметь работу cron или что-то подобное, делать преобразования в фоновом режиме.Просто позвольте пользователю загрузить файл mov, а затем добавить его в очередь и преобразовать его в mp4 в другом процессе.

2 голосов
/ 25 июня 2011

Не совсем, к сожалению.

Я занимался именно этим в течение последних 4 лет, если вы хотите попробовать себя в написании этого, ваш лучший выбор - форкать exec в ffmpeg вваш скрипт загрузки, например.

exec('ffmpeg ... &');

обратите внимание на амперсанд в конце, это позволяет вашему php-скрипту завершиться, в то время как кодирование происходит в фоновом режиме, а также ПРОВЕРЬТЕ ВАШИ ВХОДНЫЕ ВАРЫ, так как есть вероятность внедрения оболочки при использовании этого метода.

или альтернатива:

использовать систему типа beanstalkd в качестве очереди сообщений между вашим сценарием загрузки php и рабочим процессом (я использую пользовательский многопоточный сценарий perl) в бэкэнде, который принимает новыекодирует и обрабатывает их (я использую ffmpeg, mencoder или quicktime с использованием qt_tools, в зависимости от формата входного видео), используя memcached в качестве временного хранилища для статуса кодирования.

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

0 голосов
/ 27 марта 2019

Попробуйте команду:

 ffmpeg -i movie.mov -vcodec copy -acodec copy out.mp4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...