有人能帮我编写FFMPEG的php代码吗?它可以连接两个mp4视频,并将连接的文件作为mp4存储在服务器的任何文件夹中?
关于FFMPEG部分,请参阅此处:使用FFMPEG 连接两个mp4文件
对于PHP部分,您可以使用以下命令调用任何命令:http://php.net/function.exec
我没有成功地使用mp4视频,但我成功地使用了两个webm视频。我使用的是Windows 8.1。
我做了什么?步骤:
-
安装本地Web服务器,如XAMPP或EasyHP:我使用了EasyHP DevServer 14.1 VC11。可用:http://www.easyphp.org/easyphp-devserver.php
-
转到文件夹"path''EasyHP-DevServer-14.1VC11''data''localweb"并创建新文件夹,例如FFMPEG_PHP
-
下载适用于Windows的FFMPEG:下载32位下载或64位下载版本静态。我使用了"下载FFMPEG git-013498b"32位静态。可用:http://ffmpeg.zeranoe.com/builds/
-
将文件"ffmpeg.exe"复制到文件夹"ffmpeg_PHP"
-
在文件夹"FFMPEG_PHP"中存储2个或多个webm视频。我从youtube下载视频。看1:48分钟这个视频如何从youtube:下载视频
www.youtube.com/watch?v=FZJqdwfxSWU。
-
在"FFMPEG_php"中创建"joinVideos.php"
请参阅我在下面的"join Videos.php"中所做的代码:
<?php
$joinVideosTXT="joinVideos.txt";
$joinVideos=fopen($joinVideosTXT,"w+");
//Writes "joinVideos.txt"
$video="nameVideo1";
$video2="nameVideo2";
$pathVideo=$video.".webm";
$pathVideo2=$video2.".webm";
$strVideo="file '".$pathVideo."'"."'r'n";
$strVideo2="file '".$pathVideo2."'"."'r'n";
fwrite($joinVideos, $strVideo);
fwrite($joinVideos, $strVideo2);
fclose($joinVideos);
$ffmpeg="ffmpeg.exe";
$videoFinal="videoFinal.webm";
unlink($videoFinal);//remove previous $videoFinal
$cmd="$ffmpeg -f concat -i " .$joinVideosTXT." -c copy ".$videoFinal;
system($cmd);
?>
<video controls="controls">
<source src="videoFinal.webm" type="video/webm">
</video>
</body>
重要提示:当您第一次运行"joinVideos.php"时,必须注释行"unlink($videoFinal);//删除以前的$videoFinaal"