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

时间:2014-04-10 16:29:58

标签: php ffmpeg concatenation

有人可以帮助我使用FFMPEG的PHP代码连接两个mp4视频并将连接文件作为mp4存储在服务器的任何文件夹中吗?

2 个答案:

答案 0 :(得分:0)

对于FFMPEG部分,请参见此处:Concatenate two mp4 files using ffmpeg

对于PHP部分,您可以使用:http://php.net/function.exec

调用任何命令

答案 1 :(得分:-2)

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

我做了什么? 步骤:

  1. 安装本地网络服务器,例如XAMPP或EasyPHP:我使用的是EasyPHP DevServer 14.1 VC11。可用:http://www.easyphp.org/easyphp-devserver.php

  2. 转到文件夹“path \ EasyPHP-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. 将2个或多个webm视频存储在“FFMPEG_PHP”文件夹中。我从youtube下载视频。请参阅此视频1:48分钟如何从youtube下载视频:

    www.youtube.com/watch?v=FZJqdwfxSWU

  6. 在“FFMPEG_PHP”中创建“joinVideos.php”

  7. 请参阅下面“加入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); //删除之前的$ videoFinal”。