|
|
|
| Здраствуйте. Проблема такая.
Хочу получить скриншот из середины 3gp видео. делаю так:
<?
$movie = new ffmpeg_movie($file, false);
$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 видяхи. | |
|
|
|
|
|
|
|
для: skor
(10.09.2008 в 21:26)
| | Когда у меня такое было, то решил, что это баг и плюнул. | |
|
|
|
|
|
|
|
для: BinLaden
(10.09.2008 в 22:52)
| | Да наверно из особенностей сжатия 3gp или еще из за каких либо факторов...
Покрайне мере на в контакте нормально берется средний кадр из 3gp.
Возможно есть способ как нибудь определить количество кадров для данного формата )
Может стоит попробывать
Кадров в секунду $movie->getFrameRate() * Длительност $movie->getDuration()
|
или как нибудь исходя из битрейта и длительности...
Кто что еще может дельного подсказать? | |
|
|
|
|
|
|
|
для: skor
(11.09.2008 в 00:35)
| | Вобщем такие цифры =)
Длительность: 10.309
Кол-во кадров: 309
Кадров в сек: 29.970029830933
битрейт: 74469
|
$movie->getFrame() при параметре 98 выдает последний кадр из видео. | |
|
|
|
|
|
|
|
для: skor
(11.09.2008 в 00:54)
| | Есл я правильно понял, то ваша проблема в том, что он получает неправильную продолжительность видео? Если да, то попробуйте так:
$time = (Кол-во кадров)/(Кадров в сек); // получаем длительность.
$numfr = $time/2; | |
|
|
|
|
|
|
|
для: DEM
(11.09.2008 в 01:17)
| | Проблема в том что он неправельно получает количество кадров в 3gp (или возможно getFrame() неправельно берет кадры по их номерам еще точно не знаю)
Длительность видео определяется нормально.
тут щас эксперементальным путем получил такое ceil($movie->getFrameCount()*0.315)
в двух видео из трех посчитало правильно... ) с третим невышло что меня оч расстроило((
седня уже поздно... завтра продолжу эксперементы ) | |
|
|
|
|
|
|
|
для: skor
(11.09.2008 в 01:33)
| | Тема все еще актуальна... =) | |
|
|
|