arhitector/transcoder-ffmpeg

The FFMpeg adapter for a arhitector/transcoder.

0.5.0 2016-10-15 13:22 UTC

This package is auto-updated.

Last update: 2024-12-13 03:07:56 UTC


README

FFMpeg-адаптер для arhitector\transcoder. В своей работе использует утилиты ffmpeg и ffprobe из стандартного пакета ffmpeg.

1.1. Требования

  • PHP 5.5 или новее
  • Установленный FFMPEG и FFPROBE

1.2. Установка

$ composer require arhitector/transcoder-ffmpeg

2. Возможности адаптера

Поддерживается большинство возможностей, предоставляемых 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');

3. Опции адаптера

  • 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([
	/* опции */
]);

4. Фильтры

Список поддерживаемых фильтров:

  • ....
  • ....

5. Пресеты

.....

6. Примеры

Эти примеры характерны только для transcoder-ffmpeg адаптера.

6.1. Разложить видеоряд на кадры

Пример #1: Извлечь 1 кадр.

$video->save(new Jpeg, 'picture.jpg');

Пример #2: Сохранить множество кадров.

$video->save(new Png, 'picture-%05d.jpg');

7. Лицензия (License)

MIT License (MIT)