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
cffi 1.0 was released recently which contains significant changes. If you have an old version already installed you will have to manually upgrade it or you will get an error when attempting to install python-librtmp.
- 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.
> pip install python-librtmp (on older pip versions you need to use --use-wheel) > pip install --use-wheel python-librtmp
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:
Instead of blocking forever when waiting for a call you can specify to wait only for a specific invoke and then stop blocking: