Максим Котляров
2 сообщения
#16 лет назад


Добрый день, Есть ли такой скрипт, делающий такие скриншоты?
Юрий Осадчий
661 сообщение
#16 лет назад
Думаю, некорректно вопрос задан.

Цитата:
Снимок экрана (скриншот, англ. screenshot) — изображение, полученное компьютером и показывающее в точности то, что видит пользователь на экране монитора или другого устройства вывода.


А тут скорей всего необходимо извлечение определенного фрейма видео, если это так, то такой скрипт реализуем но потребуется использование сторонних библиотек. И что значит "скрипт" -- на каком языке?
Дмитрий О.
771 сообщение
#16 лет назад
Mediapleer Classic - Файл - Сохранить миниатюры
Максим Котляров
2 сообщения
#16 лет назад
Не мне нужно это делать на сервере
Юрий Осадчий
661 сообщение
#16 лет назад
Цитата ("abuka"):
Не мне нужно это делать на сервере

1. Сервер нужен выделенный для таких задач
2. Есть инструменты работающие с командной строки и позволяющие видео преобразовать в ряд JPG файлов. Напр. XINE или MPLAYER, есть сборки этих инструментов как под *NIX так и под WIN32.
Юрий Осадчий
661 сообщение
#16 лет назад



Цитата:

The mplayer syntax for creating a thumbnail is:
mplayer -ss <seconds> -nosound -vo jpeg -frames 2 <video filename>


So, to grab a frame 60 seconds into the latest episode of The Simpsons:

mplayer -ss 60 -nosound -vo jpeg -frames 2 simpsons.s19e08.av
Юрий Осадчий
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" на , там есть несколько статей.

Противопоказания: Были замечены случаи отказа с некоторыми форматами на машине под виндоус. Быть может это зависит от системных кодеков или еще от чего... не проверялось.