Получение статистики и скриншотов видеоролика посредством php5-ffmpeg

от автора

Продолжаем делать ютуб.

Открытый вопрос — с уходом ffmpeg из Ubuntu, что придет на замену модулю php5-ffmpeg? Сообщите в комментариях, если вам что-то известно.

Под катом небольшая функция, написанная на PHP5, использующая модуль php5-ffmpeg, извлекающая скриншоты и статистику.

Установка модуля php5-ffmpeg в Ubuntu

sudo apt-get install php5-ffmpeg 

Функция принимает параметры
$video — полный серверный путь до (загруженного) видеоролика
$screens_path — передать полный серверный путь, чтобы сделать скриншоты
$screens_count — количество скриншотов

function movie_progress($video,$screens_path = FALSE,$screens_count = 10) { 	$movie = new ffmpeg_movie($video); 	if ( ! $movie) 	{ 		return; 	} 	$frame_count = $movie->getFrameCount(); 	// получаем скриншоты 	$screens = FALSE; 	if ($screens_path) 	{ 		// определяем интервал, через который будем извлекать скрины 		$step = floor($frame_count / ($screens_count)); 		$screens = array(); 		// извлекаем скриншоты, и складываем пути в массив 		for ($i = $step; $i < $frame_count; $i += $step) 		{ 			$filename = $path.md5(rand()).'.png'; 			$frame = $movie->getFrame($i); 			$image = $frame->toGDImage(); 			imagepng($image,$filename); 			if (is_file($filename)) 			{ 				$screens[] = $filename; 			} 		} 	} 	// возвращаем статистику и список скринов 	return array( 		'width' => $movie->getFrameWidth(), // ширина в пикселях 		'height' => $movie->getFrameHeight(), // высота в пикселях 		'frame_count' => $frame_count, // количество фреймов 		'bitrate' => $movie->getBitRate(), // битрейт 		'video_bitrate' => $movie->getVideoBitRate(), 		'video_codec' => $movie->getVideoCodec(), 		'audio_codec' => $movie->getAudioCodec(), 		'screens' => $screens, // массив со скриншотами 	); } 

Можно модифицировать любым образом, по вашему усмотрению.

Методы $movie->getAuthor(), $movie->getCopyright(), $movie->getArtist(), $movie->getGenre() и подобные по неизвестным мне причинам приводят к фатальной ошибке, не отлавливаемой средствами PHP.

Документация на модуль ffmpeg-php.sourceforge.net/doc/api/index.php

ссылка на оригинал статьи http://habrahabr.ru/post/171239/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *