Настройка конвертации видео в CMS

Документ актуален для InstantVideo 2.X
Настройка конвертации видео в CMS

Содержание  

    Как мы знаем, работа каждого видео в движке обслуживается конкретным провайдером. Для конвертации, хранения и воспроизведения видео на сайте, без зависимости от сторонних сайтов (провайдеров) в движке используется провайдер Localhost. Его настройки находятся в админке по пути:

    Компоненты => iVideo => Провайдеры => Настройки провайдера Localhost

    Настройки конвертации

    В настройках также присутствуют общие опции провайдеров, с ними вы можете ознакомиться в этой статье. Здесь указаны опции, относящиеся непосредственно к этому провайдеру.

    Вкладка «Опции»

    Защита видео файлов от холинка.

    Если включено, то все ссылки на файлы воспроизведения формируются через так называемый «скрипт раздачи». Этот скрипт определяет, как отдать видео в браузер посетителя. Обратите внимание, полноценная защита от хотлинкования возможна только при использовании технологии Nginx (x-accel-redirect) с закрытием в конфигурации Nginx прямого доступа к конвертированным файлам. Примерная конфигурация Nginx указана в этой статье.

    Псевдостримминг.

    Псевдостримминг – это возможность смотреть видео без предварительной полной загрузки файла. Доступны варианты: Apache (без стримминга) и Nginx (x-accel-redirect). В случае HTML5 плееров, псевдостримминг работает при помощи параметра заголовков запроса – range. В этом случае сервер сам должен (если это не так, то сервер нужно правильно сконфигурировать) на основе этих данных отдать нужный кусок файла.

    Вкладка «Конвертация»

    Схема конвертации.

    Задаётся схема конвертации: одновременная или по очереди. При одновременной схеме конвертации видео файлы будут конвертироваться одновременно, но в количестве, не более чем указано в опции «Количество одновременных конвертаций». Если схема указана поочерёдная, то видео файлы будут конвертироваться по очереди: пока текущий не будет конвертирован, следующий файл не начнет конвертироваться.

    Количество одновременных конвертаций.

    Опция будет доступна только при выбранной одновременной схеме конвертации. Если опция не задана, то количество одновременных конвертаций неограниченно. Количество лучше указывать кратное количеству созданных форматов.

    Путь к исполняемому файлу FFmpeg, Yamdi, Flvtool2, Qt-faststart.

    В этих опциях указываются пути к указанным исполняемым файлам. Как их установить написано в этой статье. Если путь определён автоматически, то он указан справа от поля ввода, и при клике на него путь станет в поле. Если путь не определён автоматически, а вы точно знаете, что программа установлена в операционной системе, то впишите путь к исполняемому файлу сами. Из перечисленных программ для конвертации обязательна только ffmpeg. Yamdi, Flvtool2, Qt-faststart необходимы только для внесения мета данных в готовый видео файл. Мета данные нужны для того, чтобы плеер на сайте «знал» параметры воспроизводимого файла до его полной загрузки. Кроме этого, в новых версиях ffmpeg мета данные в файл может вносить сам ffmpeg и потребность в указанных программах отпала, однако их поддержка оставлена для совместимости.

    Программа для внесения мета данных в файл после конвертации.

    Выберите из числа доступных в списке. Здесь указаны программы, пути для которых указываются в опциях выше. Помимо них можно не использовать ни одну программу, выбрав опцию «не использовать», также можно выбрать пункт «Средствами FFmpeg», что укажет движку вносить мета данные при помощи штатных средств Ffmpeg.

    Отладка команд Ffmpeg.

    Если опция включена, то в админке в разделе «Логи» будут отображаться команды запуска конвертации ffmpeg. Полезно для отладки опций конвертации и диагностике ошибок. В полностью отлаженном сайте эту опцию можно отключить.

    Форматы файлов, которые не нужно конвертировать.

    В этом поле через запятую указываются расширения файлов, которые не нужно отправлять на конвертацию и они будут доступны для воспроизведения сразу. Указывать нужно только те типы файлов, которые заведомо могут воспроизводиться в браузере, т.к. движок в этом случае не будет проводить над указанными файлами никаких действий. Например, если вы скопировали себе на ПК с какого-либо видео хостинга mp4 файл. Он заведомо готов к воспроизведению. Внесите расширение mp4 в список и mp4 файлы не будут конвертироваться. Будет полезным ознакомиться с поддерживаемыми форматам Flash и поддерживаемыми форматам html5.

    Дополнительные условия, при которых файлы указанных форматов не конвертировать

    Эта опция появляется, если задан хотя бы один формат, который не нужно конвертировать. Задаются ряды параметров с условиями для пропуска конвертации. Если условий не задано, то все видео указанных форматов добавляются без конвертации. Если заданы, то видео отправится на конвертацию при соблюдении одного из них. Ограничивать можно по размерам видео и битрейту.

    id пользователей, чьи ролики в заданном формате не конвертировать ни при каких обстоятельствах

    Эта опция появляется, если задан хотя бы один формат, который не нужно конвертировать. id пользователей, через запятую, чьи ролики заданного формата никогда не конвертировать. Начните вводить email пользователя или его id.

    Вкладка «Скриншоты»

    Смещение первого (основного) скриншота.

    Указывается количество секунд, которое нужно пропустить с начала видео, чтобы сделать скриншот (изображение из кадра). Если не указано, то движок определит смещение автоматически, исходя из длительности видео: общее время разделит на три, результат и будет смещением.

    Количество дополнительных скриншотов.

    Дополнительные скриншоты – это набор изображений, которые создаются помимо основного скриншота. Они показываются (ротируются) при наведении мыши на основную обложку ролика. Из числа дополнительных скриншотов при редактировании ролика можно выбирать основной. В поле указывается тип формирования дополнительных скриншотов: фиксированное количество, фиксированный интервал или не делать. Фиксированное количество означает, что при любой длительности видео, количество снимаемых скриншотов будет неизменно. Если задан интервал, то количество генерируемых скриншотов будет разниться в зависимости от длительности видео.

    Количество скриншотов / Интервал между снятием скриншотов.

    В этих полях указывается количество или интервал снятия скриншотов по схеме, заданной в предыдущей опции.

    Создавать таймлайновые скриншоты.

    Опция включает создание маленьких таймлайновых скриншотов. Такие скриншоты будут показаны в плеере (поддерживается плеерами Clappr, Jwplayer, Ktplayer и Videojs) при наведении на панель прогресса воспроизведения.

    Интервал снятия таймлайновых скриншотов для коротких/средних/больших видео.

    В опциях задаётся интервал в секундах для снятия скриншотов. Короткие видео – до 4-х минут, средние видео – от 4-х до 20-ти минут включительно, большие видео – более 20-ти минут.

    Высота скриншотов.

    Указывается в пикселях высота снимаемых скриншотов. Пропорции берутся из пропорций видео. Не задавайте слишком большую высоту.

    Форматы конвертации

    Движок поддерживает мультиформатное конвертирование видео. Мультиформатность означает, что в плеере доступен выбор качества видео при воспроизведении. Формат – это набор настроек конвертации, прав доступа к готовому файлу и других параметров.

    Список форматов для конвертации доступен в админке:

    Компоненты => iVideo => Форматы видео

    В списке показаны все доступные форматы, в которые будет конвертироваться исходное (загружаемое пользователями на сайте) видео. Каждый созданный формат можно редактировать, удалять и изменять порядок. Обратите внимание! При удалении формата видео файлы, в него конвертированные, не будут удалены, но при этом перестанут быть доступными для воспроизведения в плеере. Поэтому с форматами вам необходимо определяться сразу и при необходимости не удалять, а редактировать существующие. Стоит также отметить, что вновь добавляемые форматы не дополняют уже конвертированные ролики.

    Порядок форматов в списке также важен. Формат, стоящий в списке первым – будет первым конвертироваться. Тот же принцип и при показе списка форматов в плеере в выборе качества. Для изменения порядка перетащите нужный формат и нажмите «сохранить порядок».

    После установки у вас не будет задано ни одного формата. Для работы конвертации необходимо создать хотя бы один. Для добавления формата нажмите «Добавить формат».

    Вкладка «Общие данные»

    Название формата.

    Указывается название формата. Допустимы цифры и латинские буквы. Лучше всего устанавливать название так, чтобы оно отражало качество формата, например «720p», «480p» и так далее.

    Формат включён.

    Определяет доступность формата для конвертации. Уже созданный формат можно отключить впоследствии, при этом конвертация в него для новых роликов будет приостановлена, однако в уже конвертированных видео этот формат будет доступен для выбора в плеере.

    Формат по умолчанию.

    Этот чекбокс может быть включен только у одного формата. Определяется, какой формат будет выбран в плеере (и будет воспроизводиться) по умолчанию.

    Принудительно конвертировать в этот формат.

    Движок выполняет конвертацию в форматы с учетом размеров (ширина/высота) исходного файла. Если размер исходного файла меньше, чем заданный в формате, то конвертация в этот формат будет пропущена. Это опция задаёт игнорировать это поведение. В этом случае, если размеры исходного файла меньше чем в формате, движок возьмёт размеры исходного файла, но при этом сохранит остальные параметры конвертации. Опцию полезно ставить на формат с наименьшим разрешением, чтобы в случае загрузки маленького по размерам файла, он конвертировался и был доступен для воспроизведения.

    Это HD формат.

    Если ролик будет конвертирован в формат с такой меткой, то на странице просмотра будет присутствовать иконка HD. Как правило, эту метку ставят форматам с большим разрешением и битрейтом. Метка никак не влияет на сам процесс конвертации.

    Формат доступен на устройствах.

    В опции чекбоксами указывается, на каких устройствах этот формат будет доступен для воспроизведения в плеере. Доступны типы устройств: планшеты, мобильные устройства и персональные (настольные) компьютеры.

    Вкладка «Параметры конвертации»

    Все указанные в этой вкладке настройки являются в конечном итоге параметрами запуска ffmpeg, просто представлены в удобном для понимания виде.

    Медиаконтейнер.

    Указывается медиаконтейнер для конвертации. Доступные медиаконтейнеры для выбора: flvmp4webmogg и hls. Рекомендуем ознакомиться с документацией каждого. В большинстве случаев сейчас выбирают mp4 или hls контейнер, а webm или ogg можно использовать (но необязательно, т.к. mp4 также работает на большинстве мобильных устройств) для создания файлов для воспроизведения на мобильных устройствах. Название контейнера является и расширением файла, за исключением HLS. В этом случае файл имеет расширение m3u8 (формат манифеста), а сами сегменты HLS имеют расширение ts.

    Продолжительность одного сегмента

    Опция появляется только для контейнера HLS. В опции указывается количество секунд для одного сегмента. Это не точное значение. Сегмент будет сокращен на следующий ключевой кадр после того, как указанное время пройдёт. По умолчанию - 10 секунд.

    Разрешение роликов.

    Указывается разрешение роликов из списка. Доступны: 240p, 360p, 480p, 720p, 1080p и 1440p. Это размер высоты. Пропорции вычисляются автоматически по соотношению сторон (aspect ratio). Корректная (по стандарту) работа с aspect ratio 1.3333, 1.7777 и 2.388. В остальных случаях ширина вычисляется по автоматически определённому из исходного видео соотношению сторон.

    Количество каналов звука.

    Выбирается, какой будет звук: монофонический или стереофонический. Обратите внимание, некоторые кодеки требуют установки только стерео.

    Количество ядер процессора, используемых для конвертации.

    Позволяет указать ffmpeg сколько использовать ядер процессора при конвертации в этот формат. Например, для формата, в который ролик конвертируется первым, имеет смысл не ограничивать ядра в целях максимально быстрой конвертации. Если не указано количество, то ffmpeg никак не будет ограничивать. Если хотите ограничить, то перед этим узнайте общее количество ядер командой в консоли Linux:

    root# cat /proc/cpuinfo

    Максимальная продолжительность конвертированного ролика.

    Если не указано, то ограничений продолжительности не будет. Если хотите ограничить, то укажите количество секунд. Конвертированный в этот формат файл будет иметь продолжительность не больше, чем задано. Использовать эту опцию полезно совместно с ограничениями правил доступа к форматам. Например, вы можете сделать формат предпросмотра, ограничив продолжительность 30 секундами и дать ему доступ для всех пользователей. А полные форматы, сделать доступными для выбранных групп зарегистрированных пользователей.

    Накладывать водяной знак.

    Включение этой настройки позволит вам наносить водяной знак на конвертированное видео. Обратите внимание! Наложение ватермарка немного замедляет процесс конвертации. Как альтернатива, можно в настройках некоторых плееров указывать логотипы (ватермарки). В этом случае визуально будет тоже самое, однако сам видео файл будет без ватермарка.

    Позиция водяного знака.

    Опция доступна при включении настройки «Накладывать водяной знак». Выберите из списка позицию водяного знака. Доступны позиции:

    • Верхний левый угол;
    • Верхний правый угол;
    • Нижний правый угол;
    • Нижний левый угол.

    Отступ от краёв видео.

    Опция доступна при включении настройки «Накладывать водяной знак». Задаётся отступ в пикселях от краёв видео в зависимости от позиции.

    Изображение водяного знака.

    Опция доступна при включении настройки «Накладывать водяной знак». В поле загружается файл изображения водяного знака. Для каждого формата можно задать свой водяной знак.

    Дополнительные опции Ffmpeg.

    В этой строке вы можете внести любые дополнительные параметры ffmpeg согласно синтаксису. Например, параметры выбранного кодека, его пресет и так далее.

    Видео кодек.

    Указывается название видео кодека для конвертации. Название кодека можно либо вписать в поле вручную, либо выбрать из списка доступных на вашей версии ffmpeg, кликнув на ссылку «выбрать» справа от поля ввода. Обратите внимание! Выбор кодека это важная часть настройки конвертации. Выбирайте кодек согласно заданного выше медиаконтейнера.

    Аудио кодек.

    Указывается название аудио кодека для конвертации. Как и видео кодек, можно либо написать вручную в поле, либо выбрать из списка доступных, с учётом вашей версии ffmpeg.

    Частота кадров.

    Укажите частоту кадров (кадров в секунду). Слишком большое значение увеличит размер конвертированного файла.

    Видео битрейт.

    Укажите в битах/секунду битрейт конечного файла. Параметр влияет, в том числе, и на качество получаемого видео. Если исходное видео будет иметь битрейт ниже, чем заданный здесь, то конвертер автоматически понизит битрейт до исходного.

    Частота аудио.

    Укажите в герцах частоту дискретизации аудио дорожки. Обратите внимание, некоторые аудио кодеки не позволяют задавать маленькую частоту. В этом случае обратитесь к документации по выбранному кодеку.

    Аудио битрейт.

    Укажите в килобитах в секунду битрейт аудио дорожки. Выбирайте согласно документации и рекомендаций разработчиков кодеков.

    Вкладка «Доступ»

    В этой вкладке ограничивается доступ к формату для воспроизведения и скачивания. Ограничивать можно как черным, так и белым списками – каким группам формат точно доступен и/или каким группам точно не доступен.

    Схема работы конвертации в движке

    Общая схема конвертации без механизма мультисерверности такая:

    1. Пользователь загружает файл через форму на сайте и попадает в форму редактирования ролика, где может заполнять поля, пока идет конвертация. Ролик при этом находится в состоянии блокировки и виден только автору;
    2. Файл помещается в директорию /upload/video/work_files/input_files/ далее – входящая директория ;
    3. Создаётся очередь на создание превью изображений, дополнительных и таймлайн скриншотов, получение длительности видео;
    4. Выполняется задание очереди из пункта 3, и создаются новые задания, согласно включенных форматов видео – одно задание очереди – один формат. Пользователь в форме автоматически (без перезагрузки страницы) видит созданные скриншоты видео;
    5. Видео конвертируется в форматы по их порядку в админке – от верхнего к нижнему. При этом пользователь видит прогресс конвертации первого формата. При конвертации результирующий файл не помещается сразу в директорию хранения, а сохраняется в директории /upload/video/work_files/output_files/ ( исходящая директория ). Таким образом, файл из входящей директории конвертируется в исходящую. Данный механизм позволяет иметь разные диски (и разные точки монтирования) на процесс конвертации. Это в итоге положительно сказывается на скорости конвертации (как один из параметров, влияющих на производительность);
    6. Как только первый формат успешно конвертируется, готовый видео файл помещается в директорию /upload/video/storage/ ( директория хранения). Движок снимает блокировку ролика и помечает, что видео готово для воспроизведения. Если в этот момент владелец ролика находится в форме редактирования, ему автоматически будет показан плеер;
    7. Конвертируются остальные форматы видео, и по мере успешного завершения они появляются в плеере в меню выбора качества.

    Если расширение загруженного файла входит в список тех файлов, которые не нужно конвертировать (в настройках провайдера Localhost), то очередь конвертации не создаётся, а движок создаёт скриншоты видео, получает длительность и перемещает файл в директорию хранения. Стоит отметить, что директория хранения может быть изменена на другую (в настройках локального сервера в админке), при этом старые файлы будут по-прежнему доступны, а новые уже будут перемещаться в неё. Это полезно, если вы захотите подключить новый жесткий диск для хранения.