-
-
Notifications
You must be signed in to change notification settings - Fork 371
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
Lost connectivity after successful connection #1229
Comments
It looks like the SFU stops answering ICE STUN requests after connection, which makes libjuice timeout as it implements ICE Consent freshness (RFC7675). The SFU probably has a broken ICE implementation. You can build libdatachannel with |
The issue still exists after I rebuild cmake -B build -DUSE_GNUTLS=0 -DUSE_NICE=0 -DCMAKE_BUILD_TYPE=Release -DOPENSSL_USE_STATIC_LIBS=1 \
-DDISABLE_CONSENT_FRESHNESS=1 -DOPENSSL_ROOT_DIR=/home/meonardo/Android/openssl \
-DCMAKE_TOOLCHAIN_FILE=/home/meonardo/Android/NDK/android-ndk-r25c/build/cmake/android.toolchain.cmake \
-DANDROID_ABI="arm64-v8a" -DANDROID_PLATFORM="android-21" -DCMAKE_INSTALL_PREFIX=$current_dir/build/install the
the |
The server might actually be going away. Have you set an |
Sorry for later response.
Yes, I already did, actually I was following the |
Hmm, the OBS code looks incorrect, it should be: auto audio_depacketizer = std::make_shared<rtc::OpusRtpDepacketizer>();
audio_depacketizer->addToChain(std::make_shared<rtc::RtcpReceivingSession>());
audio_track->setMediaHandler(audio_depacketizer); Otherwise, the RTCP session is not attached anywhere and simply ignored. @Sean-Der Are you aware of this? I remember discussing the media handler chain with you at some point. |
Thanks for you time, sadly, the issue still persisted, I have updated my code to: rtc::Description::Video videoMedia("1", rtc::Description::Direction::RecvOnly);
videoMedia.addH264Codec(96);
video_track_ = pc_->addTrack(videoMedia);
auto video_depacketizer = std::make_shared<rtc::H264RtpDepacketizer>();
auto video_session = std::make_shared<rtc::RtcpReceivingSession>();
video_depacketizer->addToChain(video_session);
video_track_->setMediaHandler(video_depacketizer);
video_track_->onFrame([&](const rtc::binary &msg, rtc::FrameInfo frame_info) {
OnVideoPacket(msg, frame_info);
});
pc_->setLocalDescription(); Here is a public test SFU server ZLMediaKit that I am testing for my WHEP client. |
This sounds similar to pion/webrtc#2767 Thank you @paullouisageneau I will fix that and send you the PR. I bet that will improve QoS a bit :) |
Thanks for your great work!
I am currently creating a WHEP client on Android to receive audio/video from a SFU server,
I have made to receive and decode the video in the
Track::onFrame()
callback , but its strange that after around 45s the peerconnection is closed, here is my log:libwebrtc
, no issue occured;libdatachannel
, works great.could you give me some advice? thanks.
The text was updated successfully, but these errors were encountered: