Comments (9)
Pinging @danjenkins as he may know who to nudge about that.
from simple-whip-client.
I pushed a commit to enable HTTP debugging, if you want to make more tests. Adding something like -H body
to the command line will debug requests and responses on the console.
from simple-whip-client.
In my case the profile-level-id was there, just not one they'd like maybe
a=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0LAFdoFB+wFqDAwNSgAAAMACAAAAwHkeLF1,aM48gA==;profile-level-id=42c015;level-asymmetry-allowed=1
from simple-whip-client.
I don't know how I'm supposed to test this. I see a static endpoint, but for tokens it says Twitch Stream Key
: does this mean I should have an account or something like that?
from simple-whip-client.
I don't know how I'm supposed to test this. I see a static endpoint, but for tokens it says
Twitch Stream Key
: does this mean I should have an account or something like that?
Yeah you need an account (which is free), here is what I tested (after adding some args in the dockerfile):
tmatth@bellini:/big-repos/simple-whip-client$ docker run -it --rm simple-whip-client
--------------------
Simple WHIP client
------------------
WHIP endpoint: https://g.webrtc.live-video.net:4443/v2/offer
Bearer Token: <TWITCH_STREAM_KEY>
Trickle ICE: no (candidates in SDP offer)
Auto STUN/TURN: no
STUN server: stun://stun.l.google.com:19302
TURN server: (none)
Audio pipeline: audiotestsrc is-live=true wave=red-noise ! audioconvert ! audioresample ! queue ! opusenc ! rtpopuspay pt=100 ssrc=1 ! queue ! application/x-rtp,media=audio,encoding-name=OPUS,payload=100
Video pipeline: videotestsrc is-live=true pattern=ball ! videoconvert ! queue ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay config-interval=1 pt=96 ssrc=2 ! queue ! application/x-rtp,media=video,encoding-name=H264,payload=96
[WHIP] Initializing the GStreamer pipeline:
webrtcbin name=sendonly bundle-policy=3 stun-server=stun://stun.l.google.com:19302 videotestsrc is-live=true pattern=ball ! videoconvert ! queue ! x264enc speed-preset=ultrafast tune=zerolatency ! rtph264pay config-interval=1 pt=96 ssrc=2 ! queue ! application/x-rtp,media=video,encoding-name=H264,payload=96 ! sendonly. audiotestsrc is-live=true wave=red-noise ! audioconvert ! audioresample ! queue ! opusenc ! rtpopuspay pt=100 ssrc=1 ! queue ! application/x-rtp,media=audio,encoding-name=OPUS,payload=100 ! sendonly.
[WHIP] Configured jitter-buffer size (latency) for PeerConnection to 200ms
[WHIP] Starting the GStreamer pipeline
[WHIP] Creating offer
[WHIP] Offer created
[WHIP] Setting local description
[WHIP] ICE gathering started...
[WHIP] ICE gathering completed
[WHIP] Sending SDP offer (1291 bytes)
[ERR] [src/whip-client.c:whip_connect:729] [400] Bad Request
[WHIP] Disconnecting from server (HTTP error)
[WHIP] GStreamer pipeline stopped
Bye!
from simple-whip-client.
Yeah you need an account (which is free)
Created one but god the settings are so annoying. Just to create a stream I have to go through a 1000 hoops, pick a category I don't want to pick, can't make it private or unlisted who knows why. I have zero interest in giving this a go, to be honest. 400 means the server doesn't like something we send, and there's no way for me to know what just by guessing. Hopefully someone with Twitch knowledge will chime in and tell me what to fix.
from simple-whip-client.
I enabled libsoup3 debugging, which shows this:
< HTTP/1.1 400 Bad Request
< Soup-Debug-Timestamp: 1709915007
< Soup-Debug: SoupMessage 1 (0x7f471c101c90)
< Access-Control-Allow-Headers: Content-Type, Authorization
< Access-Control-Allow-Origin: *
< Date: Fri, 08 Mar 2024 16:23:27 GMT
< Content-Length: 98
< Content-Type: text/plain; charset=utf-8
<
< failed to handle offer: failed to create broadcast session: h264 codec is missing in the SDP offer
Apparently it doesn't like the way H.264 is negotiated.
from simple-whip-client.
I pushed a commit to enable HTTP debugging, if you want to make more tests. Adding something like
-H body
to the command line will debug requests and responses on the console.
My guess is something like missing profile-level-id here:
a=fmtp:96 packetization-mode=1;sprop-parameter-sets=Z0LAFdoFB+wFqDAwNSgAAAMACAAAAwHkeLF1,aM48gA==
vs. the functional version in OBS
a=fmtp:96 profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1
If I can confirm this is just a gstreamer issue hopefully I can fix it in the dockerfile and close.
from simple-whip-client.
I haven't followed: has this been fixed by Twitch in the meanwhile?
from simple-whip-client.
Related Issues (11)
- Support for STUN/TURN autoconfiguration via Link headers
- example of playing a mp4 file in a loop -- need help HOT 3
- Add an option to disable colors HOT 1
- No smooth video when using simple-whip-client and Millicast HOT 2
- Dockerfile libsoup-ERROR **: 03:12:25.949: libsoup2 symbols detected. Using libsoup2 and libsoup3 in the same process is not supported. HOT 3
- Make error HOT 2
- ICE failed - PeerConnection failed HOT 1
- Cjillo retrying issue HOT 1
- Using libsoup2 and libsoup3 in the same process is not supported HOT 2
- Error creating GUPnP context: Failed to bind socketError binding to address 10.10.10.122:1990: Cannot assign requested address
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from simple-whip-client.