在 php 中通过 ffmpeg 命令将 avi 文件转换为 mp4 文件

To convert from avi file to mp4 file by ffmpeg command in php

下面 php 中的 ffmpeg 命令从 avi 文件创建 mp4 文件而不删除原始 avi 文件,这意味着,例如, 毕竟目录里有两个文件1221222.avi和1221222.mp4

('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);