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

标签 php video ffmpeg mime

下面 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);

关于php - 在 php 中通过 ffmpeg 命令将 avi 文件转换为 mp4 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52299437/

相关文章:

ruby-on-rails - 如何知道 Ruby 中的 ffmpeg 转换是否成功?

php - 如何在数据库中搜索字符串 X 次? (MySQL + PHP)

javascript - Angular http GET 405(不允许的方法)

html - 视频播放加载,然后重定向到index.html

ffmpeg - 由 vcpkg 编译的静态 libavcodec 大小太大

ffmpeg - 在ffmpeg中的音频之间多次插入随机静音

php - Lighttpd 和 Fastcgi 配置中 PHP_FCGI_CHILDREN 和 max-procs 的含义

php - 具有 LEFT JOIN 和 ORDER BY 的 PDO

在 Raspberry Pi 上播放 Android Things 视频

image - FFMPEG "Could find no file with path"和 "No such file or directory"