在PHP中通过ffmpeg命令从avi文件转换为mp4文件

时间:2018-09-12 16:08:33

标签: php video ffmpeg mime

以下php中的ffmpeg命令可从avi文件创建mp4文件,而不会删除原始的avi文件,例如, 指令中毕竟存在两个文件,分别是1221222.avi和1221222.mp4。

((对于/xxxxx/xxxxxx/*.avi中的i;执行ffmpeg -i“ $ i” -frames:v 1“ / xxxxx / xxxxxx / $(基本名称” $ i“ .avi).mp4”;完成”)

在命令创建1221222.mp4文件后,我想立即删除此1221222.avi文件。

是否有任何命令通过替换将文件从avi转换为mp4?还是我必须在上述命令后添加delete命令?

如果有人可以帮助我完成命令,我将不胜感激。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

即使下面的php脚本可以将avi文件从本地驱动器上传到我当前正在开发的应用程序中,该avi也不会在html上播放。 因此,我正在尝试从avi文件转换为mp4文件,通过在php中使用ffmpeg命令可以正常工作。此ffmpeg命令可创建mp4,但html仍不会播放。是因为原始avi文件仍然存在于目录中吗?

//php
case "video/x-msvideo":

if($header){
    header("Content-Type: video/x-msvideo");

 $dst_im = copy($path, $dst_file);
 return "";
 }else{ 

 $dst_file = $dst_file . ".avi";
 shell_exec('for i in  /xxxxxx/xxxxxx/*.avi; do ffmpeg -i "$i" - frames:v 1 "/xxxxxx/xxxxxx/$(basename "$i"  .avi).mp4"; done');      

 $dst_im = copy($path, $dst_file);
 }
 unlink($dst_im);
 break; 


//html
<video width="500"  height="250"  id="bgvid" poster="video.jpg"    controls="controls" preload="auto" autoplay>
<source type="video/mp4" src="xxxxxxxxxxxxxxxxxxxxx.mp4" />
</video>

1 个答案:

答案 0 :(得分:2)

没有这样的操作,您可以追加一个

之类的bash命令。

rm filename.mp4

添加到脚本中,或使用

通过php删除文件
unlink($filepath);