Что такое веб-модули vlc

Обновлено: 03.07.2024

Медиаплеер VLC

VLC – это бесплатный медиаплеер и мультимедийный движок с открытым исходным кодом, ориентированный на воспроизведение всего и работу везде.

VLC может воспроизводить большинство мультимедийных файлов, дисков, потоков, устройств, а также может преобразовывать, кодировать, передавать и управлять потоками в различных форматах.

VLC используется во многих странах мира на различных платформах для самых разных целей.

Ядро VLC может быть встроено в сторонние приложения и называется libVLC.

VLC является частью проекта VideoLAN и разрабатывается и поддерживается сообществом добровольцев.

Проект VideoLAN был запущен в университете École Centrale Paris, который повторно лицензировал VLC по лицензии GPLv2 в феврале 2001 года. С тех пор VLC был скачан миллиарды раз.

VLC выпускается под лицензией GPLv2 (или более поздней версии). На некоторых платформах это де-факто GPLv3 из-за лицензий зависимостей.

libVLC, ядро ​​выпущено под лицензией LGPLv2 (или более поздней).
Это позволяет встраивать движок в сторонние приложения, позволяя при этом лицензировать их по другим лицензиям.

VLC доступен для следующих платформ:

    (начиная с 7 и выше, включая платформы UWP и все версии Windows 10)(10.10 и выше) и дочерние
  • *BSD и дочерние (4.2 и выше), включая Android TV и Android Auto (9 и выше), включая AppleTV и iPadOS
  • Haiku, OS/2 и некоторые другие.

Не все платформы получают одинаковое внимание из-за наших ограниченных ресурсов.

Примечание: приложение для Android и приложение для iOS находятся в разных репозиториях, отличных от основного.

VLC поддерживается сообществом людей, и VideoLAN никому из них не платит.
Сообщество состоит из разработчиков, помощников, сопровождающих, дизайнеров и писателей, которые хотят, чтобы этот проект с открытым исходным кодом процветал.

Основная разработка VLC выполняется на языке C, но этот репозиторий также содержит множество C++, Obj-C, asm и Rust.

Нам нужна помощь со следующими задачами:

  • кодирование
  • упаковка для дистрибутивов Windows, macOS и Linux
  • техническое написание документации
  • дизайн
  • поддержка
  • управление сообществом и общение.

Вклад теперь осуществляется через запросы на слияние в нашем репозитории GitLab.

Перед слиянием запроса на слияние необходимо разрешить вопросы CI и обсуждения.

libVLC — это встраиваемый движок для сторонних приложений и фреймворков.

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

Содержание

Как использовать

Следующие параметры можно использовать для указания IP-адреса и другого порта, на котором вы хотите запустить интерфейс.

VLC 2.0.0 и выше

или на платформах Windows:

Чтобы включить интерфейс управления HTTP в качестве основного или дополнительного интерфейса, перейдите в Инструменты → Настройки (выберите переключатель «Все») → Интерфейс → Основные интерфейсы → отметьте «Веб»:

Активация VLC 2.0

VLC до версии 2.0.0

или на платформах Windows:

Настроить

Контроль доступа

VLC 2.1.0 и выше

При входе оставьте поле имени пользователя пустым.

VLC до версии 2.1.0

Управление доступом для определенных IP-адресов или диапазонов IP-адресов к http-интерфейсу может осуществляться глобально путем редактирования "/usr/share/vlc/lua/http/.hosts" в Linux, "%PROGRAMFILES%\VideoLAN\VLC \lua\http\.hosts" в Windows и "/Applications/VLC.app/Contents/MacOS/share/lua/http/.hosts" в Mac OS X.

Существующий файл .hosts содержит примеры и может быть легко изменен в соответствии с вашими потребностями. Обратите внимание, что в Windows вам могут потребоваться права администратора для редактирования этого файла.

Настройка

