Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

[New feature] WHIP #1043

Closed
getroot opened this issue Feb 24, 2023 · 4 comments
Closed

[New feature] WHIP #1043

getroot opened this issue Feb 24, 2023 · 4 comments

Comments

@getroot
Copy link
Member

getroot commented Feb 24, 2023

OME can now ingest streams from WHIP clients. You can test with master branch.

Using the development version of OBS is the easiest way to test the WHIP client. Download Artifacts from the URL below.

https://github.com/obsproject/obs-studio/actions/runs/3969201209

The URL format for WHIP ingest in OME is as follows:

http[s]://host[:port]/app name/stream name?direction=whip

image

image

This allows you to play live streams with End-to-End 3-5 frame latency. (About 120 ms to 150 ms)
If the latency occurs for about 1 second, it helps me to completely close OBS and relaunch it and try again.

image

As in the example below, if only WebRTC Provider is enabled in Server.xml, WHIP is automatically enabled. (The existing OME signaling protocol (?direction=send) is of course also supported at the same time.)

<?xml version="1.0" encoding="UTF-8"?>
<Server version="8">
	<Name>OvenMediaEngine</Name>
	...
	<Bind>
		<Providers>
			...
			<WebRTC>
				<Signalling>
					<Port>13333</Port>
					<TLSPort>13334</TLSPort>
					<WorkerCount>1</WorkerCount>
				</Signalling>
				<IceCandidates>
					<IceCandidate>192.168.0.160:10000/udp</IceCandidate>
					<TcpRelay>192.168.0.150:3478</TcpRelay>
					<TcpForce>false</TcpForce>
					<TcpRelayWorkerCount>1</TcpRelayWorkerCount>
				</IceCandidates>
			</WebRTC>
		</Providers>
		...
	</Bind>

	<VirtualHosts>
		<VirtualHost>
			...
          
			<Applications>
				<Application>
					<Name>app</Name>
					<Type>live</Type>
					...
					<Providers>    
						<WebRTC>
							<Timeout>30000</Timeout>
							<CrossDomains>
								<Url>*</Url>
							</CrossDomains>
						</WebRTC>
					</Providers>
					...
@mpisat
Copy link

mpisat commented Mar 1, 2023

I'm glad you're on board with WHIP project. I hope someone pays attention to your WebRTC comments on the obsproject/obs-studio#7926

@Baw-Appie
Copy link
Contributor

WHIP does not trigger AdmissionWebhook. Will this feature be added soon?

@getroot
Copy link
Member Author

getroot commented Mar 2, 2023

@Baw-Appie I haven't linked webhooks and signedpolicy to WHIP yet. I will develop it.

@getroot
Copy link
Member Author

getroot commented Mar 2, 2023

[Known Issues with OBS WHIP]

[1]
The current version of OBS WHIP may not work well when multiple candidates are provided. Therefore, it is recommended to specify the server IP as shown below.

obsproject/obs-studio#7926 (comment)

<Providers>
    <WebRTC>
          <Signalling>
	          <Port>13333</Port>
	          <TLSPort>13334</TLSPort>
	          <WorkerCount>1</WorkerCount>
          </Signalling>
          <IceCandidates>
	          <IceCandidate>192.168.0.160:12000/udp</IceCandidate>
	          <TcpRelay>192.168.0.160:3478</TcpRelay>
	          <TcpForce>false</TcpForce>
	          <TcpRelayWorkerCount>1</TcpRelayWorkerCount>
          </IceCandidates>
   </WebRTC>

[2]
WHIP RFC has a standard for passing TURN server information, but the current version of OBS WHIP does not seem to support it yet. Therefore, when working with OBS WHIP, OME's TcpRelay does not work, only IceCandidate(UDP) is used.

obsproject/obs-studio#7926 (comment)

@AirenSoft AirenSoft locked and limited conversation to collaborators Mar 9, 2023
@getroot getroot converted this issue into discussion #1063 Mar 9, 2023
@getroot getroot unpinned this issue Mar 9, 2023

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

No branches or pull requests

3 participants