We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
Android平台使用,根据 Android demo先把ZLMediaKit server运行启动起来,然后使用mk api 把录屏的H264视频流去推到本地的server,尝试了很久没有成功, 一直没有查到ZLMediaKit server有相应的视频流
下面是Android logcat反馈日志
2024-03-12 16:44:24.869 30968-30968/? I/d.ijkplayerdem: Late-enabling -Xcheck:jni 2024-03-12 16:44:24.892 30968-30968/? E/d.ijkplayerdem: Unknown bits set in runtime_flags: 0x8000 2024-03-12 16:44:24.930 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdemo: type=1400 audit(0.0:285116): avc: denied { search } for name="bbkcore" dev="dm-3" ino=1426 scontext=u:r:untrusted_app:s0:c174,c257,c512,c768 tcontext=u:object_r:vivo_data_file:s0 tclass=dir permissive=0 2024-03-12 16:44:25.280 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdemo: type=1400 audit(0.0:285124): avc: denied { search } for name="bbkcore" dev="dm-3" ino=1426 scontext=u:r:untrusted_app:s0:c174,c257,c512,c768 tcontext=u:object_r:vivo_data_file:s0 tclass=dir permissive=0 2024-03-12 16:44:25.288 30968-30968/com.shd.ijkplayerdemo I/VPerformance: Connecting to vperf service. 2024-03-12 16:44:25.350 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdemo: type=1400 audit(0.0:285126): avc: denied { search } for name="bbkcore" dev="dm-3" ino=1426 scontext=u:r:untrusted_app:s0:c174,c257,c512,c768 tcontext=u:object_r:vivo_data_file:s0 tclass=dir permissive=0 2024-03-12 16:44:25.383 30968-30968/com.shd.ijkplayerdemo I/PhoneWindow: initSystemUIColor 2024-03-12 16:44:25.404 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed) 2024-03-12 16:44:25.405 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed) 2024-03-12 16:44:25.506 30968-31003/com.shd.ijkplayerdemo I/AdrenoGLES: QUALCOMM build : bfa6487, Ia11ce2d146 Build Date : 09/04/20 OpenGL ES Shader Compiler Version: EV031.27.05.02 Local Branch : Remote Branch : refs/tags/AU_LINUX_ANDROID_LA.UM.8.3.R1.10.00.00.520.063 Remote Branch : NONE Reconstruct Branch : NOTHING 2024-03-12 16:44:25.506 30968-31003/com.shd.ijkplayerdemo I/AdrenoGLES: Build Config : S P 8.0.11 AArch64 2024-03-12 16:44:25.508 30968-31003/com.shd.ijkplayerdemo I/AdrenoGLES: PFP: 0x016ee187, ME: 0x00000000 2024-03-12 16:44:25.509 30968-31003/com.shd.ijkplayerdemo W/AdrenoUtils: <ReadGpuID_from_sysfs:194>: Failed to open /sys/class/kgsl/kgsl-3d0/gpu_model 2024-03-12 16:44:25.510 30968-31003/com.shd.ijkplayerdemo W/AdrenoUtils: <ReadGpuID:218>: Failed to read chip ID from gpu_model. Fallback to use the GSL path 2024-03-12 16:44:25.500 30968-30968/com.shd.ijkplayerdemo W/RenderThread: type=1400 audit(0.0:285127): avc: denied { search } for name="kgsl-3d0" dev="sysfs" ino=49865 scontext=u:r:untrusted_app:s0:c174,c257,c512,c768 tcontext=u:object_r:sysfs_kgsl:s0 tclass=dir permissive=0 2024-03-12 16:44:25.529 30968-31003/com.shd.ijkplayerdemo W/Gralloc3: mapper 3.x is not supported 2024-03-12 16:44:25.537 30968-30968/com.shd.ijkplayerdemo I/System.out: 获取权限成功 2024-03-12 16:44:25.574 30968-30968/com.shd.ijkplayerdemo I/JNI: registerPlugin Load codec: H264 2024-03-12 16:44:25.574 30968-30968/com.shd.ijkplayerdemo I/JNI: registerPlugin Load codec: H265 2024-03-12 16:44:25.574 30968-30968/com.shd.ijkplayerdemo I/JNI: registerPlugin Load codec: JPEG 2024-03-12 16:44:25.574 30968-30968/com.shd.ijkplayerdemo I/JNI: registerPlugin Load codec: mpeg4-generic 2024-03-12 16:44:25.574 30968-30968/com.shd.ijkplayerdemo I/JNI: registerPlugin Load codec: opus 2024-03-12 16:44:25.574 30968-30968/com.shd.ijkplayerdemo I/JNI: registerPlugin Load codec: PCMA 2024-03-12 16:44:25.574 30968-30968/com.shd.ijkplayerdemo I/JNI: registerPlugin Load codec: PCMU 2024-03-12 16:44:25.574 30968-30968/com.shd.ijkplayerdemo I/JNI: registerPlugin Load codec: L16 2024-03-12 16:44:25.589 30968-31013/com.shd.ijkplayerdemo I/JNI: JNI_OnLoad 2024-03-12 16:44:25.589 30968-31013/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_startDemo sd_path:/storage/emulated/0 2024-03-12 16:44:25.589 30968-31013/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_startDemo ini file:/storage/emulated/0/zlmediakit.ini 2024-03-12 16:44:25.590 30968-31013/com.shd.ijkplayerdemo I/JNI: systemSetup core文件大小设置为:18446744073709551615 2024-03-12 16:44:25.590 30968-31013/com.shd.ijkplayerdemo I/JNI: systemSetup 文件最大描述符个数设置为:32768 2024-03-12 16:44:25.590 30968-31015/com.shd.ijkplayerdemo I/JNI: start_main ZLMediaKit(git hash:87cb488/2024-02-19T11:54:13+08:00,branch:master,build time:2024-03-12T09:48:20) 2024-03-12 16:44:25.602 30968-31015/com.shd.ijkplayerdemo W/JNI: loadPublicKey BIO_new_file failed: error:02001002:system library:fopen:No such file or directory 2024-03-12 16:44:25.602 30968-31015/com.shd.ijkplayerdemo W/JNI: loadPrivateKey BIO_new_file failed: error:2006D080:BIO routines:BIO_new_file:no such file 2024-03-12 16:44:25.602 30968-31015/com.shd.ijkplayerdemo W/JNI: makeSSLContext SSL_CTX_check_private_key failed: error:02001002:system library:fopen:No such file or directory 2024-03-12 16:44:25.602 30968-31015/com.shd.ijkplayerdemo D/JNI: operator() Stamp thread started 2024-03-12 16:44:25.604 30968-31015/com.shd.ijkplayerdemo I/JNI: EventPollerPool EventPoller created size: 8 2024-03-12 16:44:25.606 30968-31015/com.shd.ijkplayerdemo I/JNI: start_main 已启动http api 接口 2024-03-12 16:44:25.606 30968-31015/com.shd.ijkplayerdemo I/JNI: start_main 已启动http hook 接口 2024-03-12 16:44:25.607 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l TCP server listening on [::]: 8554 2024-03-12 16:44:25.608 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l TCP server listening on [::]: 8332 2024-03-12 16:44:25.609 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l TCP server listening on [::]: 1935 2024-03-12 16:44:25.610 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l TCP server listening on [::]: 19350 2024-03-12 16:44:25.611 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l TCP server listening on [::]: 8080 2024-03-12 16:44:25.611 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l TCP server listening on [::]: 8443 2024-03-12 16:44:25.612 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l TCP server listening on [::]: 9000 2024-03-12 16:44:25.614 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l TCP server listening on [::]: 10000 2024-03-12 16:44:25.615 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l UDP server bind to [::]: 10000 2024-03-12 16:44:25.616 30968-31015/com.shd.ijkplayerdemo I/JNI: start_l UDP server bind to [::]: 9000 2024-03-12 16:44:36.806 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden method Landroid/os/ServiceManager;->getService(Ljava/lang/String;)Landroid/os/IBinder; (greylist, reflection, allowed) 2024-03-12 16:44:36.806 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden method Landroid/hardware/display/IDisplayManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/hardware/display/IDisplayManager; (greylist, reflection, allowed) 2024-03-12 16:44:36.806 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden method Landroid/hardware/display/IDisplayManager$Stub$Proxy;->getDisplayInfo(I)Landroid/view/DisplayInfo; (greylist-max-o, reflection, denied) 2024-03-12 16:44:36.806 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden method Landroid/hardware/display/IDisplayManager;->getDisplayInfo(I)Landroid/view/DisplayInfo; (greylist, reflection, allowed) 2024-03-12 16:44:36.807 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden field Landroid/view/DisplayInfo;->logicalWidth:I (greylist, reflection, allowed) 2024-03-12 16:44:36.807 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden field Landroid/view/DisplayInfo;->logicalHeight:I (greylist, reflection, allowed) 2024-03-12 16:44:36.807 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden field Landroid/view/DisplayInfo;->rotation:I (greylist, reflection, allowed) 2024-03-12 16:44:36.807 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden method Landroid/view/IRotationWatcher$Stub;-><init>()V (greylist, linking, allowed) 2024-03-12 16:44:36.807 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden method Landroid/view/IWindowManager$Stub;->asInterface(Landroid/os/IBinder;)Landroid/view/IWindowManager; (greylist, reflection, allowed) 2024-03-12 16:44:36.808 30968-30968/com.shd.ijkplayerdemo W/d.ijkplayerdem: Accessing hidden method Landroid/view/IWindowManager$Stub$Proxy;->watchRotation(Landroid/view/IRotationWatcher;I)I (greylist, reflection, allowed) 2024-03-12 16:44:38.220 30968-30968/com.shd.ijkplayerdemo I/ACodec: mIsVivoLogEnable = 0 2024-03-12 16:44:38.222 30968-31072/com.shd.ijkplayerdemo I/OMXClient: IOmx service obtained 2024-03-12 16:44:38.233 30968-31071/com.shd.ijkplayerdemo I/MediaCodec: MediaCodec will operate in async mode 2024-03-12 16:44:38.234 30968-31072/com.shd.ijkplayerdemo I/ACodec: [OMX.qcom.video.encoder.avc]configureCodec AMessage(what = 'conf', target = 1) = { int32_t complexity = 2 int32_t color-format = 2130708361 int32_t i-frame-interval = 2 string mime = "Video/AVC" int32_t width = 1080 int32_t bitrate-mode = 1 int32_t bitrate = 1000000 int32_t frame-rate = 60 int32_t height = 1920 int64_t repeat-previous-frame-after = 100000 int32_t encoder = 1 } 2024-03-12 16:44:38.234 30968-31072/com.shd.ijkplayerdemo I/ExtendedACodec: setupVideoEncoder() 2024-03-12 16:44:38.234 30968-31072/com.shd.ijkplayerdemo W/OMXUtils: do not know color format 0x7fa30c06 = 2141391878 2024-03-12 16:44:38.234 30968-31072/com.shd.ijkplayerdemo W/OMXUtils: do not know color format 0x7fa30c04 = 2141391876 2024-03-12 16:44:38.235 30968-31072/com.shd.ijkplayerdemo W/OMXUtils: do not know color format 0x7fa30c00 = 2141391872 2024-03-12 16:44:38.235 30968-31072/com.shd.ijkplayerdemo W/OMXUtils: do not know color format 0x7fa30c09 = 2141391881 2024-03-12 16:44:38.235 30968-31072/com.shd.ijkplayerdemo W/OMXUtils: do not know color format 0x7fa30c0a = 2141391882 2024-03-12 16:44:38.235 30968-31072/com.shd.ijkplayerdemo W/OMXUtils: do not know color format 0x7fa30c08 = 2141391880 2024-03-12 16:44:38.236 30968-31072/com.shd.ijkplayerdemo W/OMXUtils: do not know color format 0x7fa30c07 = 2141391879 2024-03-12 16:44:38.236 30968-31072/com.shd.ijkplayerdemo W/OMXUtils: do not know color format 0x7f000789 = 2130708361 2024-03-12 16:44:38.238 30968-31072/com.shd.ijkplayerdemo I/ACodec: setupAVCEncoderParameters with [profile: High] [level: Level1] 2024-03-12 16:44:38.239 30968-31072/com.shd.ijkplayerdemo I/ACodec: [OMX.qcom.video.encoder.avc] cannot encode HDR static metadata. Ignoring. 2024-03-12 16:44:38.239 30968-31072/com.shd.ijkplayerdemo I/ACodec: setupVideoEncoder succeeded 2024-03-12 16:44:38.239 30968-31072/com.shd.ijkplayerdemo I/ExtendedACodec: [OMX.qcom.video.encoder.avc] configure, AMessage : AMessage(what = 'conf', target = 1) = { int32_t complexity = 2 int32_t color-format = 2130708361 int32_t i-frame-interval = 2 string mime = "Video/AVC" int32_t width = 1080 int32_t bitrate-mode = 1 int32_t bitrate = 1000000 int32_t frame-rate = 60 int32_t height = 1920 int64_t repeat-previous-frame-after = 100000 int32_t encoder = 1 } 2024-03-12 16:44:38.239 30968-31072/com.shd.ijkplayerdemo W/OMXUtils: do not know color format 0x7f000789 = 2130708361 2024-03-12 16:44:38.276 30968-30968/com.shd.ijkplayerdemo D/AudioCapture: startRecording 2024-03-12 16:44:38.277 30968-30968/com.shd.ijkplayerdemo D/AudioCapture: initRecording(sampleRate=16000, channels=2) 2024-03-12 16:44:38.277 30968-30968/com.shd.ijkplayerdemo D/AudioCapture: byteBuffer.capacity: 640 2024-03-12 16:44:38.279 30968-30968/com.shd.ijkplayerdemo D/AudioCapture: AudioRecord.getMinBufferSize: 2560 2024-03-12 16:44:38.279 30968-30968/com.shd.ijkplayerdemo D/AudioCapture: bufferSizeInBytes: 5120 2024-03-12 16:44:38.294 30968-30968/com.shd.ijkplayerdemo V/AudioPolicy: Null context, checking permission via ActivityManager 2024-03-12 16:44:38.298 30968-30968/com.shd.ijkplayerdemo V/android.media.AudioRecord: Will record from REMOTE_SUBMIX at full fixed volume 2024-03-12 16:44:38.298 30968-30968/com.shd.ijkplayerdemo I/AudioRecord: set(): inputSource 8, sampleRate 16000, format 0x1, channelMask 0xc, frameCount 640, notificationFrames 0, sessionId 0, transferType 0, flags 0, opPackageName com.shd.ijkplayerdemo uid -1, pid -1 2024-03-12 16:44:38.301 30968-30968/com.shd.ijkplayerdemo E/IAudioFlinger: createRecord returned error -1 2024-03-12 16:44:38.301 30968-30968/com.shd.ijkplayerdemo E/AudioRecord: createRecord_l(398): AudioFlinger could not create record track, status: -1 2024-03-12 16:44:38.301 30968-30968/com.shd.ijkplayerdemo E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -1. 2024-03-12 16:44:38.303 30968-30968/com.shd.ijkplayerdemo E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object. 2024-03-12 16:44:38.303 30968-30968/com.shd.ijkplayerdemo E/AudioCapture: Init recording error: Failed to create a new AudioRecord instance 2024-03-12 16:44:38.303 30968-30968/com.shd.ijkplayerdemo D/AudioCapture: releaseAudioResources 2024-03-12 16:44:38.342 30968-31072/com.shd.ijkplayerdemo D/ACodec: dataspace changed to 0x10c10000 (R:2(Limited), P:3(BT601_6_625), M:3(BT601_6), T:3(SMPTE170M)) (R:2(Limited), S:2(BT601_625), T:3(SMPTE_170M)) 2024-03-12 16:44:38.380 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_createMedia mk_media_init_video result:1 2024-03-12 16:44:39.388 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:39.962 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:40.883 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:41.407 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:41.910 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:42.484 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:42.989 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:44.958 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:45.562 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:46.062 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:46.356 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:46.356 30968-31015/com.shd.ijkplayerdemo W/JNI: operator() Cached frame of unready track(H264) is too much, now cleared 2024-03-12 16:44:46.370 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:46.915 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:47.423 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:47.929 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:48.447 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:48.447 30968-31015/com.shd.ijkplayerdemo D/JNI: emitAllTrackReady All track ready use 10066ms 2024-03-12 16:44:48.449 30968-31015/com.shd.ijkplayerdemo W/JNI: emitAllTrackReady Track not ready for a long time, ignored: H264 2024-03-12 16:44:48.498 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:49.033 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:49.545 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:50.942 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:51.480 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:52.034 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:52.536 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:53.919 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:54.430 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:54.940 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:55.516 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:56.018 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:56.910 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:57.416 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:57.939 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:44:59.953 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:00.465 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:00.973 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:02.957 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:03.493 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:04.000 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:04.876 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:05.402 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:05.951 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:06.483 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:06.998 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:08.933 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:09.468 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:09.970 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:10.507 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:11.012 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:11.563 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:12.068 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:12.631 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:13.137 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:14.421 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:14.936 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:15.485 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:17.542 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:18.056 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:18.652 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:20.232 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:20.741 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:21.253 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:21.757 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:22.870 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:23.382 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:23.893 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:24.452 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:24.957 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:25.947 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:26.448 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:26.957 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:27.469 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:27.973 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:28.895 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:29.431 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:29.947 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:30.482 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:30.996 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:32.042 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:32.551 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:33.150 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:33.658 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:35.960 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:36.516 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:37.121 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:38.773 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:39.362 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1 2024-03-12 16:45:39.956 30968-31015/com.shd.ijkplayerdemo D/JNI: Java_com_zlmediakit_jni_ZLMediaKit_pushVideoStream mk_media_input_frame result:1
下面是主要的代码片段
static public native long createMedia(String app, String stream, int width, int height, float fps, int bitRate); static public native int pushVideoStream(long mediaPtr, byte[] frame, int length, long dts, long pts);
JNI_API(jlong, createMedia, jstring app, jstring stream, jint width, jint height, jfloat fps, jint bit_rate) { const char* c_app = env->GetStringUTFChars(app, nullptr); const char* c_stream = env->GetStringUTFChars(stream, nullptr); // 调用ZLMediaKit 方法 mk_media media = mk_media_create( "__defaultVhost__",c_app,c_stream, 0, 0, 0 ); int result = mk_media_init_video(media, MKCodecH264, width, height, fps, bit_rate); DebugL << "mk_media_init_video result:" << result; sleep(1); mk_media_init_complete(media); env->ReleaseStringUTFChars( app, c_app); env->ReleaseStringUTFChars(stream, c_stream); // 将指针返回给Java层 return reinterpret_cast<jlong>(media); } JNI_API(jint, pushVideoStream, jlong mediaPtr, jbyteArray frameData, jint len, jlong dts, jlong pts) { auto media = reinterpret_cast<mk_media>(mediaPtr); jbyte* frame_data = env->GetByteArrayElements(frameData, nullptr); mk_frame frame = mk_frame_create(MKCodecH264, dts, pts, reinterpret_cast<const char *>(frame_data), len,NULL, NULL); int result = mk_media_input_frame(media, frame); mk_frame_unref(frame); DebugL << "mk_media_input_frame result:" << result; //释放引用 env->ReleaseByteArrayElements(frameData, frame_data, 0); return result; }
下面是Android调用代码
import android.Manifest import android.os.Bundle import android.os.Environment import android.widget.Button import androidx.appcompat.app.AppCompatActivity import com.zlmediakit.jni.ZLMediaKit import org.loka.screensharekit.EncodeBuilder import org.loka.screensharekit.ScreenShareKit class MainActivity : AppCompatActivity() { private val permissionArray = arrayOf( Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE ) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main6) checkPermission() findViewById<Button>(R.id.startBtn).setOnClickListener { testPush() } } private fun checkPermission() { val requestMissionArray = mutableListOf<String>() permissionArray.forEach { permission -> requestMissionArray.add(permission) } startRequestPermissions(permissions = requestMissionArray.toTypedArray()) { it -> if (it.filter { !it.value }.isEmpty()) { println("获取权限成功") val sd_dir = Environment.getExternalStoragePublicDirectory("").toString() ZLMediaKit.startDemo(sd_dir) } } } private var isCreateServer = false private var _ptr: Long = 0 private fun testPush() { ScreenShareKit.init(this) .config(screenDataType = EncodeBuilder.SCREEN_DATA_TYPE.H264) .onH264 { buffer, isKeyFrame, width, height, ts -> if (!isCreateServer) { isCreateServer = true; _ptr = ZLMediaKit.createMedia("live", "test", width, height, 30f, 1000000) } else { val pts = System.currentTimeMillis(); if (_ptr != 0L) { val bytes = ByteArray(buffer.remaining()).apply { buffer.get(this) } val result = ZLMediaKit.pushVideoStream(_ptr, bytes, buffer.remaining(), pts, pts) println("录屏推流: $result") } } }.onStart { //用户同意采集,开始采集数据 }.start() } }
The text was updated successfully, but these errors were encountered:
打印log日志显示,调用mk_media_input_frame返回的结果一直都是1, 使用postman去查询,没有查到任务相应的视频流列表数据
Sorry, something went wrong.
看打印的日志,你的264的流貌似有问题
h264 frame 没有sps pps /I帧 导致zlm忽略了
2024-03-12 16:44:48.449 30968-31015/com.shd.ijkplayerdemo W/JNI: emitAllTrackReady Track not ready for a long time, ignored: H264
咨询一下,这是api调用出错么, 还是说h264 frame 没有sps pps /I帧导致的问题
No branches or pull requests
Android平台使用,根据 Android demo先把ZLMediaKit server运行启动起来,然后使用mk api 把录屏的H264视频流去推到本地的server,尝试了很久没有成功, 一直没有查到ZLMediaKit server有相应的视频流
下面是Android logcat反馈日志
下面是主要的代码片段
下面是Android调用代码
The text was updated successfully, but these errors were encountered: