Генерация видео для сайта с помощью ffmpeg

Подготовка видео файлов в форматах mp4 и webm для html5 тега video

Установка ffmpeg

apt install ffmpeg


Установка пакета php

composer require php-ffmpeg/php-ffmpeg


Пример файла converter.php для генерации файлов в формате mp4 и webm.

include $_SERVER['DOCUMENT_ROOT'] . "/../vendor/autoload.php";

$file = $argv[1];
if (empty($file)) {
    echo 'need file name' . PHP_EOL;
    exit;
}

echo 'mp4' . PHP_EOL;
$ffmpeg = \FFMpeg\FFMpeg::create();
$video = $ffmpeg->open($file);
$video->save(new FFMpeg\Format\Video\X264('aac', 'libx264'), 'video.mp4');

echo 'webm' . PHP_EOL;
$ffmpeg = \FFMpeg\FFMpeg::create();
$video = $ffmpeg->open($file);
$video->save(new FFMpeg\Format\Video\WebM('libvorbis', 'libvpx'), 'video.webm');


Генерация запускается так

php converter.php video.mov


В результате получаются файлы, которые прописываются в теге video

<video controls width="400" height="300">
  <source src="video.mp4" type="video/mp4">
  <source src="video.webm" type="video/webm">
</video>


PS

Если возникает ошибка "... exceeded the timeout of 300 seconds...."

То помогает параметр timeout

$ffmpeg = \FFMpeg\FFMpeg::create(['timeout' => 0]);




Оставить комментарий

Комментарий отправится на проверку

Отправка
Спасибо! Комментарий добавлен
Копировать можно с указанием активной ссылки на эту страницу.
Давайте уважать труд других.