Миниатюры видео
Pimcore способен автоматически конвертировать любое видео в веб-форматы. Кроме того, из видео можно создать пользовательское изображение для предварительного просмотра.
ВАЖНО Для использования всех перечисленных ниже функций на сервере необходимо установить FFMPEG.
Более подробную информацию смотрите в разделе Установка дополнительных инструментов.
Объяснение трансформаций
Трансформации являются адаптерами для Фильтров и опций FFMPEG, и большая часть конфигурации эквивалентна.
| Трансформация | Описание | Фильтр FFMPEG |
|---|---|---|
| ORIGINAL VIDEO | Это видео, которое используется в следующих преобразованиях | НЕТ ;-) |
| COLOR CHANEL MIXER | Настройка кадров видеосигнала путем ремиксинга цветовых каналов | -fv colorchannelmixer |
| SET FRAMERATE | Преобразование видео в заданную постоянную частоту кадров, дублируя или удаляя кадры по мере необходимости | -fv fps |
| CUT | Установить начальную и конечную позицию видео | -ss and -t |
| MUTE | Удалить аудиопоток | -an |
Использование миниатюр видео в вашем коде
Примеры - Изображение стоп-кадра
$asset = Asset::getById(123);
if($asset instanceof Asset\Video) {
// получить миниатюру предварительного просмотра видео, размер которой изменен в соответствии с настройкой "myThumbnail"
echo $asset->getImageThumbnail("myThumbnail");
// извлечь моментальный снимок (изображение) из видео продолжительностью 10 секунд. (см. второй параметр), используя динамическую настройку миниатюр изображений.
echo $asset->getImageThumbnail(["width" => 250], 10);
}
Примеры - Транскодирование видео
$asset = Asset::getById(123);
if($asset instanceof Asset\Video) {
$thumbnail = $asset->getThumbnail("myVideoThumbnail"); // returns an array
if($thumbnail["status"] == "finished") {
p_r($thumbnail["formats"]); // transcoding finished, print the paths to the different formats
/*
ВЫВОДИТ:
Array(
"mp4" => "/Sample%20Content/Videos/123/video-thumb__123__myVideoThumbnail...mp4",
"webm" => "/Sample%20Content/Videos/123/video-thumb__123__myVideoThumbnail...webm"
)
*/
} else if ($thumbnail["status"] == "inprogress") {
echo "transcoding in progress, please wait ...";
} else {
echo "transcoding failed :(";
}
}
Стриминг видео с адаптивным битрейтом
Эта функция позволяет вам генерировать файл формата MPEG-DASH (.mpd) для потоковой передачи видео с адаптивным битрейтом.
Как только вы определите преобразования на основе битрейта в thumbnail config, будет создан файл .mpd с потоками битрейта.
Ссылка на файл .mpd будет указана в сгенерированном теге <video>.
Однако для поддержки потоковой передачи видео с адаптивным битрейтом во всех основных браузерах необходимо включить функцию polyfill: https://github.com/Dash-Industry-Forum/dash.js
{{ pimcore_video('campaignVideo', {
width: auto,
height: auto,
thumbnail: 'new'
}) }}
создает фронтенд:
<video width="100%" height="auto" controls="controls" class="pimcore_video" preload="auto" src="blob:http://xyz/01f91372-ddd8-4d3f-ac85-e420432d9704">
<source type="video/mp4" src="/videodata/955/video-thumb__955__campaignVideo/Volkswagen-Van.mp4">
<source type="application/dash+xml" src="/videodata/955/video-thumb__955__campaignVideo/Volkswagen-Van.mpd">
</video>
Использование с редактируемым элементом Video
Пожалуйста, взгляните на редактируемый элемент Video.
Вы можете предложить улучшение документации или задать вопрос в комментариях.
Если вам нужна полноценная консультация — вы можете заказать её на нашем сайте.