File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11# RtspLibrary
22Android library based on FFMpeg for playing given RTSP endpoint.
3+
4+ ## Pipeline
5+ Open RTSP Endpoint --> Find Video Stream --> Read Frame --> Convert to RGB --> Invoke Callback --> Java Interface
6+ | |
7+ | ____________________________________ _ JNI + FFMpeg __________________________________________ |
8+
9+ ## Setup
10+ 1 . In root build.gradle:
11+ ```
12+ allprojects {
13+ repositories {
14+ ...
15+ maven { url 'https://jitpack.io' }
16+ }
17+ }
18+ ````
19+
20+ 2. In target module build.gradle
21+ ```
22+ dependencies {
23+ compile 'com.github.potterhsu:RtspLibrary:1.0'
24+ }
25+ ```
26+
27+ ## Usage
28+
29+ 1. Initialize
30+ ```java
31+ ImageView ivPreview = (ImageView) findViewById(R.id.ivPreview);
32+ RtspClient rtspClient = new RtspClient(new NativeCallback() {
33+ @Override
34+ public void onFrame(final byte[] frame, final int nChannel, final int width, final int height) {
35+ ivPreview.post(new Runnable() {
36+ @Override
37+ public void run() {
38+ int area = width * height;
39+ int pixels[] = new int[area];
40+ for (int i = 0; i < area; i++) {
41+ int r = frame[3 * i];
42+ int g = frame[3 * i + 1];
43+ int b = frame[3 * i + 2];
44+ if (r < 0) r += 255;
45+ if (g < 0) g += 255;
46+ if (b < 0) b += 255;
47+ pixels[i] = Color.rgb(r, g, b);
48+ }
49+ Bitmap bmp = Bitmap.createBitmap(pixels, width, height, Bitmap.Config.ARGB_8888);
50+ ivPreview.setImageBitmap(bmp);
51+ }
52+ });
53+ }
54+ });
55+ ```
56+
57+ 2 . Play
58+ ``` java
59+ new Thread (new Runnable () {
60+ @Override
61+ public void run () {
62+ rtspClient. play(" " );
63+ }
64+ }). start();
65+ ```
66+
67+ 3 . Stop and release
68+ ``` java
69+ rtspClient. stop();
70+ rtspClient. dispose();
71+ ```
72+
73+ ## Demo
74+ Clone the repository and run.
You can’t perform that action at this time.
0 commit comments