steveseguin / electroncapture

Playback video in a frameless electron app for screen-sharing and window capture
GNU General Public License v3.0
325 stars 37 forks source link

Force camera size/layout and/or amount of expected cameras in a room capture #61

Open Wiethoofd opened 3 years ago

Wiethoofd commented 3 years ago

When people join or leave a room the positions of the cameras change, or sometimes the amount of expected people don't all join a room, but the crops were already pre-set in OBS.

Example: For my ice e-hockey streams I am always expecting 6 player cameras and am set up with a single room per Electron Capture. Being able to force a 2x3 layout, even with only 2-4 players showing up would guarantee the camera crops of the display/window capture . Because currently when there's only 3 cameras they jump to the center, 2 go side by side, 4 is a 2x2 grid etc. Being able to force slots or a layout would help save time recropping cameras every time, or causing odd crops if a camera suddenly disconnects from the mobile users and also causes a reshuffle of the order until you use the director's panel to reorganize them or drag the cropped source in OBS around to match the correct location.

Wiethoofd commented 2 years ago

Saw in the v20 release notes there is a &slots parameter:

Added the &slots parameter, where you can pass a positive integer and it will force the auto-mixer to have that number of slots, even if there are more or less videos available to fill them.

This should achieve exactly what I need it to do, except that the mix order in the director does not allow for reordering in a &scene&slot=n view where this could still be required.

steveseguin commented 2 years ago

Wiethoofd, I pushed a patch for this issue to https://vdo.ninja/alpha/. It should allow mix-ordering as a director, but still allow the &slots=N parameter to work on scenes.

There was a bit of a conflict here with an unfinished &slot parameter that I was working, but that isn't yet released yet, so not a problem to strip out for now. &slot vs &slots is different; &slot was going to be like &order, but with a fixed position rather than order.

Anyways, I'll push things to github/production once I'm satisified the bugs are worked out and I've tested things enough. Let me know if there are problems with it

Wiethoofd commented 2 years ago

Mistyped slots as slot in the url where I had issues, didn't even know a &slot was planned/existed.

The /alpha url currently works with using the mix-order in the director view! However, I was basing the camera order of this image, but it currently looks like the slots are pushed in inverse order (highest value is the (top) most left one, lower further right). obsninja_slots

With a set amount of slots I would like to see that you can just assign an actual position with the mix order to a camera, that way you can have empty slots/gaps for a fixed layout.

e.g. 6 slots and 4 cameras, defaulting mix order to 0 or -1 still auto assigns, (not sure if negative values currently work) but forcing the order would allow you to populate slot 2, 4, 5 and 6 for the T tetris piece in a 2x3 grid.

Wiethoofd commented 2 years ago

Figured out that with the following json I can get the layout I want on https://vdo.ninja/mixer [{"x":0,"y":0,"w":33.3,"h":50},{"x":33.3,"y":0,"w":33.3,"h":50},{"x":66.6,"y":0,"w":33.3,"h":50},{"x":0,"y":50,"w":33.3,"h":50},{"x":33.3,"y":50,"w":33.3,"h":50},{"x":66.6,"y":50,"w":33.3,"h":50}]

However I can't seem to get a scene output from that, which I can use; only drag/drop camera IDs to the correct slots to the numbers in the layout I want, but nothing more than that.

This would be doing exactly what I want with &slots and forcing positions using mix order as I suggested above, so they stick to a single spot, regardless of people reconnecting or cameras dropping.

Wiethoofd commented 2 years ago

Watching the actual introduction video that came with the mixer announcement actually helped, but currently doesn't allow you yet to use the /mixer as a 'ghetto director' to take that over just yet, since the ?room and ?password aren't supported.

Should probably move discussion to this issue instead of here for the electron capture software, utilizing that custom built scene/layout, if not an actual issue thread dedicated to /mixer feedback.

steveseguin commented 2 years ago

@Wiethoofd The mixer is my next focus; I'm tying up some android and meshcast issues at the moment, but will work on the mixer more shortly. It's been requested quite a bit.