ffmpeg Получение изображения или миниатюры от видео ошибки

У меня есть простой сайт, на котором люди загружают видео, поэтому я хочу создать простую миниатюру из загруженного видео. Я пробовал каждый трюк и способ сделать это с нескольких веб-сайтов, но я не могу сделать команду без проблем.

$video = $_FILES['vpopupdropin']["tmp_name"]; $ffmpeg = "C:\\Ffmpeg\\ffmpeg-20130605-git-3289670-win64-static\\bin"; $image = "manu.jpg"; $second = 12; $size = "150x90"; $command = "$ffmpeg -i $video -an -ss $second -s $size -vcodec mjpeg $image"; echo $command; shell_exec($command); if(shell_exec($command)){ echo 'okay'; echo '<img src="'.$image.'"/ >'; } else{ echo ' Problem'; } 

Я повторил команду из PHP, и это то, что я получил: C: \ Ffmpeg \ ffmpeg-20130605-git-3289670-win64-static \ bin -i C: \ xampp \ tmp \ php27F1.tmp -an -ss 12 – s 150×90 -vcodec mjpeg manu.jpg Проблема

поэтому я взял команду выше и ввел ее в Cmd и получил эту ошибку

[image2 @ 00000000000000003d87580] Не удалось открыть файл: manu.jpg av_interleaved_write_frame (): Ошибка ввода / вывода. загруженный файл хорошо переносится туда, где iam сохраняет его и хорошо играет на сайте, что означает, что файл не поврежден. но команда thumbnail, похоже, терпит неудачу, я даже проверил другие вопросы на этом сайте, но я, похоже, не получил правильное решение. пути в Команде верны, и я подтвердил, что по крайней мере

Вы не дали ffmpeg имя 🙂 Итак, вы пытались выполнить папку \\bin !

 $ffmpeg = "C:\\Ffmpeg\\ffmpeg-20130605-git-3289670-win64-static\\bin"; 

вы забыли ffmpeg.exe

 $ffmpeg = "C:\\Ffmpeg\\ffmpeg-20130605-git-3289670-win64-static\\bin\\ffmpeg"; 

Я делаю это для .avi со следующей командой

 ffmpeg -i Echo2012.avi -r 1 -s 1024x576 -f image2 -vframes 1 foo-001.jpg 

Не выполняйте свою команду дважды!

 $command = "$ffmpeg -i $video -an -ss $second -s $size -vcodec mjpeg $image"; echo $command; shell_exec($command); if(shell_exec($command)){ 

РЕДАКТИРОВАТЬ :

ваша командная строка:

 ffmpeg -i upload.tmp -an -ss 12 -s 150x90 -vcodec mjpeg manu.jpg 
  • -vcodec codec (output): установка кодека видеовыхода. Это переключатель для выходного видео. Вы хотите, чтобы вывести изображение.
  • -an: Вы можете отключить аудиопоток. Для изображения вам не нужен звук.
  • -ss: position (input / output) При использовании в качестве опции ввода ( до -i ) ищет в этом входном файле положение.

моя командная строка:

 ffmpeg -i Echo2012.avi -r 1 -s 1024x576 -f image2 -vframes 1 foo-001.jpg 
  • -r: fps (вход / выход, для потока). Установите частоту кадров (значение, дробь или аббревиатуру).
    В качестве параметра ввода игнорируйте любые отметки времени, хранящиеся в файле, и вместо этого генерируйте метки времени, предполагающие постоянную частоту кадров fps.
  • -f image2: image2 формат выходного файла image2 . Формат обычно определяется автоматически из расширения файла для выходных файлов.
  • -vframes number (output): установить количество видеокадров для записи.