2009-09-24 2 views

ответ

1

Вы можете использовать ffmpeg.

Как только он установлен на вашем сервере, вы можете использовать его на PHP, написав командную строку и набрав на нем exec.

.: например

exec('ffmpeg -i mymovie.mov -vcodec mjpeg -vframes 1 -an -f rawvideo -s 64x64 foo.jpg'); 
3

Вот фрагмент, чтобы захватить кадр из середины видео. Это старый код, в котором я лежал, поэтому я уверен, что его можно упростить. Обязательно настройте путь ffmpeg в строке 1, чтобы он соответствовал месту установки.

$output = shell_exec("/usr/local/bin/ffmpeg -i {$path}"); 
preg_match('/Duration: ([0-9]{2}):([0-9]{2}):([^ ,])+/', $output, $matches); 
$time = str_replace("Duration: ", "", $matches[0]); 
$time_breakdown = explode(":", $time); 
$total_seconds = round(($time_breakdown[0]*60*60) + ($time_breakdown[1]*60) + $time_breakdown[2]); 
shell_exec("/usr/local/bin/ffmpeg -y -i {$input_filepath} -f mjpeg -vframes 1 -ss " . ($total_seconds/2) . " -s {$w}x{$h} {$output_filepath}"; 
0

Я использовал FFmpeg, начиная задачу с Exec(), и добавьте амперсанд в команду, так что Teh PHP скрипт может продолжаться. Если я хочу, чтобы ffmpeg закончил сначала, у меня нет амперсанда.

Из раздела «Вопросы и ответы»: «Как закодировать фильм на отдельные снимки?» http://ffmpeg.org/faq.html#SEC15

ffmpeg -i movie.mpg movie%d.jpg 

Это генерирует много изображений.

Из документов: "видео и аудио преобразования файлов формата" http://ffmpeg.org/ffmpeg-doc.html#SEC5

ffmpeg -i foo.avi -r 1 -s WxH -f image2 -vframes 1 foo.jpeg 

Заменить W & H с ширина/высота (см http://ffmpeg.org/ffmpeg-doc.html#SEC9), заменить vframes с количеством кадров хотел, добавить% D к имени файла для порядкового номера, если вы делаете несколько изображений. Чтобы захватить в определенный момент видео, используйте -ss (см. http://ffmpeg.org/ffmpeg-doc.html#SEC8)

+0

Как установить ffmpeg? plz help – Rajasekar

+0

@Rajasekar: Какую ОС вы используете? Google либо «устанавливает ffmpeg windows/osx/linux» в зависимости от того, что вы используете. –

+0

Мне это нужно для php. Чтобы установить ffmpeg, они запросят отредактировать файл php.ini. Я работаю в своей локальной системе. Я хочу знать, что при размещении какой-либо проблемы возникнет проблема? позволит хостеру разрешить нам редактировать php.ini ??. Или мы должны использовать любой особый тип хостинга. @ Derek Gathright – Rajasekar

1

Я знаю, что этот вопрос старый. Но я столкнулся с этим, когда искал подобное решение. Вот мои выводы. Надеюсь, это поможет кому-то другому.

  • Html5 + JS. Вот мои demo/slides по теме.

  • HTML to Canvas library не пошел по этому маршруту, но, возможно, он будет работать.

Смежные вопросы