PHP ffmpeg 输出位置

标签 php ffmpeg

我的网站允许用户上传视频文件到服务器。原始文件将移动到文件夹“原始”ffmpeg 将压缩视频并将视频存储在 480p 文件夹中。如何设置 ffmpeg 以便它将压缩视频文件的输出存储到原始/480p?

upload.php的部分代码

$target_dir = "Original/"; //where you want to upload the files to
$target_file = $target_dir.basename($_FILES['file']['name']);
$fileType = pathinfo($target_file, PATHINFO_EXTENSION);
$newFileName = $target_dir.sha1(pathinfo(basename($_FILES['file']['name']), PATHINFO_FILENAME)).'480p'.'.'.$fileType;
//$newFileName = $target_dir.sha1(pathinfo(basename($_FILES['file']['name']), PATHINFO_FILENAME)).'-'.time().'.'.$fileType;
move_uploaded_file($_FILES['file']['tmp_name'], $newFileName);

使用这个 FFMPEG 命令
shell_exec("C:\\ffmpeg\\bin\\ffmpeg.exe -y -i ".$newFileName." -c:v libx264 -s:v 854x480 -c:a copy \"480p\\{$newFileName}\" > logfile.txt 2>&1");

我得到了错误
480p\Original/ffbaf58f1231628f9ac2a583f038b51719006ec6480p.mp4:没有这样的文件或目录

我希望将输出存储在 original/480p/compressed-video-file

最佳答案

首先,您需要在服务器中创建一个文件夹:original/480p然后将代码更改为:

$target_dir = "original/"; //where you want to upload the files to
$target_file = $target_dir.basename($_FILES['file']['name']);
$fileType = pathinfo($target_file, PATHINFO_EXTENSION);
$newFileName = $target_dir.'/480p/'.sha1(pathinfo(basename($_FILES['file']['name']), PATHINFO_FILENAME)).'480p'.'.'.$fileType;
//$newFileName = $target_dir.sha1(pathinfo(basename($_FILES['file']['name']), PATHINFO_FILENAME)).'-'.time().'.'.$fileType;
move_uploaded_file($_FILES['file']['tmp_name'], $newFileName);

FFmpeg 命令:
shell_exec("C:\\ffmpeg\\bin\\ffmpeg.exe -y -i ".$target_file.".".$fileType." -c:v libx264 -s:v 854x480 -c:a copy \"{$newFileName}\" > logfile.txt 2>&1");

关于PHP ffmpeg 输出位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34846990/

相关文章:

javascript - 将说明显示为工具提示或弹出窗口

php - 使用单个 MySQL 查询统计所有不同记录关系

ffmpeg - 我可以在 FFmpeg 中播放视频时生成实时 SSIM/PSNR 图吗?

FFmpeg - 添加水印,concat 文件和输出 mp4,优化?

php - Laravel 5 有条件的多对多同步()

php - 如何在 yii2 中使用两个不同的模型登录或切换身份类别?

php - 登录未验证

image - 使用 FFmpeg 将 fdshow 音频捕获与静止图像结合起来

c++ - 无法使用g++用C++代码编译C库

ffmpeg - 带有 createWriteStream 的 node.js fluent-ffmepg 失败