Skip to main content

Python bindings for librtmp, built with cffi

Project description

===============================
python-librtmp
===============================

.. image:: https://badge.fury.io/py/python-librtmp.png
:target: http://badge.fury.io/py/python-librtmp

.. image:: https://travis-ci.org/chrippa/python-librtmp.png?branch=master
:target: https://travis-ci.org/chrippa/python-librtmp

.. image:: https://pypip.in/d/python-librtmp/badge.png
:target: https://crate.io/packages/python-librtmp?version=latest


python-librtmp is a Python interface to librtmp.
It uses `cffi <http://cffi.readthedocs.org/>`_ to interface with
the C library `librtmp <http://rtmpdump.mplayerhq.hu/librtmp.3.html>`_.

* Free software: BSD license
* Documentation: http://pythonhosted.org/python-librtmp


Installation
------------

The latest stable version is available to install using `pip <http://www.pip-installer.org/>`_:

.. code-block:: console

# pip install python-librtmp

But you can also get the development version using `Git <http://git-scm.com/>`_:

.. code-block:: console

$ git clone git://github.com/chrippa/python-librtmp.git
$ cd python-librtmp
# python setup.py install

You will need a compiler and librtmp installed.

Features
--------

Streaming
^^^^^^^^^

The most common use case of RTMP is to read a video stream from
a server::

import librtmp

# Create a connection
conn = librtmp.RTMP("rtmp://your.server.net/app/playpath", live=True)
# Attempt to connect
conn.connect()
# Get a file-like object to access to the stream
stream = conn.create_stream()
# Read 1024 bytes of data
data = stream.read(1024)



Remote function calls
^^^^^^^^^^^^^^^^^^^^^

Here is a example of creating a Python function that can be used to call
remote functions::

my_remote_function = conn.remote_function("MyRemoteMethod", block=True)
result = my_remote_function("some argument")

Waiting for the server to call our function::

# This will automatically name the function after it's Python name
@conn.invoke_handler
def my_add(a, b):
return a + b

# Start waiting for calls
conn.process_packets()

You can also use custom function name instead::

@conn.invoke_handler("MyMath.MyAdd")

Instead of blocking forever when waiting for a call you can specify to wait
only for a specific invoke and then stop blocking::

conn.process_packets(invoked_method="MyMath.MyAdd", timeout=30)






History
-------

0.1.0 (2013-09-23)
++++++++++++++++++

* First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-librtmp-0.1.0.tar.gz (20.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page