Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中将音频和视频转换为mp4格式文件_Php_Video_Recorder - Fatal编程技术网

如何在php中将音频和视频转换为mp4格式文件

如何在php中将音频和视频转换为mp4格式文件,php,video,recorder,Php,Video,Recorder,我正在使用 制作录像机 它生成两个不同的文件,一个用于音频,一个用于视频 我想合并两个文件并生成一个mp4文件 他们给出了合并代码,但显示错误 他们的代码是: 'Win16', 'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', 'Windows 98' => '(Windows 98)|(Win98)', 'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',

我正在使用 制作录像机

它生成两个不同的文件,一个用于音频,一个用于视频

我想合并两个文件并生成一个mp4文件

他们给出了合并代码,但显示错误

他们的代码是:

'Win16', 'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', 'Windows 98' => '(Windows 98)|(Win98)', 'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)', 'Windows XP' => '(Windows NT 5.1)|(Windows XP)', 'Windows Server 2003' => '(Windows NT 5.2)', 'Windows Vista' => '(Windows NT 6.0)', 'Windows 7' => '(Windows NT 7.0)', 'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)', 'Windows ME' => 'Windows ME', 'Open BSD' => 'OpenBSD', 'Sun OS' => 'SunOS', 'Linux' => '(Linux)|(X11)', 'Mac OS' => '(Mac_PowerPC)|(Macintosh)', 'QNX' => 'QNX', 'BeOS' => 'BeOS', 'OS/2' => 'OS/2', 'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)' ); // Loop through the array of user agents and matching operating systems foreach($OSList as $CurrOS=>$Match) { // Find a match if (eregi($Match, $_SERVER['HTTP_USER_AGENT'])) { // We found the correct match break; } } // if it is audio-blob if (isset($_FILES["audio-blob"])) { $uploadDirectory = 'uploads/'.$_POST["filename"].'.wav'; if (!move_uploaded_file($_FILES["audio-blob"]["tmp_name"], $uploadDirectory)) { echo("Problem writing audio file to disk!"); } else { // if it is video-blob if (isset($_FILES["video-blob"])) { $uploadDirectory = 'uploads/'.$_POST["filename"].'.mp4'; if (!move_uploaded_file($_FILES["video-blob"]["tmp_name"], $uploadDirectory)) { echo("Problem writing video file to disk!"); } else { $audioFile = 'uploads/'.$_POST["filename"].'.wav'; $videoFile = 'uploads/'.$_POST["filename"].'.mp4'; $mergedFile = 'uploads/'.$_POST["filename"].'-merged.mp4'; // ffmpeg depends on yasm // libvpx depends on libvorbis // libvorbis depends on libogg // make sure that you're using newest ffmpeg version! if(!strrpos($CurrOS, "Windows")) { $cmd = '-i '.$audioFile.' -i '.$videoFile.' -map 0:0 -map 1:0 '.$mergedFile; } else { $cmd = ' -i '.$audioFile.' -i '.$videoFile.' -c:v mpeg4 -c:a vorbis -b:v 64k -b:a 12k -strict experimental '.$mergedFile; } exec('ffmpeg '.$cmd.' 2>&1', $out, $ret); if ($ret){ echo "There was a problem!\n"; print_r($cmd.'\n'); print_r($out); } else { echo "Ffmpeg successfully merged audi/video files into single WebM container!\n"; unlink($audioFile); unlink($videoFile); } } } } } ?> “Win16”, “Windows 95'=>”(Windows 95)|(Win95)|(Windows_95)”, “Windows 98'=>”(Windows 98)|(Win98)”, “Windows 2000”=>“(Windows NT 5.0)|(Windows 2000)”, “Windows XP”=>“(Windows NT 5.1)|(Windows XP)”, 'Windows Server 2003'=>'(Windows NT 5.2)', “Windows Vista”=>“(Windows NT 6.0)”, “Windows 7'=>”(Windows NT 7.0), “Windows NT 4.0'=>”(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(WinNT)|(Windows NT)”, “Windows ME”=>“Windows ME”, “打开BSD”=>“打开BSD”, “太阳操作系统”=>“太阳操作系统”, “Linux'=>'(Linux)|(X11)”, “Mac OS'=>”(Mac_PowerPC)|(Macintosh)”, “QNX”=>“QNX”, “BeOS”=>“BeOS”, 'OS/2'=>'OS/2', “搜索机器人”=>“(nuhk)|(谷歌机器人)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)|” ); //通过用户代理阵列和匹配的操作系统进行循环 foreach($OSList作为$CurrOS=>$Match) { //找到匹配的 if(eregi($Match,$\u SERVER['HTTP\u USER\u AGENT'])) { //我们找到了正确的匹配项 打破 } } //如果是音频块 如果(isset($_文件[“音频块])){ $uploadDirectory='uploads/'。$\u POST[“filename”]。.wav'; 如果(!move_upload_file($_FILES[“audio blob”][“tmp_name”],$uploadDirectory)){ echo(“将音频文件写入磁盘时出现问题!”); } 否则{ //如果是视频块 如果(isset($_文件[“视频块])){ $uploadDirectory='uploads/'。$\u POST[“filename”]。.mp4'; 如果(!move_upload_file($_FILES[“video blob”][“tmp_name”],$uploadDirectory)){ echo(“将视频文件写入磁盘时出现问题!”); } 否则{ $audioFile='uploads/'。$_POST[“filename”]。.wav'; $videoFile='uploads/'。$_POST[“filename”]。.mp4'; $mergedFile='uploads/'。$_POST[“filename”]。-merged.mp4'; //ffmpeg依赖于yasm //libvpx依赖于libvorbis //libvorbis依赖于libogg //确保您使用的是最新的ffmpeg版本! 如果(!strrpos($CurrOS,“Windows”)){ $cmd='-i'.$audioFile'.-i'.$videoFile'.-map 0:0-map 1:0'.$mergedFile; } 否则{ $cmd='-i'.$audioFile'.-i'.$videoFile'.-c:v mpeg4-c:a vorbis-b:v 64k-b:a 12k-严格实验'.$mergedFile; } exec('ffmpeg'$cmd.'2>&1',$out$ret); 如果($ret){ echo“出现问题!\n”; 打印($cmd.\n'); 打印(输出); }否则{ echo“Ffmpeg成功地将音频/视频文件合并到单个WebM容器!\n”; 取消链接(音频文件); 取消链接(视频文件); } } } } } ?>
错误是有问题的-i uploads/114197753.wav-i uploads/114197753.mp4-map 0:0-map 1:0 uploads/114197753-merged.mp4 Array([0]=>sh:ffmpeg:未找到命令)您必须安装ffmpeg才能使脚本正常工作。