Skip to content
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

"IVF signature mismatch" if fed with GStreamer VP8 stream #2622

Closed
neilyoung opened this issue Nov 23, 2023 · 6 comments
Closed

"IVF signature mismatch" if fed with GStreamer VP8 stream #2622

neilyoung opened this issue Nov 23, 2023 · 6 comments

Comments

@neilyoung
Copy link

Your environment.

  • Version: livekit-server, livekit-client
  • Browser: Chrome latest
  • Other Information - stacktraces, related issues, suggestions how to fix, links for us to have context

What did you do?

See livekit/livekit-cli#251

What did you expect?

Should work with VP8 input as it works with H.264

What happened?

I'm using livekit-server/livekit-cli and GStreamer. Publishing a H.264 stream into the room works fine, VP8 not. I suppose the a.m. and described error comes out of your code, since live-xxx relies on that.

As seen here

errSignatureMismatch = errors.New("IVF signature mismatch")

and here

https://github.com/pion/webrtc/blob/eed2bb2d3b9f204f9de1cd7e1046ca5d652778d2/pkg/media/ivfreader/ivfreader.go#L140C25-L140C47

the code expects some head in the VP8 payload. I'm not sure how to produce that using GStreamer. Any hint?

@neilyoung
Copy link
Author

The strange thing is: I can see the expected DKIF header, if I use an udpsink:

image

But not with a tcpserversink...

@Todilo
Copy link

Todilo commented Dec 27, 2023

Any progress on this. I face similar issue. I have tried two different vp9 encoded videos. One encoded myself using ffmpeg:

ffmpeg -i file_example_MP4_640_3MG.mp4 -c:v libvpx -b:v 1M output.webm

and one from example online:
https://base-n.de/webm/VP9%20Sample.html

@neilyoung
Copy link
Author

In my case it was sufficient to add the avmux_ivf element to the pipeline before feeding PION:

... vp8enc deadline=1 ! avmux_ivf ...

@Todilo
Copy link

Todilo commented Dec 27, 2023

Is this from gstreamer or where does that piping occur? I use the example "play-from-disk" which uses the ivfreader.NewWith which crashes

@neilyoung
Copy link
Author

Yes. Gstreamer

@neilyoung
Copy link
Author

That being said, this is not an issue anymore for me and I'm going to close that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants