Giter Site home page Giter Site logo

pulseaudio-streamer's Introduction

pulseaudio-streamer

Detects UPnP media renderers to stream audio to

About

A small Python application that scans the network for UPnP devices. It creates a pulseaudio null sink for each. This allows you select it as output devices for each application in pavucontrol. When a sink becomes active the monitor for it gets encoded and streamed over the network to the UPnP device.

The functionality of this is a copy of pulseaudio-dlna. The reason I decided to recreate it was because of a number bugs I had experienced when using pulseaudio-dlna with `gmediarender-resurrect`_ which I have running on Raspberry Pi.

This is an effort to have a seamless experience streaming to gmediarender. At current it is in very early development and just about works. It is lacking many features and I cannot say it will support many devices.

The reason I didn’t focus my time in trying to improve pulseaudio-dlna was because I did not know how the UPnP protocol works and thus decided to build my own so I could learn. I may at some point go back and debug pulseaudio-dlna now that I know how the things work.

Usage

Clone the repo and run the commands below in your shell:

cd pulseaudio-streamer
python -m pulseaudio_streamer

If you are lucky devices will show in pavucontrol and you will get a dropdown against each application to select which device you stream to.

Install

Clone the repo and cd into it. Then run the following:

python setup.py install

You will require root access to install this so use sudo if you are not logged in as root.

Once the application is installed you will be able to run it from the shell by using pulseaudio-streamer.

Copyright (c) 2017 Lightscale Tech Ltd

pulseaudio-streamer's People

Contributors

5slight avatar pataquets avatar

Stargazers

 avatar  avatar

Watchers

 avatar

pulseaudio-streamer's Issues

Improve compatability

I have a Samsung smart TV that supports AVTransport. Unforchunately this doesn't work when the instance ID is set to 0. I believe to make this work, I will need to use connection manager to get a valid connection ID. It means implementing a large amount more of the UPNP standard.

Stream disconnects and application crashes

I have noticed that sometimes the connection from the renderer to the server drops and causes the program to crash.

This should be handled and a reconnect should be attempted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.