Форум → Программирование → Пыхнуть хотите? → F.A.Q. → Работа с видео на php с помощью php ffmpeg
Работа с видео на php с помощью php ffmpeg
Страницы: ← Предыдущая страница • Следующая страница →
-
13 мая 2010 г. 19:22, спустя 59 минут 5 секунд
В вашей версии php это не работает. надо 3 версию ставить -
-
13 мая 2010 г. 19:28, спустя 4 минуты 53 секунды
Troy, ((( Блин, не радостное известие(, а есть варианты как длину трека подругому извлечь, не используя php ffmpeg? Всю инфу извлёк тоько это осталось(( -
-
13 мая 2010 г. 21:19, спустя 30 минут 26 секунд
Парни подскажите, пожалуйсто, как другими способами (не используя php ffmpeg) продолжительность видео файла получить, ну уж очень надо,а php пока не могу переустановить :( все сделал кроме длины( -
13 мая 2010 г. 22:42, спустя 1 час 22 минуты 44 секунды
onzone, ставь пхп3 там все будет, а то 4 и 5 гавно в этом планеСапожник без сапог -
13 мая 2010 г. 23:10, спустя 27 минут 48 секунд
onzone,
проиграй кусок файла mplayerom и распарси вывод -
14 мая 2010 г. 23:41, спустя 1 день 31 минуту
Эх блин, ток одна альтернатива осталась вчера серв на 5 пыху перевёл ( Много ругатн было со скриптами ну щс вроде всё ровно ) Спс, тему можно закрывать, проблема решена, всё равно моё имхо php 4 тож рулит) -
15 мая 2010 г. 1:16, спустя 1 час 34 минуты 56 секунд
Вот блин опоздал я )))
кароч, я тут тоже выдергиванием инфы занялся, и чет лень мне готовые либы искать пишу потихоньку сам, что требуется, вот может кому пригодитьсяfunction get_move_info($file){
global $workdirectory;
if (!file_exists($file)) return false;
$out=array();
$err=0;
$fr='';
$fp=popen('export LD_LIBRARY_PATH=/usr/lib/ && /usr/local/bin/ffmpeg -y -i '.$file.' &> '.$workdirectory.'moveinfo.txt','r');
if ($fp){
while (!feof($fp))
$fr.=fgets($fp);
pclose($fp);
}
$fr=file_get_contents($workdirectory.'moveinfo.txt');
if (preg_match_all('#Duration: ([0-9]{2}:[0-9]{2})#si',$fr,$match))
$out['time']=$match[1][0];
else
$err++;
if (preg_match_all('#Duration: ([0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{2})#si',$fr,$match))
$out['duration']=$match[1][0];
else
$err++;
if (preg_match_all('#([0-9]+x[0-9]+)#s',$fr,$match))
{
$out['sizeXY']=$match[1][0];
list($out['sizeX'],$out['sizeY'])=explode('x',$out['sizeXY']);
}
else
$err++;
if (preg_match_all('#bitrate: ([0-9]+) kb\/s#s',$fr,$match))
$out['bitrate']=$match[1][0];
else
$err++;
//print_r($out);
return ($err>0 ? false : $out);
}
так же еще вот функция которая шарит запущен ли ffmpegfunction ps ()
{
$out=array('ffmpeg'=>false,'rar'=>false);
$fr='';
$fp=popen('ps aux | grep ffmpeg','r');
if ($fp){
while (!feof($fp))
$fr.=fgets($fp);
pclose($fp);
}
if (preg_match_all('#ffmpeg -y -i#si',$fr,$match))
$out['ffmpeg']=true;
return $out;
}
надеюсь вопросов не возникнет, только есть одна тонкость, чтобы вторая функция точно сработала, необходимо чтобы в командной строке было так "ffmpeg -y -i", иначе функция не сможет отследить -
15 мая 2010 г. 19:07, спустя 17 часов 50 минут 54 секунды
jenik_ok, Оба, крутая штука =)возьму на вооружение =) А те +1 ) Иногда оч даж полезна) -
18 мая 2010 г. 12:18, спустя 2 дня 17 часов 10 минут
после некоторого времени копания в Google на предмет mapping ffmpeg я нашел интересный факт…
как известно конкурент ffmpeg это mplayer и один из аргументов в пользу mplayer'a было то, что он делает скриншеты очень быстро…
в общем выяснилось что ffmpeg умеет делать это так же быстро )))) хотите узнать как? отправтье смс на короткий номер хххх с текстом уу-ууу-уууу
а если правда, то
МЕДЛЕННО: ffmpeg -i input.file -an -ss 00:20:00 -r 1 -vframes 1 -y -f mjpeg screen.jpg
БЫСТРО: ffmpeg -ss 00:20:00 -i input.file -an -r 1 -vframes 1 -y -f mjpeg screen.jpg
для тех кто не уловилНапример, если указать -ss после -i файл, вы задолбаетесь ждать, пока оно перейдёт к нужному месту в файле, потому что будет seek’ать на уровне кодека. А если указать -ss до -i файл, seek’ать оно будет на уровне контейнера и сделает это быстро.
-
18 мая 2010 г. 12:40, спустя 21 минуту 57 секунд
jenik_ok, скажу я вам, что ебанутый обработчик параметров вызова у ффмпега …. или логика, идиотизм карочеСапожник без сапог -
19 мая 2010 г. 7:53, спустя 19 часов 13 минут 41 секунду
phpdude, согласен, мало того что параметров чуть больше чем дофига, так еще и порядок их знать надо…
я тут немного функцию переделал, вот так сказать вариант 2.0, как мне кажется более надежный, во всяком случае ни на одном из 44 файлов которые есть на серваке проблем не возниклоfunction get_move_info($file){
global $workdirectory;
if (!file_exists($file)) return false;
$out=array();
$err=0;
$fr='';
$fp=popen('export LD_LIBRARY_PATH=/usr/lib/ && /usr/local/bin/ffmpeg -y -i '.$file.' &> '.$workdirectory.'moveinfo.txt','r');
if ($fp){
while (!feof($fp))
$fr.=fgets($fp);
pclose($fp);
}
$fr=file_get_contents($workdirectory.'moveinfo.txt');
//Duration: 01:34:18.70, start: 0.000000, bitrate: 2070 kb/s
if (preg_match_all('#Duration: ((([0-9]{2}:[0-9]{2}):[0-9]{2})\.[0-9]+), start: ([0-9\.]+), bitrate: ([0-9]+) kb\/s#s',$fr,$match))
{
$out['time'] = $match[3][0];
$out['timeHis'] = $match[2][0];
$out['duration'] = $match[1][0];
$out['start'] = $match[4][0];
$out['bitrate'] = $match[5][0];
$out['sduration'] = explode(':',$out['duration']);
$out['sduration'] = (60*$out['sduration'][0]+$out['sduration'][1])*60+$out['sduration'][2];
//print_r($match);
}
else $err++;
$count=preg_match_all("#Stream \#([0-9]+)\.([0-9]+)(.*?)\n#si",$fr,$matchSt);
if ($count)
{
//print_r($matchSt);
$astream=0;
for ($i=0;$i<$count;$i++)
{
//$input=$matchSt[1][$i];
//$stream=$matchSt[2][$i];
if (strpos($matchSt[0][$i],'Video:'))
{
if (preg_match_all('#([0-9]+x[0-9]+)#s',$matchSt[3][$i],$match))
{
$out['sizeXY']=$match[1][0];
list($out['sizeX'],$out['sizeY'])=explode('x',$out['sizeXY']);
}
else $err++;
}elseif(strpos($matchSt[0][$i],'Audio:'))
{
$out['audio'][$astream]['stream']=$matchSt[2][$i];
$astream++;
}
}
}else $err++;
//print_r($out);
return ($err>0 ? false : $out);
}
если кому пригодиться в реальной жизни, в благодарность приму бутылочку пива ;) -
15 ноября 2010 г. 22:33, спустя 180 дней 15 часов 39 минут
А какjq кодек лучше заюзать при конвертировании ffmpeg-ом ? . На хабре про VP6 писали…
Может кто пробовал разные кодеки?. Интересует какой использовать кодек, чтоб качество в конечном flv был получше ). -
16 ноября 2010 г. 0:42, спустя 2 часа 8 минут 43 секунды
бытует мнение, что h264 и .mp4 получше будет.Спустя 65 сек.кстати vp6 не так просто заюзать
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!