в том же процессе PHP я пытаюсь открыть файл, который был изменен и сохранен, а затем я пытаюсь открыть его как новый FFMpeg \ Video. Например, в том же процессе:
Open -> original.MOV
Manipulate & save to -> new.mp4
Open -> new.mp4
Однако, когда я пытаюсь открыть манипулируемый файл, я получаю исключение InvalidArgumentException:
InvalidArgumentException: Unable to detect file format, only audio and video supported
Он генерируется FFMpeg :: open () после того, как не может обнаружить, что это поток видео или аудио.
FFMpeg :: Open ()
public function open($pathfile) { if (null === $streams = $this->ffprobe->streams($pathfile)) { throw new RuntimeException(sprintf('Unable to probe "%s".', $pathfile)); } if (0 < count($streams->videos())) { return new Video($pathfile, $this->driver, $this->ffprobe); } elseif (0 < count($streams->audios())) { return new Audio($pathfile, $this->driver, $this->ffprobe); } throw new InvalidArgumentException('Unable to detect file format, only audio and video supported'); }
Фильтры, которые я применил к видео, — это отключение звука и ускорение (setpts).
Интересно, почему FFMpeg не распознает это как видео?
Видимо, я пытался открыть видео файл, который был поврежден или неполный. В любом случае, проблема не в коде или не дай бог — php-ffmpeg.
Других решений пока нет …