skip to navigation
skip to content

Not Logged In

python-librtmp 0.2.1

Python bindings for librtmp, built with cffi

Package Documentation

python-librtmp is a Python interface to librtmp. It uses cffi to interface with the C library librtmp.

Installation

The latest stable version is available to install using pip:

# pip install cffi
# 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
# pip install cffi
# python setup.py install

Dependencies

  • a compiler, e.g gcc
  • librtmp: The library including it’s headers (librtmp-dev). Only the official librtmp is supported, patched versions such as librtmp-ksv may not work.
  • cffi: The setup.py script currently depends on cffi being installed. Therefore you need to install it before installing this library. cffi also depends on libffi and it’s headers (libffi-dev)

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 --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.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.
 
File Type Py Version Uploaded on Size
python-librtmp-0.2.1.tar.gz (md5) Source 2014-09-01 23KB
python_librtmp-0.2.1-cp27-none-win32.whl (md5) Python Wheel 2.7 2014-09-01 33KB
python_librtmp-0.2.1-cp33-none-win32.whl (md5) Python Wheel 3.3 2014-09-01 33KB
python_librtmp-0.2.1-cp34-none-win32.whl (md5) Python Wheel 3.4 2014-09-01 33KB
  • Downloads (All Versions):
  • 68 downloads in the last day
  • 461 downloads in the last week
  • 501 downloads in the last month