Получить продолжительность видео с видео URL в PHP

1

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

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

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

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

Вот мой код:

<?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
Теги:
video

1 ответ

1

Вот вам быстрый ответ: файл должен быть загружен сначала на ваш сервер.

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

$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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню