我正试图将一部电影上传到网站上,然后自动将其从.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