下面php中的ffmpeg命令从avi文件创建mp4文件而不删除原始avi文件,这意味着,例如,有两个文件,1221222.avi和1221222.mp4毕竟存在于directry中。
('for i in /xxxxx/xxxxxx/*.avi; do ffmpeg -i“$ i”-frames:v 1“/ xxxxx / xxxxxx / $(basename”$ i“.avi).mp4”; done')
我想在命令创建1221222.mp4文件后立即删除此1221222.avi文件。
是否有任何命令通过替换它将文件从avi转换为mp4?或者我必须在上面的命令后添加删除命令?
如果有人能帮助我完成命令,我将不胜感激。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
即使下面的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>
没有这样的操作,你可以只添加一个bash命令
rm filename.mp4
到脚本或您通过PHP删除文件
unlink($filepath);