Теперь также можно настроить веб-интерфейс. См. html-страницы в share/html (в каталоге VLC для Windows, в пакете VLC.app в Mac OS X и где-то в /usr/local для Linux). Это может быть очень классный интерфейс, если вы потратили некоторое время на разработку приятных элементов пользовательского интерфейса. Если вы хотите внести свой вклад в новый HTML-интерфейс «По умолчанию», мы также будем очень рады (сохраняйте его небольшим).

Примечания

Для получения дополнительной информации об интерфейсе HTTP см. документ «VLC Play-Howto», параграф «Интерфейс HTTP» в главе 4 («Расширенное использование VLC») и Documentation:Play HowTo/Building Pages for the HTTP. Интерфейс. ("См. также старое/устаревшее приложение B").

См. также

Эта страница является частью официальной документации медиаплеера VLC (Руководство пользователя • Руководство по потоковой передаче • Руководство для хакеров • Модули)
Пожалуйста, прочитайте Руководство по редактированию документации, прежде чем редактировать документацию

Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Free Software Foundation; либо версия 2 Лицензии, либо (по вашему выбору) любая более поздняя версия.

← Вернуться к руководству для хакеров
LibVLC основан на множестве независимых модулей, как и большинство конкурирующих мультимедийных фреймворков. Каждый модуль предоставляет определенные функции.

Эта статья посвящена добавлению нового модуля (также известного как подключаемый модуль) в VLC (или любое другое приложение LibVLC). Вам нужно будет сначала прочитать VLC Core and Modules и Как VLC загружает модули, иначе вы не сможете конкретизировать содержимое вашего нового модуля.

Содержание

Модули внутри и вне дерева

Большинство существующих модулей VLC предоставляются в виде исходного кода в каталоге modules в основном репозитории исходного кода VLC (а также в архивах с исходным кодом). Они компилируются одновременно с ядром VLC и обычно поставляются вместе с бинарными пакетами и установщиками VLC. Эти модули называются модулями внутри дерева.

Однако также можно писать и компилировать модули VLC вне VLC. У этого есть некоторые плюсы и минусы по сравнению с разработкой модулей в дереве:

  • Компиляция выполняется намного быстрее (VLC и другие модули не включаются в процесс).
  • Вы можете использовать собственную систему контроля версий или вообще не использовать ее.
  • Лицензия на авторские права не должна соответствовать требованиям ассоциации VideoLAN для включения в VLC.
  • Исходный код не требуется предоставлять, проверять и принимать разработчиками VLC.
  • Расписание выпусков не зависит от выпусков VLC. Новые версии модуля могут быть опубликованы в любое время независимо от планирования выпуска VLC.
  • Различные языки программирования можно использовать хотя бы теоретически. (Основная кодовая база VLC использует только C, C++ и Lua, а также цель C для MacOS.)
  • Модуль может использовать программные библиотеки, от которых не может зависеть VLC.

Пример модуля-заглушки

Начнем с небольшого примера модуля на языке C:

А теперь немного пояснений по коду.

Дескриптор модуля

Модуль медиаплеера VLC должен включать в себя описание самого себя и параметры, которые он принимает.

Описатель модуля начинается с:

Вы должны указать основную информацию о вашем модуле. Это для модуля dvdread:

Обратите внимание на использование N_("") для создания строки, которую необходимо перевести с помощью gettext.

Возможность и оценка

Пример определения:

Это определяет модуль с возможностью "интерфейса" и оценкой 0.

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

  • Если VLC нужно загрузить определенное имя, он загрузит его по своему имени, и VLC напрямую откроет этот модуль
  • Если VLC требуется тип модуля ("Мне нужен декодер"), VLC загрузит все модули, соответствующие этой возможности, в порядке убывания количества очков, пока функция Open() одного из модулей (см. далее) не вернет VLC_SUCCESS.

См. основные типы возможностей VLC.

Оценка должна быть целым числом и связана с другими оценками в той же категории. Оценка 0 — это особый случай.

Категории и подкатегории конфигурации

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

Категории конфигурации включают:

  • CAT_INTERFACE
  • CAT_AUDIO
  • CAT_VIDEO
  • CAT_INPUT
  • CAT_SOUT
  • CAT_ADVANCED
  • CAT_PLAYLIST

Также следует использовать одну из предопределенных подкатегорий. См. include/vlc_configuration.h для определения всех категорий и подкатегорий конфигурации.

Параметры конфигурации

Вам могут понадобиться параметры для настройки поведения вашего модуля во время выполнения. Определить новые параметры очень просто.

Все определения параметров принимают следующий список аргументов:

  • имя — это строка, идентифицирующая этот параметр в конфигурации. Это имя используется в командной строке для установки значения конфигурации.
  • значение — это значение по умолчанию для этого параметра,
  • текст Краткое описание параметра, используйте _("") для создания строки, которую необходимо перевести,
  • longtext Полное описание параметра, используйте _("") для создания строки, которую нужно перевести,
  • расширенное логическое значение, расширенная конфигурация.Если TRUE, этот параметр будет отображаться только при использовании флага --advanced.


Вы можете добавить в модуль следующие опции/типы параметров:

  • добавить_целое,
  • добавить_строку,
  • добавить_поплавок,
  • добавить_bool,
  • добавить_ключ,
  • добавить_файл,
  • добавить_каталог,

Полные определения см. в include/vlc_plugin.h

Обратный звонок

Функции активации и деактивации, подробно описанные ниже, должны быть определены в дескрипторе. Это делается для того, чтобы ядро ​​VLC знало, как создать и запустить модуль.

Макрос set_callbacks() позволяет определить 2 параметра: первый параметр — это обратный вызов pf_activate, а второй — pf_deactivate. Однако чаще всего функции называются «Открыть» и «Закрыть» соответственно. VLC вызывает обратный вызов pf_activate, если/когда ему нужен экземпляр плагина, предоставляющий правильный интерфейс, как объявлено с помощью макроса set_capability().

И наоборот, VLC вызывает обратный вызов pf_deactivate, когда плагин больше не нужен, но только если обратный вызов pf_activate ранее возвратил VLC_SUCCESS (0).

Открыть(vlc_object_t *)

Самая важная функция модуля — открытие: обычно называемая функцией Open().

Функция Open() вызывается, когда ядро ​​VLC пытается открыть модуль и хочет его загрузить.

Во время Open(), настройки структур, устройств или ввода/вывода должны выполняться проверки. Успешное открытие должно вернуть VLC_SUCCESS. Если модуль не может завершить свою инициализацию, он может вернуть любое другое значение, обычно VLC_EGENERIC или VLC_ENOMEM.

Ожидается, что функция Open() выделит личные данные (если они есть) и настроит частную структуру.

Если Открытие не удалось, вам может потребоваться освободить все уже выделенные ресурсы перед возвращением. В противном случае произойдут утечки.

Закрыть(vlc_object_t *)

Второй по важности функцией модуля является закрытие: обычно называемая функцией Close().

Функция Close() вызывается, когда ядро ​​VLC пытается закрыть или выгрузить уже загруженный модуль.

Примечание: если функция Open() не удалась, функция Close() не будет вызвана.

Во время Close() необходимо закрывать устройства или ввод-вывод, а также очищать структуры. Не допускайте утечки памяти здесь!

Функция Close() должна освобождать личные данные.

Интеграция модулей в дерево

Если вы планируете отправить свою работу в исходную ветвь VLC, обязательно ознакомьтесь с введением в git и проверьте часть отправки исправлений.

Компиляция вашего модуля

Модули.am

