Giter Site home page Giter Site logo

takusemba / rtmppublisher Goto Github PK

View Code? Open in Web Editor NEW
614.0 30.0 148.0 13.85 MB

Rtmp client on Android. Live Video Streaming.

License: Apache License 2.0

Kotlin 3.94% Java 96.06%
android android-library android-development video audio rtmp rtmp-client camera java

rtmppublisher's Introduction

RtmpPublisher

alt text

Platform Download License API

Gradle

dependencies {
    compile 'com.github.takusemba:rtmppublisher:x.x.x'
}

Usage

usage is simple. RtmpPublisher does everything.

create a Publisher

val publisher: Publisher = Publisher.Builder(this)
  .setGlView(glView)
  .setUrl(rtmpUrl)
  .setSize(Publisher.Builder.DEFAULT_WIDTH, Publisher.Builder.DEFAULT_HEIGHT)
  .setAudioBitrate(Publisher.Builder.DEFAULT_AUDIO_BITRATE)
  .setVideoBitrate(Publisher.Builder.DEFAULT_VIDEO_BITRATE)
  .setCameraMode(Publisher.Builder.DEFAULT_MODE)
  .setListener(this)
  .build()

start RTMP Streaming

// start publishing!
publisher.startPublishing()

// switch camera between front and back
publisher.switchCamera()

// stop publishing!
publisher.stopPublishing()


publisher.setOnPublisherListener(object: PublisherListener {
  override fun onStarted() {
    // do something
  }
    override fun onStopped() {
    // do something
  }
    override fun onFailedToConnect() {
    // do something
  }
    override fun onDisconnected() {
    // do something
  }
})

Quick Start

alt text

Try this sample here, but this is just a RTMP android client. You also need RTMP server and player to do publish and play them.

You can either make the server and player yourself or use the ones below that i prepared.

Server

https://github.com/TakuSemba/docker-nginx-rtmp

RTMP Player

https://github.com/TakuSemba/RtmpPlayer

HLS Player

https://github.com/TakuSemba/HlsPlayer

Change Log

Version: 1.0.3

  • camera switcher added

Version: 1.0.0

  • first release

Author

Licence

Copyright 2017 Taku Semba.

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.

rtmppublisher's People

Contributors

alebruck avatar takusemba avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rtmppublisher's Issues

latency and lag

I have test with 2 phone, streaming play its good. but for latency still have late few second, and sound how make clear sound in viewers. its have some echo and noise

I/HwPointEventFilter: do not support AFT because of no config

Hello,
I try your RtmpPublisher.
I set streaming_url and i check permission camera and microphono.
The app crash, this isa report of debug. I use Huawei P9 Lite with Android 7.0

