Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RTMP Streaming fail #441

Closed
weijia-yu opened this issue Jun 27, 2016 · 16 comments
Closed

RTMP Streaming fail #441

weijia-yu opened this issue Jun 27, 2016 · 16 comments

Comments

@weijia-yu
Copy link

I read someone's post that I can stream RTMP from client to server by replacing ffmpeg_link with my rtmp server stream url,
but when I stream. The server indicates there is data input, but when I open m3u8 player, it is always loading. There is no problem on the server side, cuz I tried other rtmp broadcaster and the m3u8 player can play without problem.
Does recordActivity support RTMP streaming?
I also tried to modify RECORD_LENGTH to 0

@saudet
Copy link
Member

saudet commented Jun 27, 2016

FFmpeg supports it sure. Try to call FFmpegLogCallback.set() and see what messages you get in the log. It should show you what the issues are with the way you're setting FFmpegFrameRecorder.

@bajicdusko
Copy link

I have similar issue with my app also. When i stream to wowza, i am able to see stream video inside wowza testplayer, but unable to play video on wowza plyback url in VLC. This is the code i am using.. Since it is possible to play in testplayer, i guess its something with wowza playback settings, but anyway, i'm here to mention it, maybe someone will have solution.

@weijia-yu
Copy link
Author

weijia-yu commented Jun 30, 2016

after using set(),
I get the following message:

Trying to load lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libc.so 0x42734bb0
06-30 18:10:17.929 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libc.so 0x42734bb0
06-30 18:10:17.929 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libc.so 0x42734bb0, skipping init
06-30 18:10:17.949 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libm.so 0x42734bb0
06-30 18:10:17.949 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libm.so 0x42734bb0
06-30 18:10:17.949 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libm.so 0x42734bb0, skipping init
06-30 18:10:17.969 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libz.so 0x42734bb0
06-30 18:10:17.969 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libz.so 0x42734bb0
06-30 18:10:17.969 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libz.so 0x42734bb0, skipping init
06-30 18:10:17.979 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libdl.so 0x42734bb0
06-30 18:10:17.979 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libdl.so 0x42734bb0
06-30 18:10:17.979 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/libdl.so 0x42734bb0, skipping init
06-30 18:10:18.009 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/liblog.so 0x42734bb0
06-30 18:10:18.009 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/liblog.so 0x42734bb0
06-30 18:10:18.009 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/data/org.bytedeco.javacv.recordactivity/cache/javacpp31789738350413/liblog.so 0x42734bb0, skipping init
06-30 18:10:18.029 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: GC_FOR_ALLOC freed 439K, 3% free 17691K/18160K, paused 18ms, total 18ms
06-30 18:10:18.029 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libavutil.so 0x42734bb0
06-30 18:10:18.039 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libavutil.so 0x42734bb0
06-30 18:10:18.039 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/app-lib/org.bytedeco.javacv.recordactivity-2/libavutil.so 0x42734bb0, skipping init
06-30 18:10:18.039 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniavutil.so 0x42734bb0
06-30 18:10:18.039 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniavutil.so 0x42734bb0
06-30 18:10:18.099 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libswresample.so 0x42734bb0
06-30 18:10:18.099 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libswresample.so 0x42734bb0
06-30 18:10:18.099 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/app-lib/org.bytedeco.javacv.recordactivity-2/libswresample.so 0x42734bb0, skipping init
06-30 18:10:18.099 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniswresample.so 0x42734bb0
06-30 18:10:18.099 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniswresample.so 0x42734bb0
06-30 18:10:18.209 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: GC_FOR_ALLOC freed 463K, 3% free 17740K/18232K, paused 16ms, total 16ms
06-30 18:10:18.229 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libavcodec.so 0x42734bb0
06-30 18:10:18.229 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libavcodec.so 0x42734bb0
06-30 18:10:18.229 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/app-lib/org.bytedeco.javacv.recordactivity-2/libavcodec.so 0x42734bb0, skipping init
06-30 18:10:18.229 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniavcodec.so 0x42734bb0
06-30 18:10:18.239 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniavcodec.so 0x42734bb0
06-30 18:10:18.419 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: GC_FOR_ALLOC freed 448K, 3% free 17803K/18280K, paused 16ms, total 16ms
06-30 18:10:18.419 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libavformat.so 0x42734bb0
06-30 18:10:18.429 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libavformat.so 0x42734bb0
06-30 18:10:18.429 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/app-lib/org.bytedeco.javacv.recordactivity-2/libavformat.so 0x42734bb0, skipping init
06-30 18:10:18.429 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniavformat.so 0x42734bb0
06-30 18:10:18.429 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniavformat.so 0x42734bb0
06-30 18:10:18.519 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libswscale.so 0x42734bb0
06-30 18:10:18.519 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libswscale.so 0x42734bb0
06-30 18:10:18.519 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: No JNI_OnLoad found in /data/app-lib/org.bytedeco.javacv.recordactivity-2/libswscale.so 0x42734bb0, skipping init
06-30 18:10:18.529 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Trying to load lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniswscale.so 0x42734bb0
06-30 18:10:18.529 2778-2778/org.bytedeco.javacv.recordactivity D/dalvikvm: Added shared lib /data/app-lib/org.bytedeco.javacv.recordactivity-2/libjniswscale.so 0x42734bb0

I still doubt if the library has been imported correctly,
I added library by inserting in Project Structure/Dependecies,
Here is my Gradle, I am using Android Studio:

`apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "org.bytedeco.javacv.recordactivity"
    minSdkVersion 14
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
    }
}
packagingOptions {
    exclude 'META-INF/services/javax.annotation.processing.Processor'
    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.properties'
    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/opencv/pom.xml'
    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.properties'
    pickFirst  'META-INF/maven/org.bytedeco.javacpp-presets/ffmpeg/pom.xml'
}

}
repositories {
mavenCentral()
}
dependencies {
//compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile files('libs/ffmpeg.jar')
compile files('libs/opencv.jar')
compile files('libs/javacpp.jar')
compile files('libs/javacv.jar')
compile files('libs/ffmpeg-android-arm.jar')
compile files('libs/opencv-android-arm.jar')
}`

@bajicdusko
Copy link

bajicdusko commented Jun 30, 2016

I think that you dont have to add ffmpeg-android-arm and opencv-android-arm as dependencies, but to extract those archives and to copy-paste .so files from inner folders to corresponding folders in jniLibs.

I have extracted libs like on screenshot below and copy-paste armeabi to jniLibs/armeabi and x86 to jniLibs/x86.

image

@ywj7931 can you see if this is working for you. I've set it just like i have described above (only difference is that i dont use opencv)

@weijia-yu
Copy link
Author

@bajicdusko Thanks! I will try that? Where can I enter my rtmp streaming url?

@bajicdusko
Copy link

@ywj7931 if you take a look at source code take a look at buildWowzaStreamEndpoint() method. You can override it or hardcode stream url, or to set existing properties on top of class, if you're using wowza.

@weijia-yu
Copy link
Author

@bajicdusko it cant resolve LiveBroadcastActivityPermissionsDispatcher
Can I delete those lines

@bajicdusko
Copy link

In order to resolve LiveBroadcastPermissionDIspatcher, you have to add

apt 'com.github.hotchemi:permissionsdispatcher-processor:2.0.7'
compile 'com.github.hotchemi:permissionsdispatcher:2.0.7'

in module build gradle, and:

classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'

in project build gradle.

But you can remove it if you want and instead initCameraWithCheck to call initCamera directly. To avoid permission issues, decrease targetSdk to 22.

@saudet
Copy link
Member

saudet commented Jul 1, 2016

@ywj7931 Those messages look fine. The error message should appear after.

@weijia-yu
Copy link
Author

@bajicdusko thank you, it finally ran after correctly importing library, do you know how to decrease latency delay? I found the delay is always over 15sec, is it related to encode format?

@bajicdusko
Copy link

@ywj7931 Unfortunatelly i dont, i think that @saudet could give us a hand with this one. I guess it got something with buffering (size of something).

@weijia-yu
Copy link
Author

@bajicdusko Thanks for replying, have you experienced the same problem? big delay?

@bajicdusko
Copy link

@ywj7931 There is a quite delay between moment of recording and when that moment gets played back on some other device. That delay exists even with GoCoderSDK. I have'nt measure it though, but its a few seconds thats for sure. cc @saudet

@weijia-yu
Copy link
Author

@bajicdusko According to my measurement, it seemed there is around 1min delay. I have downloaded some rtmp broadcaster on Android Play, they achieved 7s latency, it seemed they used FFMPEGRECORDER too.

@saudet
Copy link
Member

saudet commented Jul 14, 2016

Make sure to use the x264 codec and to call recorder.setVideoOption("preset", "ultrafast").

@saudet
Copy link
Member

saudet commented Jul 14, 2016

Loading issue is duplicate of #133

@saudet saudet closed this as completed Jul 14, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants