Skip to content

New MoQ demos to test publishing/subscribing LOC with live capture/playback#27

Open
lminiero wants to merge 15 commits into
mainfrom
loc-demos
Open

New MoQ demos to test publishing/subscribing LOC with live capture/playback#27
lminiero wants to merge 15 commits into
mainfrom
loc-demos

Conversation

@lminiero
Copy link
Copy Markdown
Member

@lminiero lminiero commented May 25, 2026

The existing MoQ demos are quite basic, since the publisher is limited to a clone of moq-clock (publishing the current time as text), and the subscriber only prints some metadata associated to incoming objects. I wanted to start tinkering with live audio and video as well, and so I prepared a couple of new demos:

  • imquic-moq-loc-send captures the local webcam and/or microphone, and publishes them to an audio (Opus, via libopus) and/or video (H.264, via libavcodec) track using LOC;
  • imquic-moq-loc-recv, on the other end, can subscribe to those tracks, unpack LOC, decode the media and render audio and/or video locally using SDL2.

In both cases, I used the LOC property IDs that moq-encoder-player used a few months ago, as that's what I used to test my MoQ/WebRTC integration in Janus with that project. moq-encoder-player is (to my knowledge) still stuck to MoQT v14, so I couldn't make interop tests with Janus any longer: I verified that with these demos I can again, which means that, at least in theory, they should provide media streams what are WebCodecs compatible. Of course the plan is to update the usage of LOC to the latest versions, as soon as they're more stable and once I know there's other endpoints I can try some interop with.

Edit: this is arguably more of an implementation of moq-mi, as that's what moq-encoder-player used. The LOC specification itself changed quite a bit, now that I'm catching up, and will need some changes to the code both in the demos here and in the Janus MoQ integration.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant