如何在FFMPEG和PHP代码的帮助下连接两个mp4视频


How to concatenate two mp4 videos with the help of FFMPEG and PHP code?

有人能帮我编写FFMPEG的php代码吗?它可以连接两个mp4视频,并将连接的文件作为mp4存储在服务器的任何文件夹中?

关于FFMPEG部分,请参阅此处:使用FFMPEG 连接两个mp4文件

对于PHP部分,您可以使用以下命令调用任何命令:http://php.net/function.exec

我没有成功地使用mp4视频,但我成功地使用了两个webm视频。我使用的是Windows 8.1。

我做了什么?步骤:

  1. 安装本地Web服务器,如XAMPP或EasyHP:我使用了EasyHP DevServer 14.1 VC11。可用:http://www.easyphp.org/easyphp-devserver.php

  2. 转到文件夹"path''EasyHP-DevServer-14.1VC11''data''localweb"并创建新文件夹,例如FFMPEG_PHP

  3. 下载适用于Windows的FFMPEG:下载32位下载或64位下载版本静态。我使用了"下载FFMPEG git-013498b"32位静态。可用:http://ffmpeg.zeranoe.com/builds/

  4. 将文件"ffmpeg.exe"复制到文件夹"ffmpeg_PHP"

  5. 在文件夹"FFMPEG_PHP"中存储2个或多个webm视频。我从youtube下载视频。看1:48分钟这个视频如何从youtube:下载视频

    www.youtube.com/watch?v=FZJqdwfxSWU

  6. 在"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"