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');