This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Python bindings for librtmp, built with cffi

Project Description

python-librtmp

python-librtmp is a RTMP client library. It uses the implementation provided by librtmp via cffi.

Installation

The latest stable version is available to install using pip

sudo pip install python-librtmp

But you can also get the development version using Git:

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

Dependencies

  • Python, at least version 2.6 or 3.3.
  • a C compiler capapable of building Python extensions, e.g. gcc
  • librtmp: The library including its headers (librtmp-dev or equivalent)
  • cffi: cffi depends on libffi and its headers (libffi-dev or equivalent)
  • On Python <3.4 the backport of singledispatch is also required.

Windows

python-librtmp (and cffi) has wheel packages (binaries) available on PyPi and can therefore be easily installed with pip 1.4+ without the need to compile anything:

> pip install python-librtmp

(on older pip versions you need to use --use-wheel)
> pip install --use-wheel python-librtmp

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_method = conn.remote_method("MyRemoteMethod", block=True)
result = my_remote_method("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.3.0 (2015-05-25)

  • Added update_buffer option (enabled by default) to RTMP.create_stream, which enables a hack to increase throughput.
  • Added a update_buffer method to RTMPStream.
  • We now require at least version 1.0.1 of cffi.

0.2.2 (2015-04-15)

  • Fixed proxy not being used by librtmp.
  • Added support for Cygwin, patch by @schrobby. (#17)

0.2.1 (2014-09-01)

  • Fixed expected bytes type on Python 2.
  • Fixed singledispatch dependency condition.

0.2.0 (2014-04-07)

  • RTMPError now inherits from IOError.
  • Fixed MSVC build.
  • Added librtmp.so.1 to library paths, patch by Athanasios Oikonomou. (#4)
  • Added librtmp.dylib to library paths, patch by Will Donohoe. (#6)

0.1.2 (2013-10-08)

  • Fixed compilation issue on some platforms.
  • Fixed AMF issue on older librtmp versions. (#1)

0.1.1 (2013-09-25)

  • Fixed packaging issues.

0.1.0 (2013-09-23)

  • First release on PyPI.
Release History

Release History

This version
History Node

0.3.0

History Node

0.2.2

History Node

0.2.1

History Node

0.2.0

History Node

0.1.2

History Node

0.1.1

History Node

0.1.0

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
python_librtmp-0.3.0-cp27-none-win32.whl (34.1 kB) Copy SHA256 Checksum SHA256 2.7 Wheel May 25, 2015
python_librtmp-0.3.0-cp33-none-win32.whl (34.3 kB) Copy SHA256 Checksum SHA256 3.3 Wheel May 25, 2015
python_librtmp-0.3.0-cp34-none-win32.whl (34.2 kB) Copy SHA256 Checksum SHA256 3.4 Wheel May 25, 2015
python-librtmp-0.3.0.tar.gz (24.4 kB) Copy SHA256 Checksum SHA256 Source May 25, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting