FFMpeg-адаптер для arhitector\transcoder. В своей работе использует
утилиты ffmpeg и ffprobe из стандартного пакета ffmpeg.
- PHP 5.5 или новее
- Установленный
FFMPEGиFFPROBE
$ composer require arhitector/transcoder-ffmpegПоддерживается большинство возможностей, предоставляемых arhitector\transcoder (чтение информации, запись метаданных,
транскодирование и прочее).
Адаптер реализует для удобства свои обёртки над Audio, Video, Subtitle.
public *::__construct(string $filePath [, array $options = array()])Создаёт новое объектно ориентированное представление для конкретного медиа-файла.
Список параметров
-
$filePathдопускает значение типа string, путь до существующего аудио, видео или файла субтитров. -
$optionsпринимает значениеarray, массив опций адаптера.
Примеры
Пример #1: Общий пример.
// для аудио
$audio = new Arhitector\Transcoder\FFMpeg\Audio('audio.mp3', [/* опции */]);
// видео или изображение
$video = new Arhitector\Transcoder\FFMpeg\Video('video.mp4', [/* опции */]);
// и для субтитров
$subtitle = new Arhitector\Transcoder\FFMpeg\Subtitle('subtitles.ass');-
ffmpeg.pathпуть до бинарного файлаffmpeg, принимает типstring. Чаще всего, когдаFFMPEGустановлен, адаптер может самостоятельно найти расположение бинарных файлов на основе вашего окружения. -
ffmpeg.threadsустанавливает значение опции-threads, принимаетinteger. По умолчанию0(ноль). -
ffprobe.pathпуть до бинарного файлаffprobe, принимает типstring. -
timeoutвремя ожидания выполнения команд в секундах, типinteger, по умолчанию без ограничений.
Примеры
Пример #1: Пример массива.
$options = [
'ffmpeg.path' => 'path/bin/ffmpeg.exe',
'ffmpeg.threads' => 12,
'ffprobe.path' => 'usr/bin/ffprobe',
'timeout' => 3600
];Пример #2: Использование опций.
$audio = new Arhitector\Transcoder\FFMpeg\Audio('audio.mp3', [
'timeout' => 300,
// 'ffmpeg.path' => 'ffmpeg',
// ...
]);Пример #3: Создание экземпляра адаптера.
$adapter = new Arhitector\Transcoder\FFMpeg\Adapter([
/* опции */
]);Список поддерживаемых фильтров:
- ....
- ....
.....
Эти примеры характерны только для transcoder-ffmpeg адаптера.
Пример #1: Извлечь 1 кадр.
$video->save(new Jpeg, 'picture.jpg');Пример #2: Сохранить множество кадров.
$video->save(new Png, 'picture-%05d.jpg');