.. image:: http://img.shields.io/pypi/v/python-librtmp.svg?style=flat-square :target: https://pypi.python.org/pypi/python-librtmp
.. image:: http://img.shields.io/pypi/dm/python-librtmp.svg?style=flat-square :target: https://pypi.python.org/pypi/python-librtmp
.. image:: http://img.shields.io/travis/chrippa/python-librtmp.svg?style=flat-square :target: http://travis-ci.org/chrippa/python-librtmp
python-librtmp is a RTMP
client library. It uses the implementation
provided by librtmp
via cffi
_.
BSD license
_.. _RTMP: http://en.wikipedia.org/wiki/Real_Time_Messaging_Protocol .. _cffi: http://cffi.readthedocs.org/ .. _librtmp: http://rtmpdump.mplayerhq.hu/librtmp.3.html .. _BSD license: http://opensource.org/licenses/BSD-2-Clause
The latest stable version is available to install using pip
_
.. code-block:: console
sudo 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
sudo python setup.py install
.. _pip: http://pip-installer.org/ .. _git: http://git-scm.com/
Python
_, at least version 2.6 or 3.3.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)singledispatch
_ is also required... _gcc: https://gcc.gnu.org/ .. _python: http://python.org/ .. _singledispatch: https://pypi.python.org/pypi/singledispatch
python-librtmp (and cffi
) has wheel packages (binaries) available on PyPi and can
therefore be easily installed with pip 1.4+ <http://www.pip-installer.org/>
without the need to compile anything:
.. code-block:: console
> 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.
.. code-block:: python
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)
Here is a example of creating a Python function that can be used to call remote functions:
.. code-block:: python
my_remote_method = conn.remote_method("MyRemoteMethod", block=True)
result = my_remote_method("some argument")
Waiting for the server to call our function:
.. code-block:: python
# 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:
.. code-block:: python
@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:
.. code-block:: python
conn.process_packets(invoked_method="MyMath.MyAdd", timeout=30)
0.3.0 (2015-05-25) ^^^^^^^^^^^^^^^^^^
0.2.2 (2015-04-15) ^^^^^^^^^^^^^^^^^^
0.2.1 (2014-09-01) ^^^^^^^^^^^^^^^^^^
0.2.0 (2014-04-07) ^^^^^^^^^^^^^^^^^^
0.1.2 (2013-10-08) ^^^^^^^^^^^^^^^^^^
0.1.1 (2013-09-25) ^^^^^^^^^^^^^^^^^^
0.1.0 (2013-09-23) ^^^^^^^^^^^^^^^^^^
Version | Tag | Published |
---|---|---|
0.3.0 | 7yrs ago | |
0.2.2 | 7yrs ago | |
0.2.1 | 8yrs ago | |
0.2.0 | 8yrs ago |