Потоковая передача медиафайлов через DLNA/UPnP
В настоящее время я использую Raspbmc на своем Raspberry Pi и активировал потоковую визуализацию UPnP.
Моя цель - написать простой Python для потоковой передачи видео или музыкального плейлиста.
Я попробовал Coherence, но я выбрасываю кучу исключений, и я не совсем понимаю, как обстоят дела с хаотичной документацией. Поэтому я ищу более легкий путь / библиотеку.
Какой самый простой способ передавать медиафайлы на телевизор с помощью Python?
3 ответа
Существует легкая чистая библиотека Python dlnap, которая позволяет воспроизводить мультимедиа на устройствах DLNA/UPnP в одной локальной сети.
Вы можете использовать привязку GUPnP для python через gi.repository. Поиск документации по ГУПнП и ГССДП, ГУПнП АВ.
Вы можете соединить их с чем-то вроде мини-веб-сервера с базой данных django+SQLite, чтобы определить тип службы каталогов контента (CDS), также вы можете использовать Gstreamer (существует привязка к python, называемая Gst). С помощью этих элементов вы можете создать собственный сервер, используя SSDP для обнаруженных вещей; Из gstreamer вы можете получить метаданные о каждом элементе мультимедиа, а также использовать "rtspsrc" из gstreamer для потоковой передачи.
Только для аудио я получил хорошие результаты с rygel. Самое сложное - настроить разъем GstLaunch pulseaudio в.config/rygel.conf. Вот мой раздел, но вы можете получить правильный источник импульса с помощью следующей команды:
pactl list | egrep -A2 '^(\*\*\* )?Source #' | grep 'Name: .*\.monitor$' | awk '{print $NF}' | tail -n1
Вот мой раздел GestLaunch:
[GstLaunch]
enabled=true
launch-items=myaudiowav;myaudiompeg
myaudiowav-title=WAV audio on @HOSTNAME@
myaudiowav-mime=audio/x-wav
myaudiowav-launch=pulsesrc device=alsa_output.pci-0000_00_14.2.analog-stereo.monitor ! audio/x-raw,channels=2 ! wavpackenc
myaudiompeg-title=MPEG audio on @HOSTNAME@
myaudiompeg-mime=audio/mpeg
myaudiompeg-launch=pulsesrc device=alsa_output.pci-0000_00_14.2.analog-stereo.monitor ! audio/x-raw,channels=2 ! lamemp3enc target=quality q
uality=6