【发布时间】:2022-08-07 07:10:00
【问题描述】:
我有一个 cron 设置来获取本地上传的视频、创建屏幕抓图、压缩视频并上传到在线存储。我正在将 ffmpeg 与 php 一起使用,并尝试了几种不同的方法,但尽管它确实压缩了文件大小,但我一直在获取视频第一秒的保存文件。我试着延迟这个过程,以防它没有足够的时间来做视频,这就是原因,但它似乎没有做太多。以下是我一起尝试过的代码的一些示例(注释为每个都尝试过,但您可以看到不同的方式):
try {
// compress video if needed
$bitrate = \"5000k\";
// $command = \"ffmpeg -i \".($temp_dir.\"/\".$folder.\"/\".$sub_file).\" -b:v $bitrate -bufsize $bitrate \".$temp_dir.\"/\".$folder.\"/edit-\".$sub_file;
// $command = \"ffmpeg -i $temp_video -qscale 0 \".$temp_dir.\"/\".$folder.\"/edit-\".$sub_file;
$command = \"ffmpeg -i \".($temp_dir.\"/\".$folder.\"/\".$sub_file).\" -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 \".$temp_dir.\"/\".$folder.\"/edit-\".$sub_file;
//system($command);
$output=null;
$retval=null;
exec($command, $output, $retval);
$temp_video = $temp_dir.\"/\".$folder.\"/edit-\".$sub_file.\"\";
} catch (Exception $e) {
// log output
}
这是否存在已知问题或我缺少的东西?
谢谢
标签: php ffmpeg cron video-compression