Перейти к публикации

Получить превьюшку из видео


Рекомендованные сообщения

Есть 500 видео файлов mp4 на локальном компе. Необходимо получить для каждого видео картинку-превьюшку из середины ролика с одноименным названием. Как это сделать быстро и массово?

Ссылка на сообщение
Поделиться на других сайтах

возможно кому будет интересно, основа, к ней накручивается обходчик



//$result_video = "http://suchek.ru/_test/test.avi";

$gt = time( );

echo "Файл: ".  $gt .".jpeg<br />";


$movie = new ffmpeg_movie($result_video, 1);

$w = ($movie->getFrameWidth());

$h = ($movie->getFrameHeight());

$time = ceil ($movie->getDuration());

$min = floor ($time/60);

$sek = $time - ($min * 60);

if ($sek <10) $nul = "0";

echo "Время: ".  ceil ($movie->getDuration()) ." секунд<br />";

echo "Время: ". $min .":". $nul. $sek ." <br />";

echo "Число кадров: ".  $movie->getFrameCount() ."<br />";

echo "Частота кадров: ".  ceil ($movie->getFrameRate()) ." в секунду<br />";

echo "Ширина: ". $w ." px<br />";

echo "Высота: ". $h ." px<br />";

echo "Скорость потока: ". $movie->getBitRate() ." бит в секунду<br />";

echo "Видео кодек: ". $movie->getVideoCodec() ."<br />";


// JPG http://php.ru/forum/viewtopic.php?t=43621


$width = 64;

$height = 48;

//$result_video = $config['home_url'].'uploads/videos/'.$user_id.'/'.$file_rename.$res_type;

//$result_video = "http://suchek.mcdir.ru/176720487a/OKVrT3Fc8kUfQ1Fm.mp4";

//		    $ffmpeg = '/usr/bin/ffmpeg';

		    // кадр который будем выхватывать (НЕ РАБОТАЕТ)

		    $frame = 10;

		    // Instantiates the class ffmpeg_movie so we can get the information you want the video

		    $movie = new ffmpeg_movie($result_video);


		    $image = $movie->getFrame($frame);

		    //Need to create a GD image ffmpeg-php to work on it 

//		    $image = imagecreatetruecolor($width, $height);

		    //Create an instance of the frame with the class ffmpeg_frame 

		    $frame = new ffmpeg_frame($Image); 

		    //Choose the frame you want to save as jpeg 

//		    echo $thumbnailOf = $movie->getFrameRate() * 5; 

		    $thumbnailOf = (int) round($movie->getFrameCount() / 10);   // время (в долях) с которого делается кадр

		    //Receives the frame 

		    $frameImg = $movie->GetFrame($thumbnailOf);

		    // Resizes the frame to 200, 100

  //		  $frameImg-> resize(180, 140);

  //		  $frameImgOr-> resize();

		    //Convert to a GD image 

		    $image = $frameImg->toGDImage();

		    //Save to disk.

		    imagejpeg($image, 'videos/'.$gt.'.jpeg');


		    // Освобождаем память

		    imagedestroy($image);


echo "Затраченое время: ". (time( )-$gt)." секунд";

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...