Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Keyframes && flv
цитата
10/05/09 в 18:29
 Sterx
еще один вопрос без ответа.
возможно ли как то рассчитать периодичность кейфремов в ролике flv ?
или в контейнере mpeg-2 ?
с целью, если таковую периодичность каким-то образом можно детектить, и соответственно извлечь эти кадры
цитата
10/05/09 в 20:41
 Dr.Syshalt


Чем извлечь?
Я не знаю способа извлечь только keyframes из видео при помощи ffmpeg с командной строки, но у него есть интерфейсы с почти всеми языками - включая php и perl. При помощи несложного скрипта можно промотать до следующего кейфрэйма

Вот тут - документация на ffmpeg-php, где в самом внизу описывается функция getNextKeyFrame() - как раз то, что тебе нужно. Есть примеры и, чтобы написать что-то в духе "открыли мувик-перебрали все кейфреймы и сохранили", не надо быть ни Джоном Кармаком, ни даже Сисхальтом icon_smile.gif (шучу)
цитата
10/05/09 в 20:57
 Sterx
ага
это я уже нашел
мешает то что метод возвращает объект GD
а требование в ТЗ - работа с IM
цитата
10/05/09 в 20:59
 Sterx
кроме того подозреваю для 20 минутного ролика это будет ресурсоемко
цитата
10/05/09 в 21:00
 Sterx
и на входе будут всевозможные форматы - не только flv
цитата
10/05/09 в 21:01
 Sterx
а примеры если есть, посмотреть было бы интересно
цитата
10/05/09 в 21:16
 Dr.Syshalt


Скачай и посмотри, в чем проблема? Там все примеры в дистрибутиве.

Ресурсоемко... так, как ты описал - да, есть немного, но не думаю, что заметно - по кейфрэймам перемотка как раз быстро идет. Быстрее ты все равно не управишься. Вот если по произвольным, с доступом в нужную точку времени - вот тут как раз ffmpeg-php очень плохо себя ведет. Можно оптимизировать "процесс", но тогда нужно писать на C, с доступом к ffmpeg API, я, например, переписывал ffmpeg-php, чтобы он под конкретную задачу в разы быстрее работал (генерация тумбнашек из кучи видео). Ты программер, все в твоих руках. Форматы - все, которые ffmpeg поддерживает, все твои. Если нужен IM - ну, дописывай ffmpeg-php, тут, как бы, вариантов мало. Возможно на perl с его интерфейсом с ffmpeg более по-человечески все написано (как обычно), но не пробовал, врать не буду.
цитата
10/05/09 в 21:52
 Sterx
спс, попробую
цитата
11/05/09 в 13:11
 Cibtor
Dr.Syshalt писал:
я, например, переписывал ffmpeg-php, чтобы он под конкретную задачу в разы быстрее работал
А смысл заниматься подобным если можно напрямую ffmpeg (через exec) команды передавать.
цитата
11/05/09 в 13:20
 Sterx
смысл в узкоспециальных задачках, получается
цитата
11/05/09 в 20:03
 Dr.Syshalt
Cibtor писал:
А смысл заниматься подобным если можно напрямую ffmpeg (через exec) команды передавать.


Смысл в том, что у ffmpeg-lib API куда богаче, чем командная строка ffmpeg. И можно добиться того, чего не добьешься через командную строку.

Вот в этом самом топике только что обсуждалось то, что при помощи командной строки нельзя выбрать только ключевые фреймы. Кроме того, позиционирование можно сделать куда более быстрым (слегка в ущерб точности, но для генерации тумб - непринципиально). И кучу всего можно еще сделать, чего не сделаешь через командную строку.


Эта страница в полной версии