2015-09-10 2 views
1

Мне нужно отображать продолжительность воспроизведения видео на моем сайте.Получить видео длительность с видео URL в php

Я попытался с помощью getid3, но он не работает, он показывает предупреждения, как:

preg_match() ожидает параметр 2 будет строка, массив приведен в C: \ WAMP \ WWW \ PE \ getID3 \ getID3. php on line 262
Предупреждение: is_readable() ожидает, что параметр 1 является допустимым путем, массив задан в C: \ wamp \ www \ PE \ getid3 \ getid3.php в строке 271
Предупреждение: file_exists() ожидает параметр 1 чтобы быть допустимым путем, массив, указанный в C: \ wamp \ www \ PE \ getid3 \ getid3.php в строке 271

Это предупреждение И т.д., и результат не отображается.

Вот мой код:

<?php 
ini_set('display_errors',1); 
ini_set('display_startup_errors',1); 
ini_set('output_buffering','Off'); 
error_reporting(-1); 
include_once("getid3/getid3.php"); 

$getID3 = new getID3; 
$SongPath = pathinfo('http://localhost/PE/uploads/pe_discussion/videos/Wildlife.wmv'); 
set_time_limit(30); 
$ThisFileInfo = $getID3->analyze($SongPath); 
getid3_lib::CopyTagsToComments($ThisFileInfo); 
echo 'File name: '.$ThisFileInfo['filenamepath'].'<br>'; 
echo 'Artist: '.(!empty($ThisFileInfo['comments_html']['artist']) 
    ? implode('<BR>', $ThisFileInfo['comments_html']['artist']) 
    : '&nbsp;').'<br>'; 
echo 'Title: '.(!empty($ThisFileInfo['comments_html']['title']) 
    ? implode('<BR>', $ThisFileInfo['comments_html']['title']) 
    : '&nbsp;').'<br>'; 
echo 'Bitrate: '.(!empty($ThisFileInfo['audio']['bitrate']) 
    ? round($ThisFileInfo['audio']['bitrate']/1000).' kbps' 
    : '&nbsp;').'<br>'; 
echo 'Play time: '.(!empty($ThisFileInfo['playtime_string']) 
    ? $ThisFileInfo['playtime_string'] 
    : '&nbsp;').'<br>'; 
?> 
+0

Вам необходимо использовать FFmpeg –

ответ

0

Вот быстрый ответ для вас: Файл должен быть загружен первым на сервер.

Вот простой пример:

$SongPath = 'http://localhost/PE/uploads/pe_discussion/videos/Wildlife.wmv'; 

if($SongPath){ 
$filename = tempnam('/tmp','getid3'); 
if (file_put_contents($filename, file_get_contents($SongPath, false, null, 0, 300000))) { 
    if (require_once('getid3/getid3.php')) { 
     $getID3 = new getID3; 
     $ThisFileInfo = $getID3->analyze($filename); 
    } 
    unlink($filename); 
} 
} 

var_dump($ThisFileInfo['playtime_string']); 

PS: Просто замените $ SongPath с существующим внешним URL.

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