Удаленный вход по FTP и конвертировать FLV в mp3? - PullRequest
1 голос
/ 23 ноября 2010

Я пытаюсь найти наилучший способ входа через команду php на удаленный сервер и выполнить команду для преобразования FLV-файла в MP3 (а затем, возможно, переместить его на локальный сервер)?

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

Использование этого сделает это локально:

exec(ffmpeg -i vid.flv -acodec copy output.mp3);

Как я могу сделать это удаленно?

Спасибо!

Ответы [ 4 ]

1 голос
/ 23 ноября 2010

Просмотрите библиотеку SSH2 (http://php.net/manual/en/book.ssh2.php), чтобы узнать, как выполнять команды удаленно, и библиотеку Curl (http://php.net/manual/en/book.curl.php), как загрузить удаленные файлы.

1 голос
/ 23 ноября 2010

Вы не можете выполнять удаленные команды через FTP.

Если у вас есть SSH-доступ к машине, вы можете использовать расширение SSH2 для PHP и выполнять его через SSH.

0 голосов
/ 23 ноября 2010

Вам необходимо сделать следующее в следующем порядке:

  • Перенести FLV с помощью собственных команд ftp php
  • Создать слой на сервере ffmpeg для запуска ваших команд
  • Прочитайте код ответа и выполните определенное действие

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

сценарий преобразования будет принимать имя файла, а затем искать файл в локальном каталоге, когда он его найдет, он преобразует.

, если вы хотителокальный сервер, чтобы узнать, когда преобразование будет завершено , тогда вам также нужно будет отправить идентификатор в сценарий преобразования, и вы сохраните этот идентификатор с обеих сторон, чтобы сервер мог выполнить обратный вызов вашего локального сценария ( WARNING !) С идентификатором, и вы можете получить его обратно с сервера.

Причина предупреждения состоит в том, что трудно заставить сервер ping перебросить ваш локальный хост, если вы находитесь замаршрутизатор / брандмауэр: вам нужно настроить переадресацию портов и т. д. на маршрутизаторе и разрешить внешний доступ к порту 80.

надеюсь, это даст вам некоторое представление о том, как справиться с этой ситуацией.

0 голосов
/ 23 ноября 2010

Напишите скрипт php и загрузите его на свой сервер конвертации flv. Сценарий должен:

  1. Загрузить файл flv (через POST или другой способ загрузки) в vid.flv
  2. Запустить серверную команду "exec (ffmpeg -i vid.flv -acodec copy output.mp3);"
  3. Уведомить вас о результатах, когда output.mo3 готов

Вам необходимо изменить максимальное время выполнения скрипта (set_time_limit);

Таким образом, вашему сценарию не нужно будет отправлять команды через ssh.

...