Перейти к содержимому

vlc api python

Цель: Управление плеером через скрипт (программу) 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:

  1. Подготовьте среду компиляции,
  2. Захватите источник в VLC медиа — плеер ,
  3. Bootstrap, используя скрипт ./bootstrap, если вы взяли код из репозитория,
  4. Подготовьте дополнительные библиотеки, необходимые для медиаплеера VLC , прочтите список ,
  5. Настроить ,
  6. Сборка с помощью make,
  7. и прибыль!

Скомпилировать для одной операционной системы

*** 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')

Добавить комментарий