Способ конвертировать битрейт / формат аудиофайлов (между загрузкой и хранением в S3) - PullRequest
0 голосов
/ 29 сентября 2011

В настоящее время используется PHP 5.3.x и Fedora

ОК.Я постараюсь сохранить это простым.Я работаю над инструментом, который позволяет загружать и хранить аудиофайлы на S3 для воспроизведения.По сути, пользователь загружает файл (в настоящее время разрешающий только mp3 & m4a) на сервер, а затем файл отправляется на S3 для хранения через PHP SDK для amazon aws.

Отсутствует ссылка на то, что я хотел бы выполнить простое преобразование битрейта и формата файла перед его загрузкой.(убедитесь, что все файлы имеют размер 160 КБ и .mp3).

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

Есть ли у кого-нибудь мысли о том, как лучше к этому подойти?Будет ли достаточно выполнения команды shell_exec (), которая выполняет преобразование, или есть более эффективный / лучший способ сделать это?

Заранее спасибо!Любая помощь или совет высоко ценится.

1 Ответ

2 голосов
/ 05 октября 2011

Вам нужно выполнить преобразование и загрузить на S3 «за пределами» приложения PHP, так как пользователю потребуется много времени, чтобы задержаться на странице.Это может быть простое приложение, которое использует ffmpeg из командной строки.

Я не знаком с Linux, поэтому, возможно, кто-то другой может дать более конкретный ответ, но вот основная предпосылка:

  1. Пользователь загружает файл на сервер.
  2. Вы устанавливаете некоторый флаг (например, в базе данных), чтобы пользователь мог видеть, что файл обрабатывается.
  3. Вы говоритеВаш внешний кодировщик требует, чтобы файл обрабатывался и загружался - для этого вы можете использовать запись в базе данных или какую-то очередь сообщений.
  4. Кодировщик (возможно, приложение командной строки, которое вызывает ffmpeg) выбираетследующий файл в очереди и кодирует его.
  5. По завершении он загружает его на S3.
  6. Затем флаг обновляется, чтобы показать, что обработка завершена и файл доступен.
...