GithubHelp home page GithubHelp logo

isabella232 / gst-playd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from play/gst-playd

0.0 0.0 0.0 418 KB

Experimental Play backend based on GStreamer

License: GNU General Public License v2.0

C 76.85% Shell 21.22% Ruby 1.93%

gst-playd's Introduction

What Is This?

gst-playd is a really simple cross-platform service whose sole job is to play back media files to a list of targets (IceCast and AirPlay), using the GStreamer API.

It's a single exe, it's simple to manage and configure, and you can run as many as you want in parallel for multiple audio streams.

What Doesn't It Do

gst-playd knows nothing about library management. Its goal is to replace Airfoil and Nicecast in the current Play implementation (Play v2)

But can you explain it in ASCII art?

Sure.

 +------------+
 |            |
 |  source1   |+                                                         +----------------+
 |            ||                                                         |                |
 +------------+|         +------------------+                         +-+|    icecast     |
               +---------+                  |    +---------------+    |  |                |
 +------------+          |                  |    |               +----+  +----------------+
 |            |          |                  |    |               |
 | source2    +----------+     mixer        +---->    splitter   |       +----------------+
 |            |          |                  |    |               |+      |                |
 +------------+     +----+                  |    |               |+------+    airport1    |
                    |    +------------------+    +-------------+-+       |                |
     ...            |                                          |         +----------------+
                    |                                          |
 +------------+-----+                                          |         +----------------+
 |            |                                                |         |                |
 | source_n   +                                                +---------+    airport2    |
 |            |                                                          |                |
 +------------+                                                          +----------------+

How does it work?

gst-playd will start up a REQ/REP ZeroMQ socket on a specified port - meaning, it will boot up and wait for a request to come in. The requests are really simple string-based, Redis-style commands, something like:

PLAY file:///home/foo/bar.mp3
STOP

And the responses will be equivalently structured:

OK
ERROR IceCast isn't installed. Install it via 'brew install icecast'

Internally, gst-playd will manage the GStreamer Pipeline as well as handle starting up and configuring the Icecast server (including tying the lifetime of the icecast process to gst-playd, so if gst-playd dies, it kills the associated icecasts on its way out)

How do I build this?

On OS X:

brew install zeromq --head
brew install gst-plugins-good gst-plugins-ugly gst-ffmpeg  ## Get some coffee.
brew link libxml2

./autogen.sh && make

gst-playd's People

Contributors

anaisbetts avatar sbryant avatar

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.