Сначала найдите нужный подкаталог в модулях/, чтобы добавить новый код.

  1. Если у модуля есть только один файл с исходным кодом, просто добавьте его в подкаталог (например, modules/control/hello.c).
  2. Большие модули должны иметь собственный подкаталог (например, modules/control/hello/*).

Затем вам нужно объявить модуль в системе сборки. Например, файл modules/control/Modules.am сообщает системе сборки, какие исходные файлы необходимы для каждого модуля управления. Для приведенного выше примера мы могли бы добавить следующие строки:

Обратите внимание, что для отступов в Modules.am (при необходимости) используются табуляции (ASCII 0x09), а не пробелы.

configure.ac

Если модуль зависит от какой-то новой библиотеки, какой-то архитектуры или некоторых характеристик операционной системы, вам может потребоваться расширить файл configure.ac, чтобы определить, когда и как собирать модуль. За подробностями обратитесь к файлу configure.ac и документации GNU autoconf.

После этого вам нужно будет только пересобрать VLC:

(Это, вероятно, вызовет повторный запуск autoconf и automake, поэтому это может занять некоторое время.)

Загрузка модуля

VLC хранит кеш доступных модулей для повышения производительности. Он должен обновляться автоматически. Но вы можете использовать ./vlc --reset-plugins-cache для принудительного сброса.

чтобы убедиться, что ваш плагин виден медиаплееру VLC.

Вы также должны увидеть его в диалоговом окне плагинов интерфейса Qt (Linux и Windows).

Модуль вне дерева

Есть отдельная статья. Пожалуйста, прочтите компиляцию дерева.

Подмодули

Подмодули, объявленные в некоторых дескрипторах модулей с

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

Типы модулей

В зависимости от возможностей модуля вам потребуется дополнительная информация о необходимых функциях для реализации.

Устранение неполадок при загрузке модуля

Иногда при сборке модуля внутри дерева что-то не работает из-за системных проблем сборки и других несоответствий.

Возможно, вам нужно перейти в корень исходного дерева VLC и сделать что-то вроде следующего. В приведенных здесь примерах предполагается оболочка bash.

Умеренная версия

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

<р>. но не всегда, поэтому всегда используйте указанную ниже «среднюю версию» — это избавит вас от головной боли.

Средняя версия (попробуйте сначала эту)

Экстремальная версия

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

А затем проверьте, какие изменения в исходном коде вы потеряете (если таковые имеются):

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

Эта страница является частью официальной документации медиаплеера VLC (Руководство пользователя • Руководство по потоковой передаче • Руководство для хакеров • Модули)
Пожалуйста, прочитайте Руководство по редактированию документации, прежде чем редактировать документацию

Разрешается копировать, распространять и/или изменять этот документ в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Free Software Foundation; либо версия 2 Лицензии, либо (по вашему выбору) любая более поздняя версия.

VLC Media Player можно управлять с удаленного смартфона или любых других устройств, таких как ноутбуки и настольные компьютеры. Программное обеспечение не обязательно должно присутствовать на втором устройстве. Все, что требуется, — это активировать веб-интерфейс VLC и настроить простой параметр для разрешения удаленного доступа. После активации он позволяет нам вводить отдельный URL-адрес, например localhost:8080, 127.0.0.1:8080 или 192.168.1.100:8080, в любой веб-браузер. Он загружает так называемый веб-интерфейс Lua.

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

Программное обеспечение можно установить на настольный или портативный компьютер. Затем веб-интерфейс можно загрузить на смартфон или даже на другой персональный компьютер. Используя его, управляйте VLC, не касаясь его. Используйте эту замечательную функцию, чтобы смотреть видео или воспроизводить музыку, находясь на расстоянии от компьютера. Эта функция предназначена для того, чтобы пользователи могли управлять VLC Media Player, установленным в одной системе, через другие устройства, такие как смартфоны. Думайте об этом как о возможности управлять плеером с помощью смартфона в качестве пульта дистанционного управления. Смотрите фильмы и слушайте музыку на расстоянии, управляя телефоном.

Активация веб-интерфейса

Вот подробные шаги для активации веб-интерфейса:

Ограничение контроля доступа с помощью пароля:

По запросу брандмауэра Windows предоставьте VLC доступ к общедоступным и частным сетям. Функция успешно активирована. Чтобы проверить это, зайдите в браузер в текущей системе и введите «localhost: 8080» без кавычек в адресной строке. Введите пароль, который был установлен, оставив имя пользователя пустым.

Если все было настроено правильно, как показано в шагах выше, загрузится веб-интерфейс Lua (на фото выше).

Удаленный доступ

Чтобы узнать локальный IP и удаленно получить доступ к мобильному интерфейсу:

Используйте его для управления тем, что воспроизводится. Просматривайте музыкальные и видеофайлы, воспроизводите или приостанавливайте их, переключайтесь между ними и делайте все, что вы предпочитаете. Просто используйте свой смартфон в качестве пульта для VLC Media Player.

Оставить ответ Отменить ответ

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

Модуль VLC Player использует медиаплеер VideoLan VLC с открытым исходным кодом для воспроизведения видеофайлов в RoboRealm, которые могут обрабатываться дополнительными модулями.

VLC *ДОЛЖЕН* быть установлен, чтобы этот модуль работал. Загрузите VLC с веб-сайта VideoLan.

Интерфейс

<р>1. Имя файла/URL — укажите файл или URL для чтения в текстовом поле «Имя файла/URL». Проигрыватель VLC может работать с файлами .avi, .wmv и .mpg, и это лишь некоторые из поддерживаемых форматов.

<р>2. Циклическое воспроизведение. Если вы хотите зациклить воспроизведение (действительно только для файлов), установите флажок «Циклическое воспроизведение».

<р>3. Тайм-аут — при воспроизведении потокового видео по сети требуется задержка, чтобы учесть колебания скорости сети. Если вы воспроизводите видео, которые хранятся локально, вы можете уменьшить задержку тайм-аута, которая также будет заметна, когда видео зацикливается.Если вы воспроизводите файлы по сети и тайм-аут слишком мал, видео может случайно перезапуститься из-за тайм-аута. Увеличение тайм-аута указывает модулю VLC ждать дольше, пока новый кадр не прибудет по сети перед сбросом.

<р>3. Скорость воспроизведения. Чтобы изменить скорость воспроизведения видео, выберите соответствующую скорость воспроизведения. Числа меньше 1 уменьшают скорость, а числа больше единицы увеличивают. Это уменьшает или увеличивает временную задержку между кадрами.

<р>4. Приращение кадра. Если вы хотите пропускать видео и обрабатывать только каждый второй кадр, установите приращение на 2. Это приведет к пропуску каждого второго кадра.

<р>5. FPS — отображает текущее количество кадров в секунду, в котором записано видео.

<р>6. Пропустить — чтобы пропустить первую или последнюю часть видео, настройте параметры «Пропустить первым» и «Пропустить последним». Когда видео зацикливается, первые X секунд, миллисекунд и т. д. будут пропущены. Точно так же видео закончится за X секунд до фактического конца видео. Обратите внимание, что это никоим образом не обрезает и не модифицирует видео.

<р>7. Время — отображает текущее время кадра видео. Изменение этого значения приведет к перемещению видео к этому моменту времени.

<р>8. Старт - Вы ДОЛЖНЫ нажать кнопку «Старт», чтобы начать играть. После нажатия вы также можете вручную остановить воспроизведение, нажав «Стоп» (кнопка «Старт» изменится на «Стоп» после начала воспроизведения). Вы также можете приостановить видео и использовать элементы управления «Время» или «Ползунок», чтобы переместить видео в интересующую вас точку.

Обратите внимание, что для начала воспроизведения необходимо нажать кнопку "Старт". Простое нажатие OK НЕ начнет воспроизведение. Также имейте в виду, что для потоков в Интернете вам нужно подождать около 20-30 секунд после нажатия кнопки запуска, чтобы воспроизведение действительно началось.

Обратите внимание: если RoboRealm зависает, соединение может быть отключено. Подождите около 20 секунд, и вы восстановите управление после истечения времени ожидания сетевого подключения.

Читайте также: