Удаленное видео и миниатюры - все исследовано - PullRequest
2 голосов
/ 27 марта 2011

Привет всем,

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

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

  1. ffmpeg (а также ffmpeg-PHP и ffmpegthumnailer)
  2. Imagick (в настоящее время работает для всех простых созданий миниатюр "изображений", локальных и удаленных)
  3. MPlayer

На данный момент мне не удалось найти метод, который позволил бы мне получать миниатюру из моих собственных видеофайлов на удаленном сервере. Причина, по которой я пытаюсь подключиться к удаленному видеофайлу, состоит в том, что каждое видео может иметь размер от 5 до 300 МБ, и я не хочу копировать весь фильм локально, просто чтобы создать миниатюру.

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

Любые идеи будут с благодарностью,

Спасибо,

Серебряный тигр


Обновление от Silver Tiger:

Похоже, у меня был альтернативный метод с помощью третьей стороны. Я использовал Zendcoder, чтобы конвертировать видеофайлы на лету в стандартный формат, который может надежно воспроизводиться в моем веб-проекте, и в качестве части их сервиса они автоматически создадут динамическое миниатюру и загрузят ее в мой Amazon S3 вместе с конвертированным видео. файл.

Кризис предотвращен, но окольным путем, и я не смог найти решение, которое, к сожалению, я мог бы предложить кому-либо как «решение».

Ответы [ 2 ]

0 голосов
/ 27 марта 2011

Может быть, вы могли бы вызвать скрипт на удаленном сервере для вызова?Таким образом, миниатюра генерируется на удаленном сервере, а затем передается на сервер переднего плана.

Самый простой способ сделать это - установить apache (или что угодно) и разместить там скрипты генерации миниатюр.Тогда все, что вам нужно сделать, это позвонить:

$imageData = file_get_contents('http://remotehost/generateThunmb.php?videoid=bleh');
0 голосов
/ 27 марта 2011

Если у вас установлен ffmpeg, это должно быть довольно просто.Попробуйте что-то вроде этого

$movie = 'somefile.avi';  // video file
$time = '00:03:34';       // time where to take the snapshot
$cmd = "ffmpeg -i '{$movie}' -an -ss {$time} -an -r 1 -vframes 1 -y thumb.jpg";

$escCmd = escapeshellcmd($cmd);
system($escCmd);
...