我试图找出通过 php 命令登录到远程服务器并运行命令将 FLV 文件转换为 MP3(然后可能将其移动到本地服务器)的最佳方式?
我总是可以稍后移动文件,但我需要按此顺序执行,因为远程服务器托管 ffmpeg。
使用它将在本地执行:
exec(ffmpeg -i vid.flv -acodec copy output.mp3);
我怎样才能远程做到这一点?
谢谢!
我试图找出通过 php 命令登录到远程服务器并运行命令将 FLV 文件转换为 MP3(然后可能将其移动到本地服务器)的最佳方式?
我总是可以稍后移动文件,但我需要按此顺序执行,因为远程服务器托管 ffmpeg。
使用它将在本地执行:
exec(ffmpeg -i vid.flv -acodec copy output.mp3);
我怎样才能远程做到这一点?
谢谢!
您不能通过 FTP 执行远程命令。
如果您对机器具有 SSH 访问权限,则可以使用 PHP 的SSH2 扩展并通过 SSH 执行它。
查看 SSH2 库 ( http://php.net/manual/en/book.ssh2.php ) 了解如何远程运行命令,以及 Curl 库 ( http://php.net/manual/en/book。 curl.php)了解如何下载远程文件。
编写一个 php 脚本并将其上传到您的 flv 转换服务器。脚本应该:
您需要更改脚本的最大执行时间(set_time_limit);
这样你的脚本就不需要通过 ssh 发送命令了。
您需要按顺序执行以下操作
如果您通过 ftp 将文件发送到服务器,然后在刚刚将文件传输到的服务器上创建一个脚本,您可以使用文件的哈希码 ping 脚本,并告诉它进行转换。
转换脚本会取一个文件名,然后在本地目录中查找该文件,当它找到它时,它将转换。
如果您希望本地服务器知道转换何时完成,那么您还必须向转换脚本发送一个 id,并将该 id 存储在双方,以便服务器可以 ping 回您的本地脚本(警告!)使用 id,您可以从服务器取回它。
警告的原因是因为如果您在路由器/防火墙后面,您将不得不在路由器上设置端口转发等并允许外部访问端口 80,那么很难让服务器 ping 到您的本地主机。
希望这能给你一些关于如何处理这种情况的线索。