bbc / brave

Basic Real-time AV Editor - allowing you to preview, mix, and route live audio and video streams on the cloud
Apache License 2.0
659 stars 148 forks source link

Split video inputs into a single Mixer #72

Closed dudusotero closed 10 months ago

dudusotero commented 4 years ago

It's possible to split the view with multiple video inputs in a mixer? With audio, we are able to hear all mixed audios at same time, but wirh videos, they are going in front of each other.

Someone has an idea of how I can put two or more videos side by side?

Here's my current config, to everyone who wants to try. (Just change to RTMP server).

default_mixer_height: 360
default_mixer_width: 640
enable_audio: true
enable_video: true
inputs:
- height: 360
  id: 5
  pattern: 18
  state: PLAYING
  type: test_video
  width: 640
- freq: 440
  id: 6
  state: PLAYING
  type: test_audio
  volume: 0.3
  wave: 3
- height: 360
  id: 7
  pattern: 1
  state: PLAYING
  type: test_video
  width: 640
- freq: 440
  id: 8
  state: PLAYING
  type: test_audio
  volume: 1.0
  wave: 8
mixers:
- height: 360
  id: 2
  pattern: 24
  sources:
  - in_mix: false
    uid: mixer3
  - in_mix: true
    uid: mixer4
  state: PLAYING
  type: mixer
  width: 640
- height: 360
  id: 3
  pattern: 0
  sources:
  - in_mix: false
    uid: input5
  - in_mix: false
    uid: input6
  - in_mix: false
    uid: mixer2
  state: PLAYING
  type: mixer
  width: 640
- height: 360
  id: 4
  pattern: 0
  sources:
  - in_mix: true
    uid: input7
  - in_mix: true
    uid: input8
  - in_mix: false
    uid: mixer2
  - in_mix: false
    uid: mixer3
  state: PLAYING
  type: mixer
  width: 640
outputs:
- height: 360
  id: 4
  source: mixer2
  state: PLAYING
  type: rtmp
  uri: {CHANGE HERE}
  width: 640
overlays:
- effect_name: vertigotv
  id: 1
  source: mixer4
  state: PLAYING
  type: effect
  visible: true
moschopsuk commented 3 years ago

Currently brave will only handle cutting to a source, it does not yet support picture in picture or side by side.

The underlying compositor we use does allow that but for our own needs we've not needed to address it.

PRs welcome 🙂