Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,17 @@ failover replaces the first relay's copy once that copy ends. It plays the
best video and audio its catalog lists, switches when the catalog changes, and
comes back on its own when the publisher restarts.

A broadcast source, a guest's included, plays on its publisher's timestamps,
so its sound and picture stay in sync through network jitter and stalls. Its
audio plays as far behind what arrives as the network's jitter needs, measured
as it goes, the same delay `moq play --delay auto` holds, up to 2 s. Each
picture waits for the sound stamped with it, and the canvas shows the last one
meanwhile. A sound stall longer than that delay pauses the picture too and
starts both again together; a picture stall leaves the sound playing. A burst
after a stall skips ahead to the delay. Without audio, the
picture plays 100 ms behind. Sources shows how far behind each broadcast
plays.

### Audio mixes

Audio from every source is mixed whether or not its scene is live. A
Expand All @@ -174,7 +185,9 @@ studio remembers for you rather than in the scene file. Use headphones: a
microphone that hears the speakers feeds the mix back into itself.

A source's **delay** holds it back in every mix, up to 2 s, so a microphone
lines up with a camera that lags it.
lines up with a camera that lags it. A broadcast's picture already follows its
sound, so its delay holds the sound back from its own picture: use it only for
a publisher whose sound leads their picture.

Each mix is advanced on the program clock, and each output reads its mix on
its own, so an output that falls behind skips ahead in its own audio rather
Expand Down
1 change: 0 additions & 1 deletion quest/m0/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ repository.
- [Studio on macOS with capture granted](/quest/m0/app-macos.md) - camera, screen, and audio capture run on a Mac, not only Linux
- [Studio on Windows](/quest/m0/app-windows.md) - the studio runs on Windows, not only Linux
- [Audio source tracks](/quest/m0/audio-source-tracks.md) - microphones and system audio get their own tracks, for isolated recording and replay
- [Broadcast sources play in sync](/quest/m0/broadcast-sync.md) - subscribed broadcasts and guests play audio and video on the publisher's timestamps, with `moq play`'s delay
- [Wayland display and window sources](/quest/m0/wayland-sources.md) - portal-picked sources that reopen without the picker
- [Keyframes](/quest/m0/animation.md) - keyframed item properties with easing, starting when their scene goes on program
- [Media file source](/quest/m0/media-file.md) - a local video or audio file plays as a source, looping or from the start on demand
Expand Down
34 changes: 0 additions & 34 deletions quest/m0/broadcast-sync.md

This file was deleted.

4 changes: 0 additions & 4 deletions quest/m0/sync-clap.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,3 @@ The studio sees a source's audio only through its strip's level meter, read
once a frame, which is too coarse to time a clap. Timing it needs the
source's samples, or an onset, with their position on the bus clock, which is
moq-audio work: land it there first and pin it.

## Related

- [Broadcast sources play in sync](/quest/m0/broadcast-sync.md) - broadcast sources align on the publisher's timestamps instead
1 change: 1 addition & 0 deletions rs/moq-scene/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ mod edit;
mod effect;
mod lut;
mod overlay;
mod playout;
pub mod publish;
pub mod replay;
mod scale;
Expand Down
Loading