为什么ffmpeg创建额外的文件?

问题描述 投票:0回答:1

我正在尝试使用ffmpeg从url转换文件,并且大多数时候,我得到的正是我想要的东西:

$video = "tmpVideos/".$img->image_id.$randNum.".mov";
$largeURL = uniqid();
$command = "ffmpeg -i $video -filter:v scale=720:-2:force_original_aspect_ratio=decrease -c:v libx264 -x264-params crf=23 -an large/$largeURL.mp4";
shell_exec($command);

但是,当输入文件大于2GB时,就会发生奇怪的事情。大多数情况下,它只会产生额外的文件。我要求的文件将被创建,然后再以相同的分辨率创建多个文件(有时为1,有时为3),但文件大小稍大(大约20%)。

为什么会这样?创建所需文件时,有什么方法可以杀死ffmpeg?

ffmpeg terminal video-processing
1个回答
0
投票

经过大量的反复试验,我确实解决了这个问题。

我有两个问题。上面列出了一个,另一个是我下载的2-4GB文件将下载1-4次,然后每个文件将用ffmpeg处理1-4次以上,因此我吞噬了很多处理能力和带宽。

事实证明,整个脚本只是在重复进行自身操作才能到达die()或exit();超时后,PHP将停止执行,但下载或进程将继续进行。

我仍然不知道为什么它在超时后会重复出现,但是加上ini_set('max_execution_time', '1000');(1000或其他一些大数字)就可以了。该脚本有足够的时间执行,并且自然会die()

© www.soinside.com 2019 - 2024. All rights reserved.