All Projects → ThibaultBee → srtdroid

ThibaultBee / srtdroid

Licence: Apache-2.0 License
Secure Reliable Transport (SRT) Protocol for Android

Programming Languages

kotlin
9241 projects
C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to srtdroid

tms
tms(toy media server) is a toy media server for myself learning media develop. Just for fun.
Stars: ✭ 29 (-17.14%)
Mutual labels:  streaming, live-streaming, srt
Srs
SRS is a simple, high efficiency and realtime video server, supports RTMP, WebRTC, HLS, HTTP-FLV, SRT and GB28181.
Stars: ✭ 16,734 (+47711.43%)
Mutual labels:  streaming, live-streaming, srt
Vidgear
A High-performance cross-platform Video Processing Python framework powerpacked with unique trailblazing features 🔥
Stars: ✭ 2,048 (+5751.43%)
Mutual labels:  streaming, live-streaming
Red5 Server
Red5 Server core
Stars: ✭ 3,008 (+8494.29%)
Mutual labels:  streaming, live-streaming
Membrane core
The core of the Membrane Framework, advanced multimedia processing framework
Stars: ✭ 662 (+1791.43%)
Mutual labels:  streaming, streaming-api
Cryptcheck
Verify some SSL/TLS website or XMPP implementation
Stars: ✭ 158 (+351.43%)
Mutual labels:  crypto, openssl
Lua Openssl
Openssl binding for Lua
Stars: ✭ 206 (+488.57%)
Mutual labels:  crypto, openssl
Rx Player
DASH/Smooth HTML5 Video Player
Stars: ✭ 600 (+1614.29%)
Mutual labels:  streaming, live-streaming
Diffie Hellman backdoor
How to backdoor Diffie-Hellman
Stars: ✭ 559 (+1497.14%)
Mutual labels:  crypto, openssl
Cypher Stream
Neo4j Cypher queries as Node.js object streams
Stars: ✭ 58 (+65.71%)
Mutual labels:  streaming, streaming-api
Live Stream Face Detection
Live Streaming and Face Detection with Flask in Browser
Stars: ✭ 47 (+34.29%)
Mutual labels:  streaming, live-streaming
Devstream.tv
Devstream is a website that allows you to watch live developer streams.
Stars: ✭ 59 (+68.57%)
Mutual labels:  streaming, live-streaming
Qtnetworkng
QtNetwork Next Generation. A coroutine based network framework for Qt/C++, with more simpler API than boost::asio.
Stars: ✭ 125 (+257.14%)
Mutual labels:  crypto, openssl
Cryptojs.swift
Cross-platform cryptographic functions in swift
Stars: ✭ 42 (+20%)
Mutual labels:  crypto, openssl
Easy Crypto
A WIP module aimed at providing a safer, easier to use and beginner friendly crypto API for Node.js
Stars: ✭ 21 (-40%)
Mutual labels:  crypto, openssl
Swell
Swell: API development tool that enables developers to test endpoints served over streaming technologies including Server-Sent Events (SSE), WebSockets, HTTP2, GraphQL, and gRPC.
Stars: ✭ 517 (+1377.14%)
Mutual labels:  streaming, streaming-api
Srt
Secure, Reliable, Transport
Stars: ✭ 1,898 (+5322.86%)
Mutual labels:  live-streaming, srt
Taliesin
Lightweight audio streaming server
Stars: ✭ 35 (+0%)
Mutual labels:  streaming, streaming-api
jscrypto
Crypto library for Node/ES6/Typescript/Browser.
Stars: ✭ 20 (-42.86%)
Mutual labels:  crypto, openssl
conan-openssl
[OBSOLETE] The recipe is now in https://github.com/conan-io/conan-center-index
Stars: ✭ 25 (-28.57%)
Mutual labels:  crypto, openssl

srtdroid: Secure Reliable Transport (SRT) Protocol for Android

Low level API for SRT library on Android. SRT is an open source transport technology that optimizes streaming performance across unpredictable networks. More information on SRT.

srtdroid is a binder/wrapper for Android built on SRT. It is a not a new implementation of SRT protocol.

For a live streaming SDK based on SRT, go to StreamPack.

Setup

Get srtdroid lastest artifacts on jitpack.io

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

dependencies {
    implementation 'com.github.ThibaultBee:srtdroid:1.2.0'
}

Sample

srtdroid comes with an examples application. Examples are the srtdroid counterpart of SRT examples folder.

On the server side, configure local IP to 0.0.0.0. On the client side, configure remote IP to server device IP. The port must be the same value for both.

API

As srtdroid is a simple wrapper, it provides a minimalist API documentation. For an extensive SRT API documentation refers to the official SRT API documentation.

Send/recv

Srt send, sendMsg and sendMsg are called send() in srtdroid. Alternatively, you can use the OutputStream API. Srt recv, recvdMsg are called recv() in srtdroid. Alternatively, you can use the InputStream API.

Permissions

You need to add the INTERNET permission in your AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />

To use, sendFile and recvFile, you might also need to add READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Then, you have to request permissions at runtime.

Build

srtdroid downloads and builds SRT and OpenSSL (ssl and crypto) libraries. The first compilation will take a while.

Linux

You have to install make:

sudo apt-get install build-essential

Windows

srtdroid does not build on Windows because OpenSSL is really tricky to compile on Windows.

macOS

Not tested.

Licence

Copyright 2021 Thibault B.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].