目录
问题
方案
知识点
研究过程
源码编译的可能
按编译源码测试 2024-4-17
问题
所有 的机型 中,就海思芯片的有这个问题。应该是它的h264的编解码 问题,所以目前是让它以vp9在推流就没有问题。 但zlm对于vp9的录相是没有实现的。 所以目前现状是海思芯片的,就是点播没有问题(vp9),但录相是黑的。
方案
所以这个问题(1)要么我们把vp9实现了(2)要么能把海思的h264推流搞正常了
知识点
vp9 vp8
GitHub - Qiyun2014/WebRTC: H264、VP9 encode and decode example
研究过程
vp9在zlm里没有,且夏楚有
https://github.com/ZLMediaKit/ZLMediaKit/issues/2978
2024-04-03 10:23:11.318 I [MediaServer] [16-event poller 17] WebRtcTransport.cpp:1021 createRtpChannel | create rtp receiver of ssrc:2706276011, rid:, codec:H264
2024-04-03 10:23:11.318 D [MediaServer] [16-event poller 17] MediaSink.cpp:162 emitAllTrackReady | All track ready use 1212ms
2024-04-03 10:23:11.319 I [MediaServer] [16-event poller 17] MediaSource.cpp:517 emitEvent | 媒体注册:fmp4://__defaultVhost__/18c94c6c1f264593ad80d0f83c9bc16e/cs03Stream
2024-04-03 10:23:11.319 I [MediaServer] [16-event poller 17] MultiMediaSourceMuxer.cpp:555 onAllTrackReady | stream: rtc://10.30.2.8:6080/18c94c6c1f264593ad80d0f83c9bc16e/cs03Stream?app=18c94c6c1f264593ad80d0f83c9bc16e&stream=cs03Stream&type=push&session=1745-279 , codec info: H264[480/640/0] opus[48000/2/16]
2024-04-03 10:23:11.319 I [MediaServer] [16-event poller 17] MediaSource.cpp:517 emitEvent | 媒体注册:rtmp://__defaultVhost__/18c94c6c1f264593ad80d0f83c9bc16e/cs03Stream
2024-04-03 10:23:11.320 I [MediaServer] [16-event poller 17] MediaSource.cpp:517 emitEvent | 媒体注册:ts://__defaultVhost__/18c94c6c1f264593ad80d0f83c9bc16e/cs03Stream
2024-04-03 10:23:11.324 W [MediaServer] [16-event poller 17] SSLBox.cpp:195 operator() | SSL_CTX_set_verify callback, depth: 0 ,err: self signed certificate
2024-04-03 10:23:11.324 W [MediaServer] [16-event poller 17] SSLBox.cpp:195 operator() | SSL_CTX_set_verify callback, depth: 0 ,err: self signed certificate
Last message repeated 2 times
2024-04-03 10:23:11.356 W [MediaServer] [16-event poller 17] HlsMaker.cpp:100 inputData | Timestamp reduce: 1712110991738 -> 1712110991334
2024-04-03 10:23:12.094 W [MediaServer] [16-event poller 17] HlsMaker.cpp:100 inputData | Timestamp reduce: 1712110992435 -> 1712110991367
2024-04-03 10:23:13.626 W [MediaServer] [16-event poller 14] SSLBox.cpp:195 operator() | SSL_CTX_set_verify callback, depth: 0 ,err: self signed certificate
2024-04-03 10:23:14.075 I [MediaServer] [16-event poller 17] MediaSource.cpp:517 emitEvent | 媒体注册:hls://__defaultVhost__/18c94c6c1f264593ad80d0f83c9bc16e/cs03Stream
2024-04-03 10:23:14.079 W [MediaServer] [16-event poller 17] SSLBox.cpp:195 operator() | SSL_CTX_set_verify callback, depth: 0 ,err: self signed certificate
2024-04-03 10:23:20.595 W [MediaServer] [16-event poller 22] WebRtcSession.cpp:104 onError | 1750-185(10.60.100.196:65494) 1(end of file)
2024-04-03 10:23:23.627 W [MediaServer] [16-event poller 14] SSLBox.cpp:195 operator() | SSL_CTX_set_verify callback, depth: 0 ,err: self signed certificate
2024-04-03 10:23:33.627 W [MediaServer] [16-event poller 14] SSLBox.cpp:195 operator() | SSL_CTX_set_verify callback, depth: 0 ,err: self signed certificate
2024-04-03 10:23:41.194 W [MediaServer] [16-event poller 21] WebRtcSession.cpp:104 onError | 1756-267(192.168.18.3:64388) 2(webrtc connection timeout)
2024-04-03 10:23:41.194 W [MediaServer] [16-event poller 21] WebRtcSession.cpp:104 onError | 1755-198(169.167.123.119:64387) 2(webrtc connection timeout)
2024-04-03 10:23:41.195 I [MediaServer] [16-event poller 21] WebRtcTransport.cpp:1228 removeTuple | rBEABB9AH0A=_425 remove tuple 192.168.18.3:64388
2024-04-03 10:23:41.195 I [MediaServer] [16-event poller 21] WebRtcTransport.cpp:1228 removeTuple | rBEABB9AH0A=_425 remove tuple 169.167.123.119:64387
2024-04-03 10:23:43.627 W [MediaServer] [16-event poller 14] SSLBox.cpp:195 operator() | SSL_CTX_set_verify callback, depth: 0 ,err: self signed certificate
l: [HWA_CAM3]getAfObjectDistance get ANDROID_HW_AF_OBJECT_DISTANCD fail
_DISTANCD fail
https://blog.csdn.net/yeshennet/article/details/100147031 这个说海思的有点像
webrtcsdk/sdk/android/src/jni/video_decoder_wrapper.cc at kairtc-m122 · webrtcsdk/webrtcsdk · GitHub
作者的答复:
google-webrtc for Maven & Gradle - @com.infobip (mavenlibs.com)
源码编译的可能
WebRtc源码下载与编译(完整版)-CSDN博客
按编译源码测试 2024-4-17
【webrtc】源码下载与编译-CSDN博客
(1)aar原样的现象
海思芯片的手机,以vp9上传视频流,可以点播,但录制的时候没有图像,只有声音
(2) aar + 最新编译出来的aar中的so
直接点播后就死掉
(3) aar + 变更一行代码后编译出来的so
点播没死,但不能播放
(4) 最新的aar
报jdk版本不一致的问题
思路1:调整webrtc编译时的jdk的选择。测试过程中发现 很多非jdk的元素,可能是google作了处理,手动更换报错 比如java.chromium等文件的缺失等
思路 2: 直接调整 android studio ide的版本,主要思路如下
开发Android App,令人头疼的Android Studio、Gradle、JDK、Andrroid Gradle Plugin版本问题_android gradle版本-CSDN博客