Using PixelStreaming in UE Editor works like a charme, but after packaging, VP8/VP9 do not work anymore. I tracked it down to VideoEncoderSingleLayerVPX.cpp, which returns -7 (WEBRTC_VIDEO_CODEC_UNINITIALIZED) instead of 0 (WEBRTC_VIDEO_CODEC_OK) in FVideoEncoderSingleLayerVPX::InitEncode. This initialization error is not logged by default.
libvpx is stripped of libwebrtc 5414 (see Engine/Source/ThirdParty/WebRTC/WebRTC.Build.cs) by using Engine/Source/ThirdParty/libvpx
libvpx_fPIC.a is used for modular builds (Editor/Standalone). libvpx.a is used for Monolithic (packaged) builds. (see Engine/Source/ThirdParty/libvpx/libvpx.Build.cs)
I replaced the libs in Engine/Source/ThirdParty/WebRTC/5414/Lib/Linux/x86_64-unknown-linux-gnu/Release and it works! (except for Firefox)
Tested with UE 5.4.2, streaming within the UE Editor and after packaging, up to 3 clients simultaneously, VP8 and VP9, Brave, Chrome, Duckduckgo, and Firefox.
Mozilla Firefox 129.0 (64-bit) on Fedora and Android stops at ‘WEBRTC CONNECTION NEGOTIATED’. The console shows the error Uncaught (in promise) DOMException: Cannot set ICE candidate for level=0 mid=0: No such transceiver.
Thanks so much for testing this! I am very glad it works for you now!
Mozilla Firefox 129.0 (64-bit) on Fedora and Android stops at ‘WEBRTC CONNECTION NEGOTIATED’. The console shows the error Uncaught (in promise) DOMException: Cannot set ICE candidate for level=0 mid=0: No such transceiver.
Very curious. Are you certain you have this frontend change applied? #204