`
04/08 23:22:18: Launching app
$ adb shell am start -n "com.takusemba.rtmppublishersample/com.takusemba.rtmppublishersample.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: com.takusemba.rtmppublishersample.test | com.takusemba.rtmppublishersample
Waiting for application to come online: com.takusemba.rtmppublishersample.test | com.takusemba.rtmppublishersample
Waiting for application to come online: com.takusemba.rtmppublishersample.test | com.takusemba.rtmppublishersample
Connecting to com.takusemba.rtmppublishersample
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/System.out: Sending WAIT chunk
I/art: Debugger is active
Connected to the target VM, address: 'localhost:8605', transport: 'socket'
I/System.out: Debugger has connected
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: debugger has settled (1336)
I/InstantRun: starting instant run server: is main process
I/HwCust: Constructor found for class android.app.HwCustActivityImpl
I/HwCust: Constructor found for class android.app.HwCustHwWallpaperManagerImpl
W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
E/HW-JPEG-DEC: HME_JPEG_DEC_Delete: HME_JPEG_DEC_Delete: decoder_ctx=null
E/Camera: Camera new cameraInitNormal:0
I/HwSecImmHelper: mSecurityInputMethodService is null
I/HwPointEventFilter: do not support AFT because of no config
I/OpenGLRenderer: Initialized EGL, version 1.4
W/linker: /vendor/lib64/libhwuibp.so: unused DT entry: type 0xf arg 0xe3a
W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
E/OpenGLRenderer: allen debug liyu Key: 0
E/OpenGLRenderer: allen debug liyu Key: 1
E/OpenGLRenderer: allen debug liyu Key: 240518168576
E/OpenGLRenderer: allen debug liyu Key: 68719476736
E/OpenGLRenderer: allen debug liyu Key: 34359738371
W/IInputConnectionWrapper: reportFullscreenMode on inexistent InputConnection
E/Camera: Camera new cameraInitNormal:0
I/art: Do partial code cache collection, code=30KB, data=25KB
I/art: After code cache collection, code=30KB, data=25KB
I/art: Increasing code cache capacity to 128KB

   [ 04-08 23:22:33.716   544:31475 E/         ]
   void hw::COutMetaSplitBase::dump_thermal_meter(monitor_t): open  failed!

I/hwaps: JNI_OnLoad
I/OMXClient: MuxOMX ctor
I/OMXClient: MuxOMX ctor
I/ACodec: In onAllocateComponent create compenent, codec name: OMX.IMG.TOPAZ.VIDEO.Encoder
I/ACodec: In onAllocateComponent create compenent, codec name: OMX.google.aac.encoder
W/ACodec: do not know color format 0x7f000001 = 2130706433
W/ACodec: do not know color format 0x7f000005 = 2130706437
W/ACodec: do not know color format 0x7f000002 = 2130706434
W/ACodec: do not know color format 0x7f000006 = 2130706438
W/ACodec: do not know color format 0x17 = 23
W/ACodec: do not know color format 0x18 = 24
W/ACodec: do not know color format 0x7f000011 = 2130706449
W/ACodec: do not know color format 0x16 = 22
W/ACodec: do not know color format 0x7f000007 = 2130706439
W/ACodec: do not know color format 0x7f000008 = 2130706440
W/ACodec: do not know color format 0x19 = 25
W/ACodec: do not know color format 0x1a = 26
W/ACodec: do not know color format 0x1b = 27
W/ACodec: do not know color format 0x1c = 28
W/ACodec: do not know color format 0x7f000003 = 2130706435
W/ACodec: do not know color format 0x7f000009 = 2130706441
W/ACodec: do not know color format 0x7f00000c = 2130706444
W/ACodec: do not know color format 0x7f000012 = 2130706450
W/ACodec: do not know color format 0x7f00000a = 2130706442
W/ACodec: do not know color format 0x7f00000b = 2130706443
W/ACodec: do not know color format 0x7f000789 = 2130708361
I/ACodec: setupAVCEncoderParameters with [profile: Baseline] [level: Level52]
I/ACodec: [OMX.IMG.TOPAZ.VIDEO.Encoder] cannot encode color aspects. Ignoring.
I/ACodec: [OMX.IMG.TOPAZ.VIDEO.Encoder] cannot encode HDR static metadata. Ignoring.
I/ACodec: setupVideoEncoder succeeded
W/ACodec: do not know color format 0x7f000789 = 2130708361
I/AudioRecordPermission: remindWithResult:false
I/HwAudioRecordImpl: HwAudioRecordImpl
I/HwAudioRecordImpl: checkRecordActive
I/HwAudioRecordImpl: sendStateChangedIntent, state=3
E/HW-JPEG-DEC: HME_JPEG_DEC_Delete: HME_JPEG_DEC_Delete: decoder_ctx=null
E/HW-JPEG-DEC: HME_JPEG_DEC_Delete: HME_JPEG_DEC_Delete: decoder_ctx=null
I/HwPointEventFilter: do not support AFT because of no config

                  [ 04-08 23:22:44.510   544:31475 E/         ]
                  void hw::COutMetaSplitBase::dump_thermal_meter(monitor_t): open  failed!

I/art: Do partial code cache collection, code=58KB, data=60KB
I/art: After code cache collection, code=57KB, data=60KB
I/art: Increasing code cache capacity to 256KB

   [ 04-08 23:22:47.158   544:31475 E/         ]
   void hw::COutMetaSplitBase::dump_thermal_meter(monitor_t): open  failed!

I/HwPointEventFilter: do not support AFT because of no config
I/art: Do full code cache collection, code=122KB, data=122KB
I/art: After code cache collection, code=107KB, data=79KB

   [ 04-08 23:23:02.321   544:31475 E/         ]
   void hw::COutMetaSplitBase::dump_thermal_meter(monitor_t): open  failed!

I/art: Do partial code cache collection, code=112KB, data=99KB
I/art: After code cache collection, code=112KB, data=99KB
I/art: Increasing code cache capacity to 512KB
`

I think that the Android 7 doesn't support AFT.
Can you help me?

Only Audio Publishing

Is it possible to publish rtmp only audio not video through your library.Kindly help me..

Update RTMP URL after running?

I wonder if there was a chance to change the rtmp url address after run the program
is there a way use other rtmp address, not just the coded in address?

Sometimes can not publish

in Streamer class:
startStreaming method:
if (muxer.isConnected())
this condition called after muxer.open(url, width, height);
but muxer.open is async method.
so sometimes run muxer.isConnected() then run rtmpMuxer.open((String) msg.obj, msg.arg1, msg.arg2);
that's make muxer.isConnected() allways return false;
so in Muxer class:
private ArrayBlockingQueue waiterLock = new ArrayBlockingQueue<>(10);
void open(String url, int width, int height) {
Message message = handler.obtainMessage(MSG_OPEN, url);
message.arg1 = width;
message.arg2 = height;
handler.sendMessage(message);
try {
waiterLock.take();
} catch (InterruptedException e) {
e.printStackTrace();
}
}

case MSG_OPEN:
rtmpMuxer.open((String) msg.obj, msg.arg1, msg.arg2);
try {
if (listener != null) {
uiHandler.post(new Runnable() {
@OverRide
public void run() {
if (isConnected()) {
listener.onStarted();
disconnected = false;
closed = false;
} else {
listener.onFailedToConnect();
}
}
});
}
waiterLock.put(true);
} catch (InterruptedException e) {
e.printStackTrace();
break;
}
break;

Error occurs when the front camera is selected by default

if I select the front camera by default, the application is shutting down.

Caused by: java.lang.RuntimeException: setParameters failed
at android.hardware.Camera.native_setParameters(Native Method)
at android.hardware.Camera.setParameters(Camera.java:1934)
at com.takusemba.rtmppublisher.CameraClient.setParameters(CameraClient.java:104)
at com.takusemba.rtmppublisher.CameraClient.open(CameraClient.java:36)
at com.takusemba.rtmppublisher.RtmpPublisher.onResume(RtmpPublisher.java:100)

issue with frame rate

When i have done live stream on wowza streaming server then shows issue on wowza streaming server that
frame rate is too low that is 14.3 and key frame interval should be equal or twice to frame rate.

and video quality is too low.

Inverse Image

I have a requirement of interviewing a candidate in realtime using realtime streaming. Everything works fine, except that the candidate has to show some ID card. When an ID card is displayed the text is reversed even in the saved video. Is it possible to stream the video without reversing the text?

Can't stream to youtube

I tried to steam with the url "rtmp://a.rtmp.youtube.com/live2/xxxxx". It's can connect but YouTube is not receiving data.

Can anyone help me

Live streaming delay

I am using your code in my local. But the streaming is delaying about 20 ~ 30s.
How can I reduce this delaying time?

Cannot upload data to Azure Media Service

I am developing a LiveStream application with AMS. This demo operated, it doesn't have any exception. But when I check AMS channel, I don't find data. Please help me.

Why minSdkVersion 18

Could you explain why the minSdkVersion is set to 18?
Will there be any problem if I override it to 16?
Thanks

I can't connect

I changed url to ""127.0.0.1:7777"" in MINACTIVITY.JAVA

IT SHOWS "FAILED TO CONNECTION"

In server, i entered
docker run -t -i -p 7777:7777 -p 80:80 --rm nginx_rtmp
It shows down error

docker: Error response from daemon: driver failed programming external connectivity on endpoint elegant_bartik (7a0d47f5322cced131a47dff9385721779baaedf429a1b7489369875646da5a2): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE).

