如何使用PHP上传脚本将电影从.MOV转换为.MP4


How can I convert a movie into .MP4 from .MOV using a PHP upload script?

我正试图将一部电影上传到网站上,然后自动将其从.mov iPhone格式转换为.mp4格式。有没有php转换库或工具可以帮助我做到这一点?

谢谢。

我知道这是一个替代解决方案:

  • http://handbrake.fr/CLI(命令行界面)
  • https://trac.handbrake.fr/wiki/CLIGuide,只需使用PHP即可启动
  • 安装手刹Ubuntu

PHP:

$cmd = './HandBrakeCLI -i /path/to/source.MOV -o movie.mp4 --preset="iPhone & iPod Touch"';
echo exec($cmd);

注意:您需要在服务器上安装Handbrake

您可以尝试ffmpeg扩展:http://ffmpeg-php.sourceforge.net/

编辑:

事实证明,ffmpeg扩展可能对您没有帮助,但您仍然可以使用ffmpeg进行转换。你最好有一个cron作业或类似的东西在后台进行转换。只需让用户上传mov文件,然后将其添加到队列中,并在另一个过程中将其转换为mp4。

Apple mov文件实际上是MP4容器,因此.mov==.m4v==.MP4==.m4a。只需重命名文件即可。或者你想要一个特定的编解码器?

不是很不幸。

在过去的4年里,我一直在做这件事,如果你想尝试自己写,你最好的办法是在上传脚本中把一个exec交给ffmpeg,例如

exec('ffmpeg ... &');

请注意末尾的"与"符号,这允许您的php脚本完成,同时允许在后台进行编码,还可以检查您的输入变量,因为使用此方法有可能进行shell注入。

或者另一种选择:

使用beanstalkd这样的系统作为php上传脚本和后台工作进程(我使用自定义多线程perl脚本)之间的消息队列,工作进程接收新的编码并处理它们(我使用ffmpeg、mencoder或使用qt_tools的quicktime,具体取决于输入视频格式),使用memcached作为编码状态的临时存储。

对不起,我现在不能说得更具体了,我明天可能会更新一些,但我整晚都没睡,需要睡眠。希望这能让你朝着正确的方向前进。

尝试命令:

 ffmpeg -i movie.mov -vcodec copy -acodec copy out.mp4