Загрузить> Конвертировать> Показать с помощью Flash - PullRequest
2 голосов
/ 20 сентября 2009

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

Ответы [ 2 ]

6 голосов
/ 20 сентября 2009

Вероятно, я бы так и сделал:

  • имеет веб-страницу PHP, которая добавляет запись в базу данных, чтобы указать, «этот файл должен быть обработан» - эта страница является той, которая получает загруженный файл
    • и отображает сообщение пользователю; что-то вроде "ваш файл будет обработан в ближайшее время"
  • В CLI (поскольку у вас есть выделенный сервер, вы можете использовать командную строку, устанавливать программы, ...) , иметь пакет, который обрабатывает новые вставленные файлы
    • сначала пометьте запись как "обрабатывающую"
    • делать вещи преобразования; ffmpeg , вероятно, будет правильным инструментом для этого - я видел довольно много сообщений об этом на SO, поэтому вы можете найти некоторую информацию об этой части: -)
    • пометить файл как "обработанный"
  • И на какой-либо (другой?) Веб-странице вы можете показать пользователю, в каком состоянии находится его файл:
    • , если он еще не обработан
    • если обрабатывается
    • или, если он был обработан - вы можете дать ему ссылку на новый видеофайл - или делать с ним все, что вы хотите / нужно.


Вот пара других заметок:

  • В день, когда ваше приложение станет больше, вы можете иметь:
    • один «веб-сервер»
    • много "серверов обработки"; в вашем приложении это ffmpeg, который потребует много ресурсов процессора, а не обслуживает веб-страницы; так что возможность масштабировать эту часть - это неплохо (это еще одна причина для «блокировки» файлов, указывая их как «обработка» в БД: таким образом, у вас не будет нескольких серверов обработки, пытающихся обрабатывать один и тот же файл)
  • Вы используете PHP только с веб-сервера для генерации веб-страниц, что является задачей веб-сервера.
    • Тяжелая / длинная обработка - это не работа веб-сервера!
    • В тот день, когда вы захотите переключиться на что-то еще, кроме PHP, для части "обработки", это будет проще.

Ваш «сценарий обработки» должен запускаться каждые несколько минут; для этого вы можете использовать cron , если вы работаете на Linux-подобной машине.


Конечно, вы также можете вызвать ffmpeg прямо со страницы PHP, на которую загружается файл ... Но, учитывая, что это может потребовать довольно много времени процессора, это не всегда может быть подходящим решением ...

... Даже если это немного проще и позволит пользователям быстрее получать конвертированное видео (им не придется ждать, пока не будет выполнено задание cron)


(отказ от ответственности: этот ответ взят из другого ответа, который я сделал там )

3 голосов
/ 20 сентября 2009

Это довольно легко. После загрузки вам нужно будет использовать exec() для вызова конвертера видео - ffmpeg - это популярный бесплатный вариант с открытым исходным кодом.

В простейшем виде:

exec('ffmpeg -i /path/to/video.avi /path/to/flash/video.flv');

...