远程ftp登录并将flv转换为mp3?

时间:2010-11-23 17:45:10

标签: php ffmpeg remote-access

我试图找出通过php命令登录到远程服务器并运行命令将FLV文件转换为MP3(然后可能将其移动到本地服务器)的最佳方法?

我可以随时移动文件,但我需要按照此顺序执行此操作,因为远程服务器托管ffmpeg。

使用它将在本地执行:

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

我该如何远程进行?

谢谢!

4 个答案:

答案 0 :(得分:1)

您无法通过FTP执行远程命令。如果您具有对本机的SSH访问权限,则可以使用SSH2 extension for PHP并通过SSH执行它。

答案 1 :(得分:1)

查看SSH2库(http://php.net/manual/en/book.ssh2.php)以了解如何远程运行命令,以及Curl库(http://php.net/manual/en/book.curl.php)以了解如何下载远程文件。

答案 2 :(得分:0)

编写一个php脚本并将其上传到您的flv转换服务器。 该脚本应该:

  1. 将flv文件(通过POST或其他下载方式)下载到vid.flv
  2. 运行服务器命令“exec(ffmpeg -i vid.flv -acodec copy output.mp3);”
  3. 通知你output.mo3准备就绪的结果
  4. 您需要更改脚本的最大执行时间(set_time_limit);

    这样您的脚本就不需要通过ssh发送命令。

答案 3 :(得分:0)

您需要按顺序执行以下操作

  • 通过php native ftp命令传输FLV
  • 在ffmpeg服务器中创建一个图层以运行命令
  • 阅读回复代码并执行特定操作

如果您通过ftp将文件发送到服务器,然后在刚刚将文件传输到的服务器上创建脚本,则可以使用该文件的哈希代码对脚本执行ping操作,并告诉它进行转换。

  • 通过FTP(Upload Example
  • 发送文件
  • ping服务器以启动转换

转换脚本将采用文件名,然后在本地目录中查找该文件,当它找到时,它将进行转换。

如果您希望本地服务器知道转换完成的时间,那么您还必须向转换脚本发送一个id,并且您将存储该ID两侧,因此服务器可以使用id ping回本地脚本(警告!),然后您可以从服务器上取回它。

警告的原因是因为如果您在路由器/防火墙后面,您必须在路由器上设置端口转发等并且允许访问端口80,因此很难让服务器ping到您的本地主机外部

希望这能为您提供一些如何处理这种情况的线索。

相关问题