Avconv / php запускает небольшие GIF-файлы вместо видео-файлов (GIF-файлы не могут загружать)

Я разрешаю пользователям загружать следующие видеофайлы:

WMV | AVI | мили на галлон | mp4 | мы | OGG | FLV | 3gp | 3g2 | m4v

Прежде всего мои php-скрипты проверяют расширение файла. Если это не одно из разрешенных расширений, загрузка прерывается.

Во-вторых. Скрипт проверяет MIME-тип:

$finfo = new finfo;
$ftyp = $finfo->file($uploaded_file, FILEINFO_MIME_TYPE);

$avava = array(
"video/mp4",
"video/x-ms-asf",
"video/x-ms-wmv",
"video/x-msvideo",
"video/mpeg",
"video/quicktime",
"video/x-flv",
"video/ogg",
"video/3gpp",
"video/3gpp2");

if (!in_array($ftyp, $avava)) {
$file->error = $this->get_error_message('accept_file_types');
return false;
}

Скрипт также проверяет частоту кадров и размеры и т. Д.

Если все правильно, загрузка завершается, и cronjob каждые 10 минут преобразует загруженные видеофайлы в mp4 и уменьшает размеры, если они очень большие:

$thuc = exec("avconv -y -i $fai -map 0 -c:v libx264 -crf 22 -c:a copy $fai2");

if ($width > 800) {
$thuc = exec("avconv -y -i $fai2 -filter:v scale=\"750:trunc(ow/a/2)*2\" -c:a copy $fai3");
}

Когда я получаю доступ к загруженным видео, большинство видео в порядке, но некоторые видео не работают — видео не запускается и не работает; ничего не показывать.

Все эти файлы представляют собой небольшие 45-байтовые файлы, которые в текстовом редакторе показывают следующие строки:

GIF89a  €  ÿÿÿ   !ù    ,       „    ;

Что это? Это GIF-файл? Как люди могут загружать GIF-файлы, если они не входят в число разрешенных типов MIME? Почему эти файлы такие маленькие? Что вызывает эту проблему? PHP-скрипты позволяют загружать GIF-файлы? Это проблема с avconv?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]