我试图找出通过php命令登录到远程服务器并运行命令将FLV文件转换为MP3(然后可能将其移动到本地服务器)的最佳方法?
我可以随时移动文件,但我需要按照此顺序执行此操作,因为远程服务器托管ffmpeg。
使用它将在本地执行:
exec(ffmpeg -i vid.flv -acodec copy output.mp3);
我该如何远程进行?
谢谢!
答案 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转换服务器。 该脚本应该:
您需要更改脚本的最大执行时间(set_time_limit);
这样您的脚本就不需要通过ssh发送命令。
答案 3 :(得分:0)
您需要按顺序执行以下操作
如果您通过ftp将文件发送到服务器,然后在刚刚将文件传输到的服务器上创建脚本,则可以使用该文件的哈希代码对脚本执行ping操作,并告诉它进行转换。
转换脚本将采用文件名,然后在本地目录中查找该文件,当它找到时,它将进行转换。
如果您希望本地服务器知道转换完成的时间,那么您还必须向转换脚本发送一个id,并且您将存储该ID两侧,因此服务器可以使用id ping回本地脚本(警告!),然后您可以从服务器上取回它。
警告的原因是因为如果您在路由器/防火墙后面,您必须在路由器上设置端口转发等并且允许访问端口80,因此很难让服务器ping到您的本地主机外部
希望这能为您提供一些如何处理这种情况的线索。