Цель: Управление плеером через скрипт (программу) Python удаленно с телефона или с сайта. А также для удобства изучения Английского языка.
python-vlc 3.0.12118
pip install python-vlc
https://www.olivieraubert.net/vlc/python-ctypes/doc/

Уголок разработчиков VLC
https://www.videolan.org/developers/vlc.html
https://www.olivieraubert.net/vlc/python-ctypes/doc/vlc-module.html

Документация. Помощь и поддержка.

Форум VideoLAN Поиск

Вам необходимо использовать Git, чтобы загрузить последний живой снимок дерева разработки.
Исходный код VLC
Последние исходные пакеты
Если вы хотите получить последнюю версию пакета исходных кодов для разработки, перейдите по этой ссылке:
http://nightlies.videolan.org/build/source/
и загрузите первый в списке файл tar.xz.
Вы также должны знать, как скомпилировать VLC для вашей архитектуры.
Понять Кодекс
Сначала прочтите объяснение дерева исходных текстов и объяснение дерева модулей .
Затем прочтите начало введения в ядро VLC и документацию по загрузке модулей.
Вы можете найти больше информации о IRC и в Руководстве для хакеров.
Категория: Строительство
(Перенаправлено из Compile VLC )Перейти к навигацииПерейти к поиску
Это руководство поможет вам скомпилировать медиаплеер VLC для вашей платформы.
Это руководство предназначено для разработчиков и опытных пользователей . Компиляция VLC — непростая задача.
Вам следует обратиться в IRC, чтобы помочь вам на этом этапе.
Общие шаги
Вот основные шаги, которые необходимо выполнить для компиляции VLC:
- Подготовьте среду компиляции,
- Захватите источник в VLC медиа — плеер ,
- Bootstrap, используя скрипт ./bootstrap, если вы взяли код из репозитория,
- Подготовьте дополнительные библиотеки, необходимые для медиаплеера VLC , прочтите список ,
- Настроить ,
- Сборка с помощью make,
- и прибыль!
Скомпилировать для одной операционной системы
*** Linux, BSD или другие системы ***
Подготовьте свое окружение
В Debian или Ubuntu:
$ sudo apt-get install git build-essential pkg-config libtool automake autopoint gettext
Получить исходный код.
Начните с получения исходного кода , использования FTP для официальных выпусков или использования Git для отслеживания разработки VLC.
Если вы используете версию для разработки Git , начните с загрузки исходного дерева:
$ git clone git: //git.videolan.org/vlc.git
$ cd vlc
$ ./bootstrap
Загрузка не удастся, если autotools отсутствует или устарел.
Если вы используете официальный выпуск, загрузите исходный код, распакуйте архив и перейдите в полученный каталог VLC, например:
$ wget ftp://ftp.videolan.org/pub/videolan/vlc/3.0.12/vlc-3.0.12.tar.xz
$ tar xvJf vlc-3.0.12.tar.xz
$ cd vlc-3.0.12
Предпочтительный метод
Используйте свой дистрибутив или систему portage, чтобы получить все необходимые библиотеки.
Debian
Например, в Debian или Ubuntu:
$ sudo apt-get build-dep vlc
…
…
Приставка
Если вы хотите установить VLC в другой каталог, запустите
$ ./configure --prefix = / путь / к / установке / папке /
Вы можете найти пример configure на странице Configure этой вики.
Компиляция
Скомпилируйте VLC:
$ make
Вам не нужно устанавливать VLC, чтобы использовать его. Вы также можете просто запустить его из каталога сборки:
# ./vlc
Если вы действительно хотите установить VLC в систему, запустите это как root:
# сделать установку
Вы можете удалить его позже, но до этого момента дерево сборки нужно оставить нетронутым:
# сделать удаление
Чтобы удалить файлы, созданные во время компиляции (необязательно), введите:
$ очистить
Устранение неполадок / общие проблемы
Lua
Вам может потребоваться установить Lua, если вы получите сообщение «Отсутствует компилятор байтов LUA». сообщение. Вам необходимо установить «luac», компилятор байтов Lua.
В Debian / Ubuntu:
$ sudo apt-get install lua5.1
В Fedora:
$ sudo yum install lua
XCB
VLC 1.1 и более поздние версии требуют библиотек XCB для работы с дисплеями X11. Не отключайте XCB, иначе вы не получите никакой поддержки видео!
Чтобы установить эти библиотеки, выполните следующие команды (Debian / Ubuntu):
$ sudo apt-get install libxcb-shm0-dev libxcb-xv0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-complex0-dev
Если ваш дистрибутив предоставляет версию XLib без XCB, то этот более поздний пакет будет недоступен. Таким образом, вы не сможете использовать OpenGL. Вместо этого используйте XVideo.
Сбой компиляции после git pull
Вероятно, что источники в репозитории значительно изменились с момента их последнего извлечения, а кеш системы сборки устарел. Попробуйте методы устранения неполадок, описанные в руководстве для хакеров по модулям .
Интеграция с DBus
DBus — это коммуникационный механизм для Linux (в основном).
Мы хотели бы, чтобы VLC мог использовать его, чтобы другие программы могли взаимодействовать с vlc (запуск / остановка, знание того, что воспроизводится, …)
Работа продвинута хорошо, см. DBus
DBus
Перейти к навигации Перейти к поиску См. Также: DBus-spec и DBus-usage.
TODO для интеграции с DBus
VLC реализует DBus-spec , независимый от настольных ПК документ, который стремится быть подходящим для всех медиаплееров.
Определите сервисное поведение
Может ли vlc быть сервисом, запускаемым по запросу, будет ли это полезно?
Нам просто нужно создать /usr/share/dbus-1/org.freedesktop.MediaPlayer.service:
[D-BUS Service]
Name=org.freedesktop.MediaPlayer
Exec=/usr/bin/vlc -I dummy --control dbus
VLC module in Python – An Introduction
Мы также можем использовать медиаплеер VLC с помощью python, чтобы установить модуль vlc в python, мы будем использовать команду, приведенную ниже
pip3 install python-vlc
Примечание. Чтобы использовать модуль vlc в python, в пользовательской системе должен быть уже установлен медиаплеер vlc.
Импорт модуля VLC:
для импорта модуля VLC используйте следующее
import vlc
Пример 1: воспроизведение видео с помощью VLC
# importing vlc module import vlc # creating vlc media player object media = vlc.MediaPlayer("1.mp4") # start playing video media.play()
Выход (Output):

