Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ffmpeg VS 3gp количсетво кадров
 
 автор: skor   (10.09.2008 в 21:26)   письмо автору
 
 

Здраствуйте. Проблема такая.
Хочу получить скриншот из середины 3gp видео. делаю так:

<?
$movie 
= new ffmpeg_movie($filefalse);
$numfr ceil(($movie->getFrameCount())/2);
$frame $movie->getFrame($numfr);
$src $frame->toGDimage();
?>

С mp4 и avi берет скрин прекрасно, а с 3gp некак нехотел. Начал искать причину и обнаружил следующее... с 10 секундного видео $movie->getFrameCount() возвращает около 180 фреймов.
а если в $frame = $movie->getFrame($numfr); поставить $numfr больше 49 то там собственно будет уже конец этого видео.

Кто нибудь может подсказать почему так происходит? И можно ли как нибудь высчитать середину 3gp видяхи.

  Ответить  
 
 автор: BinLaden   (10.09.2008 в 22:52)   письмо автору
 
   для: skor   (10.09.2008 в 21:26)
 

Когда у меня такое было, то решил, что это баг и плюнул.

  Ответить  
 
 автор: skor   (11.09.2008 в 00:35)   письмо автору
 
   для: BinLaden   (10.09.2008 в 22:52)
 

Да наверно из особенностей сжатия 3gp или еще из за каких либо факторов...
Покрайне мере на в контакте нормально берется средний кадр из 3gp.
Возможно есть способ как нибудь определить количество кадров для данного формата )
Может стоит попробывать


Кадров в секунду $movie->getFrameRate() * Длительност $movie->getDuration()


или как нибудь исходя из битрейта и длительности...
Кто что еще может дельного подсказать?

  Ответить  
 
 автор: skor   (11.09.2008 в 00:54)   письмо автору
 
   для: skor   (11.09.2008 в 00:35)
 

Вобщем такие цифры =)


Длительность: 10.309
Кол-во кадров: 309
Кадров в сек: 29.970029830933
битрейт: 74469


$movie->getFrame() при параметре 98 выдает последний кадр из видео.

  Ответить  
 
 автор: DEM   (11.09.2008 в 01:17)   письмо автору
 
   для: skor   (11.09.2008 в 00:54)
 

Есл я правильно понял, то ваша проблема в том, что он получает неправильную продолжительность видео? Если да, то попробуйте так:

$time = (Кол-во кадров)/(Кадров в сек); // получаем длительность.
$numfr = $time/2;

  Ответить  
 
 автор: skor   (11.09.2008 в 01:33)   письмо автору
 
   для: DEM   (11.09.2008 в 01:17)
 

Проблема в том что он неправельно получает количество кадров в 3gp (или возможно getFrame() неправельно берет кадры по их номерам еще точно не знаю)

Длительность видео определяется нормально.


тут щас эксперементальным путем получил такое ceil($movie->getFrameCount()*0.315)
в двух видео из трех посчитало правильно... ) с третим невышло что меня оч расстроило((
седня уже поздно... завтра продолжу эксперементы )

  Ответить  
 
 автор: skor   (11.09.2008 в 13:38)   письмо автору
 
   для: skor   (11.09.2008 в 01:33)
 

Тема все еще актуальна... =)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования