Здравствуйте!
Существует несколько способов определить длительность видеофайла с помощью PHP, даже если файл хранится на обычном хостинге. Вот два популярных метода:
### 1. Использование библиотеки FFmpeg
FFmpeg – это мощный инструмент для работы с мультимедийными файлами, включая видео и аудио. Вы можете использовать его через PHP, если он установлен на сервере.
Для использования FFmpeg:
1. Убедитесь, что FFmpeg установлен на сервере.
2. Выполните команду через `exec()` или `shell_exec()`.
Пример кода:
```php
$videoFile = 'path/to/your/video.mp4';
$ffmpeg = '/usr/bin/ffmpeg'; // путь к FFmpeg
$cmd = "$ffmpeg -i $videoFile 2>&1";
$output = shell_exec($cmd);
preg_match('/Duration: (\d+:\d+:\d+\.\d+)/', $output, $matches);
if (isset($matches[1])) {
echo "Длительность видео: " . $matches[1];
} else {
echo "Не удалось определить длительность видео.";
}
```
### 2. Использование библиотеки `getID3`
Если установка FFmpeg невозможна, вы можете использовать PHP-библиотеку `getID3`, которая может извлекать метаданные из различных медиаформатов.
Для этого выполните следующие шаги:
1. Установите библиотеку `getID3` через Composer или скачайте с [официального сайта](https://getid3.sourceforge.io/).
2. Используйте библиотеку в вашем коде.
Пример кода:
```php
require_once 'getid3/getid3.php';
$getID3 = new getID3;
$fileInfo = $getID3->analyze('path/to/your/video.mp4');
if (isset($fileInfo['playtime_string'])) {
echo "Длительность видео: " . $fileInfo['playtime_string'];
} else {
echo "Не удалось определить длительность видео.";
}
```
Выберите способ, который больше подходит для ваших нужд и доступных ресурсов на хостинге. Если FFmpeg доступен, он, как правило, предоставляет больше возможностей. Если нет - используйте `getID3`.