I enter

docker run nginx_rtmp

It show not up error

Why reason?

Regards

Wouldn't stream to youtube

I tried with the sample with the url "rtmp://a.rtmp.youtube.com/live2/xxxxx", but doesn't get stream to youtube.

Fail to connect to camera service

Process: request.elgroupinternational.com.randsoom, PID: 8025
java.lang.RuntimeException: Unable to resume activity {request.elgroupinternational.com.randsoom/request.elgroupinternational.com.randsoom.MainActivity}: java.lang.RuntimeException: Failed to call observer method
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3788)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3036)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by: java.lang.RuntimeException: Failed to call observer method
at android.arch.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:225)
at android.arch.lifecycle.ClassesInfoCache$CallbackInfo.invokeMethodsForEvent(ClassesInfoCache.java:193)
at android.arch.lifecycle.ClassesInfoCache$CallbackInfo.invokeCallbacks(ClassesInfoCache.java:184)
at android.arch.lifecycle.ReflectiveGenericLifecycleObserver.onStateChanged(ReflectiveGenericLifecycleObserver.java:36)
at android.arch.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354)
at android.arch.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:292)
at android.arch.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:332)
at android.arch.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:137)
at android.arch.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:123)
at android.arch.lifecycle.ReportFragment.dispatch(ReportFragment.java:121)
at android.arch.lifecycle.ReportFragment.onResume(ReportFragment.java:88)
at android.app.Fragment.performResume(Fragment.java:2657)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1319)
at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1549)
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1611)
at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3045)
at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:3007)
at android.app.FragmentController.dispatchResume(FragmentController.java:201)
at android.app.Activity.performResume(Activity.java:7365)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3763)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3036) 
at android.app.ActivityThread.-wrap11(Unknown Source:0) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) 
at android.os.Handler.dispatchMessage(Handler.java:105) 
at android.os.Looper.loop(Looper.java:164) 
at android.app.ActivityThread.main(ActivityThread.java:6938) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 
Caused by: java.lang.RuntimeException: Fail to connect to camera service
at android.hardware.Camera.(Camera.java:510)
at android.hardware.Camera.open(Camera.java:359)
at com.takusemba.rtmppublisher.CameraClient.initCamera(CameraClient.java:76)
at com.takusemba.rtmppublisher.CameraClient.open(CameraClient.java:30)
at com.takusemba.rtmppublisher.RtmpPublisher.onResume(RtmpPublisher.java:100)
at java.lang.reflect.Method.invoke(Native Method)
at android.arch.lifecycle.ClassesInfoCache$MethodReference.invokeCallback(ClassesInfoCache.java:218)
at android.arch.lifecycle.ClassesInfoCache$CallbackInfo.invokeMethodsForEvent(ClassesInfoCache.java:193) 
at android.arch.lifecycle.ClassesInfoCache$CallbackInfo.invokeCallbacks(ClassesInfoCache.java:184) 
at android.arch.lifecycle.ReflectiveGenericLifecycleObserver.onStateChanged(ReflectiveGenericLifecycleObserver.java:36) 
at android.arch.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:354) 
at android.arch.lifecycle.LifecycleRegistry.forwardPass(LifecycleRegistry.java:292) 
at android.arch.lifecycle.LifecycleRegistry.sync(LifecycleRegistry.java:332) 
at android.arch.lifecycle.LifecycleRegistry.moveToState(LifecycleRegistry.java:137) 
at android.arch.lifecycle.LifecycleRegistry.handleLifecycleEvent(LifecycleRegistry.java:123) 
at android.arch.lifecycle.ReportFragment.dispatch(ReportFragment.java:121) 
at android.arch.lifecycle.ReportFragment.onResume(ReportFragment.java:88) 
at android.app.Fragment.performResume(Fragment.java:2657) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1319) 
at android.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1549) 
at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1611) 
at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3045) 
at android.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:3007) 
at android.app.FragmentController.dispatchResume(FragmentController.java:201) 
at android.app.Activity.performResume(Activity.java:7365) 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3763) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3828) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3036) 
at android.app.ActivityThread.-wrap11(Unknown Source:0) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) 
at android.os.Handler.dispatchMessage(Handler.java:105) 
at android.os.Looper.loop(Looper.java:164) 
at android.app.ActivityThread.main(ActivityThread.java:6938) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 

