Скрипт "стриншот видео"
661 повідомлення
#16 років тому
Думаю, некорректно вопрос задан. Цитата:
Снимок экрана (скриншот, англ. screenshot) — изображение, полученное компьютером и показывающее в точности то, что видит пользователь на экране монитора или другого устройства вывода.
А тут скорей всего необходимо извлечение определенного фрейма видео, если это так, то такой скрипт реализуем но потребуется использование сторонних библиотек. И что значит "скрипт" -- на каком языке?
661 повідомлення
#16 років тому
Цитата ("abuka"):Не мне нужно это делать на сервере
1. Сервер нужен выделенный для таких задач
2. Есть инструменты работающие с командной строки и позволяющие видео преобразовать в ряд JPG файлов. Напр. XINE или MPLAYER, есть сборки этих инструментов как под *NIX так и под WIN32.
661 повідомлення
661 повідомлення
#16 років тому
А вот и скрипт на шелле.
#!/bin/sh
set -e # exit on any error
seconds=120
input=$1
if ; then
seconds=$2
fi
log="/dev/null"
thumb=`echo $input | sed 's/\....$/.jpg/'`
xbox_thumb=`echo $thumb|sed 's/.jpg/.tbn/'`
if ; then
echo "Recreating by increasing thumb value by 3 sec"
seconds=$(($seconds + 3))
rm -f "$thumb"
rm -f "$xbox_thumb"
fi
echo "=== Processing $input ==="
echo -n "Step 1: extracting frame ... "
mplayer -ss $seconds -nosound -vo jpeg -frames 2 "$input" > $log 2>&1 \
&& echo "" || echo "";
echo -n "Step 2: renaming thumb ... "
output=`ls -t 00000*.jpg | tail -1`
mv "$output" "$thumb" && echo "" || echo ""
ln "$thumb" "$xbox_thumb"
rm -f 00000*.jpg
2 повідомлення
#16 років тому
Воспользуйтесь ffmpeg.Можно работать через шелл, но можно найти библиотеку. Для PHP точно есть, поскольку сам писал такое.
Под виндоус можно использовать готовую библиотеку php_ffmpeg.dll
Для UNIX нужно собрать отдельно, но это работа для админа (в сети про это есть).
Подключаем в php.ini: extension=php_ffmpeg.dll
Используем в коде PHP:
<?php
header("Content-Type: image/jpeg");
$oMovie = new ffmpeg_movie(realpath('./videos').'/Office XP.mpeg', false);
$frame = $oMovie->getFrame(rand (1, $oMovie->getFrameCount()-1));
$oImage = $frame->toGDImage();
imageantialias ($oImage, true);
imagejpeg($oImage);
?>
Этот код вывалит случайное изображение из клипа.
Эта библиотека так же позволяет узнать много информации о клипе.
Используя инфо можно многое сделать, например, "наклеить" на картинку имя сайта на полупрозрачной подложке и проч.
Почитайте в сети. Например спросите в поиске "ffmpeg-php" на посилання, там есть несколько статей.
Противопоказания: Были замечены случаи отказа с некоторыми форматами на машине под виндоус. Быть может это зависит от системных кодеков или еще от чего... не проверялось.