Пример 2: Здесь мы получим продолжительность видео файла с помощью модуля VLC.
# importing time and vlc import time, vlc # method to play video def video(source): # creating a vlc instance vlc_instance = vlc.Instance() # creating a media player player = vlc_instance.media_player_new() # creating a media media = vlc_instance.media_new(source) # setting media to the player player.set_media(media) # play the video player.play() # wait time time.sleep(0.5) # getting the duration of the video duration = player.get_length() # printing the duration of the video print("Duration : " + str(duration)) # call the video method video("your_video.mp4")
Выход (Output):
Duration : 5006
Программа с примером:
Как заявил wizzwizz4, vlc.py
программа доступна по адресу @ https://wiki.videolan.org/Python_bindings вместе с примером кода для wxpython, pyQt и pyGtk. Документация находится здесь: https://www.olivieraubert.net/vlc/python-ctypes/ doc /
Вот примерный фрагмент кода, который запускается из командной строки, чтобы вы могли начать.
Stack Overflow About Products For Teams Search… Join Stack Overflow to learn, share knowledge, and build your career. Home PUBLIC Questions Tags Users COLLECTIVES Explore Collectives FIND A JOB import requests import vlc import time import os #Test data a local file, a couple of radio stations and a video to cover all the bases urls = [ 'file:///home/rolf/Music/H5O.mp3', 'http://www.lounge-radio.com/listen128.m3u', 'http://network.absoluteradio.co.uk/core/audio/aacplus/live.pls?service=acbb', 'http://statslive.infomaniak.ch/playlist/energy90s/energy90s-high.mp3/playlist.pls', 'http://streaming.radio.rtl2.fr/rtl2-1-44-128', 'http://clips.vorwaerts-gmbh.de/VfE_html5.mp4' ] #Define playlist extensions playlists = set(['pls','m3u']) #Define vlc playing Status values playing = set([1,2,3,4]) Instance = vlc.Instance() # Loop over urls provided for url in urls: print ("\n\nLooking for:", url) # Grab file extension ext = (url.rpartition(".")[2])[:3] found = False # Test if url is a local file or remote if url[:4] == 'file': if os.path.isfile(url[7:]): found = True else: print ('Error: File ', url[7:], ' Not found') continue else: try: r = requests.get(url, stream=True) found = r.ok except ConnectionError as e: print('failed to get stream: {e}'.format(e=e)) continue if found: player = Instance.media_player_new() Media = Instance.media_new(url) Media_list = Instance.media_list_new([url]) Media.get_mrl() player.set_media(Media) # if url is a playlist load list_player else use player if ext in playlists: list_player = Instance.media_list_player_new() list_player.set_media_list(Media_list) if list_player.play() == -1: print ("\nError playing playlist") else: if player.play() == -1: print ("\nError playing Stream") #=========================================================# # #Use this code for 15 second samples print ('Sampling ', url, ' for 15 seconds') time.sleep(15) # #=========================================================# # #Use this code to play audio until it stops # print ('Playing ', url, ' until it stops') # time.sleep(5) #Give it time to get going # while True: # if ext in playlists: # state = list_player.get_state() # if state not in playing: # break # else: # state = player.get_state() # if state not in playing: # break #=========================================================# if ext in playlists: list_player.stop() else: player.stop() else: print ('\nError getting the audio')
Это тоже самое с другой сайта нужно сравнить текст программы и оставить один.
import requests import vlc import time import os #Test data a local file, a couple of radio stations and a video to cover all the bases urls = [ 'file:///home/rolf/Music/H5O.mp3', 'http://www.lounge-radio.com/listen128.m3u', 'http://network.absoluteradio.co.uk/core/audio/aacplus/live.pls?service=acbb', 'http://statslive.infomaniak.ch/playlist/energy90s/energy90s-high.mp3/playlist.pls', 'http://streaming.radio.rtl2.fr/rtl2-1-44-128', 'http://clips.vorwaerts-gmbh.de/VfE_html5.mp4' ] #Define playlist extensions playlists = set(['pls','m3u']) #Define vlc playing Status values playing = set([1,2,3,4]) Instance = vlc.Instance() # Loop over urls provided for url in urls: print ("\n\nLooking for:", url) # Grab file extension ext = (url.rpartition(".")[2])[:3] found = False # Test if url is a local file or remote if url[:4] == 'file': if os.path.isfile(url[7:]): found = True else: print ('Error: File ', url[7:], ' Not found') continue else: try: r = requests.get(url, stream=True) found = r.ok except ConnectionError as e: print('failed to get stream: {e}'.format(e=e)) continue if found: player = Instance.media_player_new() Media = Instance.media_new(url) Media_list = Instance.media_list_new([url]) Media.get_mrl() player.set_media(Media) # if url is a playlist load list_player else use player if ext in playlists: list_player = Instance.media_list_player_new() list_player.set_media_list(Media_list) if list_player.play() == -1: print ("\nError playing playlist") else: if player.play() == -1: print ("\nError playing Stream") #=========================================================# # #Use this code for 15 second samples print ('Sampling ', url, ' for 15 seconds') time.sleep(15) # #=========================================================# # #Use this code to play audio until it stops # print ('Playing ', url, ' until it stops') # time.sleep(5) #Give it time to get going # while True: # if ext in playlists: # state = list_player.get_state() # if state not in playing: # break # else: # state = player.get_state() # if state not in playing: # break #=========================================================# if ext in playlists: list_player.stop() else: player.stop() else: print ('\nError getting the audio')