Для определения ширины и высоты видеофайла можно использовать различные техники в зависимости от того, работаете ли вы с фронтендом (JavaScript) или с бэкендом (PHP).
### JavaScript (Перед загрузкой на сервер)
Чтобы получить размеры видео с помощью JavaScript до отправки файла на сервер, можно использовать объект `URL` для создания временного объекта URL, который указывает на файл, который был выбран с помощью элемента `<input>` типа file, и затем создать элемент `<video>` для извлечения метаданных.
Пример кода на JavaScript:
```javascript
const input = document.querySelector('input[type="file"]');
input.onchange = function(event) {
const file = event.target.files[0];
const url = URL.createObjectURL(file);
// Создаем элемент video для извлечения размеров
const video = document.createElement('video');
video.src = url;
video.addEventListener('loadedmetadata', function() {
// Метаданные загружены, можно получить размеры
console.log(`Ширина: ${video.videoWidth}, Высота: ${video.videoHeight}`);
// Освобождаем память, удаляя временный URL
URL.revokeObjectURL(url);
});
}
```
### PHP (После загрузки на сервер)
Для получения размеров видео с помощью PHP после его загрузки на сервер, можно использовать функцию `getimagesize()` для картинок, но для видеофайлов она не подойдет. В таком случае часто используются расширения или инструменты командной строки, такие как `ffmpeg`.
Пример использования `ffmpeg` с PHP:
```php
// Путь к загруженному на сервер видеофайлу
$videoFile = '/path/to/your/video.mp4';
// Команда для получения размеров видео с помощью ffmpeg
$command = "ffmpeg -i $videoFile 2>&1 | grep 'Stream' | grep 'Video:' | grep -oP ', \K[^,]+'";
// Выполнение команды и сохранение вывода в переменную $output
exec($command, $output);
// Разбор вывода для извлечения ширины и высоты
if (preg_match('/(\d+)x(\d+)/', $output[0], $matches)) {
$width = $matches[1];
$height = $matches[2];
echo "Ширина: $width, Высота: $height";
} else {
echo "Не удалось определить размеры видео.";
}
```
Вам понадобится установить `ffmpeg` на ваш сервер, чтобы использовать его с PHP. Обратите внимание, что пути и параметры команды могут варьироваться в зависимости от настроек вашего сервера.
Важно заметить, что при работе с файлами загруженными пользователями необходимо быть осторожным и проводить их валидацию для предотвращения возможных уязвимостей, связанных с безопасностью.