muxer.isConnected() always false

Hi, I try to check your MainActivity example. I make one change - set my url to rtmp.
I dont get video stream. it seems like the reason it in class Streamer, function void startStreaming() I get if (muxer.isConnected()) false. How i can solve it? my device Xiaomi Mi A1 Android 8.1.0

java.lang.NoSuchMethodError: No virtual method isConnected()I in class Lnet/butterflytv/rtmp_client/RTMPMuxer; or its super classes (declaration of 'net.butterflytv.rtmp_client.RTMPMuxer' appears in /data/app/com.fel.example-1/base.apk:classes3.dex)

java.lang.NoSuchMethodError: No virtual method isConnected()I in class Lnet/butterflytv/rtmp_client/RTMPMuxer; or its super classes (declaration of 'net.butterflytv.rtmp_client.RTMPMuxer' appears in /data/app/com.fel.example-1/base.apk:classes3.dex)

Video Streaming stopped after random time

Hi,
we were testing and evaluating RTMP libraries for flutter and found this library has potential to use by more users. during my evaluation i had found that it can not stream continuously, and it stops streaming after random amount of time. i can help you out in this case can make it work, please contact me on [email protected] and share me library code and i can make this work or else please fix it and make it work. looking forward to hear back from you

Crash on Emulator

Downloaded the zip from GitHub, and imported to Android Studio.
on Android Studio 3.3 with Android 9.0 API 28 x86 or Android 7.0 API24 x86,
the imported rtmpPulisher will compile but will not run.
The application will crash right after launch.

Accordingto the mssage, the app try to run without camera permission.
After add the permission manually from settings, another issue caused crash.

1

2

3

Slow transmission to server

The smartphone and server are in LAN and i try with private ip but the transmission is very low, i wait 30 second for view Video on Server.
I try with AsyncTask for use another thread but i wait more time ( +/- 25 seconds).
When you send package to server, do you use TCP protocol or UDP protocol?.
How accelerate send package and encoding video & audio?
I need view streaming after max 5 second.

Thread[VideoEncoder-drain,5,main]

Thread[VideoEncoder-drain,5,main]
java.lang.IllegalStateException

dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.fel.example-1/base.apk"],nativeLibraryDirectories=[/data/app/com.fel.example-1/lib/arm, /data/app/com.fel.example-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]]

What's the version?

The release number is not seen

dependencies {
compile 'com.github.takusemba:rtmppublisher:x.x.x'
}

AutoDisconnected

Hey I used your library and when I am going to publish stream then after some time it automatically disconnect via calling disconnected method.
Can you give me solution for that.
I also need to add video pinch zoom functionality for that same while publishing streaming.

If anyone have idea then please help me,

Thanks.

FATAL EXCEPTION: VideoEncoder-drain

java.lang.IllegalStateException
at android.media.MediaCodec.releaseOutputBuffer(Native Method)
at android.media.MediaCodec.releaseOutputBuffer(MediaCodec.java:2424)
at com.takusemba.rtmppublisher.VideoEncoder$1.run(VideoEncoder.java:127)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)

how to focus camera

when i use this library,i found it seems no method to operate camera。so i wonder if there are any method to focus my camera

instagram rtmps

This lib supportInstagram Rtmps?

like this url ?
rtmps://live-upload.instagram.com:443/rtmp/178468827943075?s_efg=eyJxZV9ncm91cHMiOnsiaWdfbGl2ZV9lbmFibGVfcG9wX3ByaW1pbmciOnsiZW5hYmxl6InRydWUifSwiaWdfbG93X2xhdGVuY3lfcHJvZHVjdGlvbl91bml2ZXJzZSI6eyJlbmFibGVkIjoidHJ1ZSJ9fX0%3D&s_sw=0&s_vt=ig&a=AbwlCDR6kCM6HC_j

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.