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.
- Free software: BSD license
- Documentation: http://pythonhosted.org/python-librtmp
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.
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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Filename, size & hash SHA256 hash help | File type | Python version | Upload date |
---|---|---|---|
python_librtmp-0.3.0-cp27-none-win32.whl (34.1 kB) Copy SHA256 hash SHA256 | Wheel | 2.7 | May 25, 2015 |
python_librtmp-0.3.0-cp33-none-win32.whl (34.3 kB) Copy SHA256 hash SHA256 | Wheel | 3.3 | May 25, 2015 |
python_librtmp-0.3.0-cp34-none-win32.whl (34.2 kB) Copy SHA256 hash SHA256 | Wheel | 3.4 | May 25, 2015 |
python-librtmp-0.3.0.tar.gz (24.4 kB) Copy SHA256 hash SHA256 | Source | None | May 25, 2015 |