Pergunta

Estou tentando descobrir a melhor maneira de fazer o login via comando php em um servidor remoto e executar um comando para converter um arquivo FLV em um MP3 (e depois possivelmente movê -lo para o servidor local)?

Sempre posso mover o arquivo mais tarde, mas preciso fazê -lo nesta ordem como o servidor remoto hosts ffmpeg.

Usar isso fará isso localmente:

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

Como posso fazer isso remotamente?

Obrigado!

Foi útil?

Solução

Você precisa fazer o seguinte em ordem

  • Transfira o FLV via comandos FTP nativos de PHP
  • Crie uma camada no servidor FFMPEG para executar seus comandos
  • Leia o código de resposta e execute uma ação específica

Se você enviar seu arquivo para o servidor via FTP e, em seguida, criar um script no servidor para o qual você acabou de transferir o arquivo, poderá fazer ping no script com o código de hash para o arquivo e pedir para converter.

  • Enviando arquivo via FTP (Exemplo de upload)
  • servidor de ping para iniciar a conversão

O script de conversão pegaria um nome de arquivo e, em seguida, procuraria no diretório local do arquivo, quando o encontrar, ele será convertido.

Se você deseja que o servidor local saiba quando a conversão é concluído Então você também teria que enviar um ID para o script de conversão e armazenaria esse ID de ambos os lados, para que o servidor possa voltar ao seu script local (AVISO!) Com o ID e você pode buscá -lo de volta do servidor.

O motivo do aviso é porque é difícil fazer com que um servidor seja jogado para o seu host local se você estiver atrás de um roteador / firewall, precisaria configurar o encaminhamento de porta etc no roteador e permitir que a porta 80 fosse acessada externamente.

Espero que isso lhe dê alguma idéia de como lidar com essa situação.

Outras dicas

Você não pode executar comandos remotos via FTP.

Se você tem acesso SSH à máquina, pode usar o Extensão SSH2 para PHP e execute -o via SSH.

Olhe para a biblioteca SSH2 (http://php.net/manual/en/book.ssh2.php) para como executar comandos remotamente e a biblioteca Curl (http://php.net/manual/en/book.curl.php) para como baixar arquivos remotos.

Escreva um script PHP e envie -o para o seu servidor de conversão FLV. O script deve:

  1. Faça o download do arquivo FLV (via post ou outra maneira de download) em vid.flv
  2. Execute o comando do servidor "Exec (ffmpeg -i vid.flv -acodec cópia output.mp3);"
  3. Notificar você sobre resultados whe Output.mo3 está pronto

Muitos precisam alterar o tempo máximo de execução do script (set_time_limit);

Dessa forma, seu script não precisaria enviar comandos via SSH.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top