WebRTC player not working with the new Docker image 0.16.7
Allenille opened this issue · 1 comments
Describe the bug
I was evaluating the OvenMediaEngine solution to replace our Antmedia server and I was using the 0.16.6 Docker image for my tests and development. This morning when I deployed my local stack with the new OME 0.16.7 it appears that the WebRTC player was not able to work anymore.
I did not change the Server.xml but only changed the version of the Docker image and when I switch back to the previous version 0.16.6 everything is working fine.
I also tried to test the server through OvenRtcTester and it did not work either.
To Reproduce
Steps to reproduce the behavior:
- Set Server.xml as follows:
<?xml version="1.0" encoding="UTF-8"?>
<Server version="8">
<Name>OvenMediaEngine</Name>
<!-- Host type (origin/edge) -->
<Type>origin</Type>
<!-- Specify IP address to bind (* means all IPs) -->
<IP>*</IP>
<PrivacyProtection>false</PrivacyProtection>
<Modules>
<HTTP2>
<Enable>true</Enable>
</HTTP2>
</Modules>
<!-- Settings for the ports to bind -->
<Bind>
<Providers>
<RTMP>
<Port>1935</Port>
<WorkerCount>1</WorkerCount>
</RTMP>
</Providers>
<Publishers>
<WebRTC>
<Signalling>
<Port>3333</Port>
<TLSPort>3334</TLSPort>
<WorkerCount>1</WorkerCount>
</Signalling>
<IceCandidates>
<IceCandidate>*:10000-10004/udp</IceCandidate>
<!--
If you want to stream WebRTC over TCP, specify IP:Port for TURN server.
This uses the TURN protocol, which delivers the stream from the built-in TURN server to the player's TURN client over TCP.
For detailed information, refer https://airensoft.gitbook.io/ovenmediaengine/streaming/webrtc-publishing#webrtc-over-tcp
-->
<TcpRelay>*:3478</TcpRelay>
<!-- TcpForce is an option to force the use of TCP rather than UDP in WebRTC streaming. (You can omit ?transport=tcp accordingly.) If <TcpRelay> is not set, playback may fail. -->
<TcpForce>true</TcpForce>
<TcpRelayWorkerCount>1</TcpRelayWorkerCount>
</IceCandidates>
</WebRTC>
</Publishers>
</Bind>
<VirtualHosts>
<VirtualHost>
<Name>origin</Name>
<!--Distribution is a value that can be used when grouping the same vhost distributed across multiple servers. This value is output to the events log, so you can use it to aggregate statistics. -->
<Distribution>origin</Distribution>
<!-- Settings for multi ip/domain and TLS -->
<Host>
<Names>
<Name>*</Name>
</Names>
</Host>
<!-- Settings for applications -->
<Applications>
<Application>
<Name>app</Name>
<!-- Application type (live/vod) -->
<Type>live</Type>
<OutputProfiles>
<!-- Enable this configuration if you want to hardware acceleration using GPU -->
<HardwareAcceleration>false</HardwareAcceleration>
<OutputProfile>
<Name>bypass_stream</Name>
<OutputStreamName>${OriginStreamName}</OutputStreamName>
<Encodes>
<Audio>
<Bypass>true</Bypass>
</Audio>
<Video>
<Bypass>true</Bypass>
</Video>
<Audio>
<Codec>opus</Codec>
<Bitrate>128000</Bitrate>
<Samplerate>48000</Samplerate>
<Channel>2</Channel>
</Audio>
</Encodes>
</OutputProfile>
</OutputProfiles>
<Providers>
<RTMP />
</Providers>
<Publishers>
<AppWorkerCount>1</AppWorkerCount>
<StreamWorkerCount>8</StreamWorkerCount>
<WebRTC>
<Timeout>30000</Timeout>
<Rtx>false</Rtx>
<Ulpfec>false</Ulpfec>
<JitterBuffer>false</JitterBuffer>
</WebRTC>
</Publishers>
</Application>
</Applications>
</VirtualHost>
</VirtualHosts>
</Server>
Here is my docker compose file:
version: '3.6'
services:
origin:
build:
context: .
image: airensoft/ovenmediaengine:0.16.7
ports:
- "1935:1935/tcp" # RTMP Provider
- "3333:3333/tcp" # WebRTC Signaling / LLHLS
- "3478:3478/tcp" # WebRTC TURN
- "10000-10004:10000-10004/udp" # WebRTC Candidate
networks:
- omenet
restart: always
# Uncomment the following line to use your own configuration file (./origin_conf/Server.xml)
volumes:
- ./origin_conf:/opt/ovenmediaengine/bin/origin_conf
command: /opt/ovenmediaengine/bin/OvenMediaEngine -c origin_conf
ovenplayer:
image: airensoft/ovenplayerdemo:latest
networks:
- omenet
ports:
- 8090:80
networks:
omenet:
driver: bridge
- Then I use OBS with rtmp ; rtmp://localhost:1935/app with the stream key=stream
- Then I launch the player with ws://localhost:3333/app/stream
Logs
_single-server-origin-1_logs (1).txt
I also tried the new Docker image on a cloud VM and it did not work either :(
Thanks to you, I realized that my test code was included in the release of 0.16.7. I fixed it urgently and released 0.16.8. Our build system will upload the new docker shortly. Thanks.