steveseguin / vdo.ninja

VDO.Ninja is a powerful tool that lets you bring remote video feeds into OBS or other studio software via WebRTC.
https://vdo.ninja
Other
2.85k stars 813 forks source link

More options for iFrames #490

Open azyrr opened 4 years ago

azyrr commented 4 years ago

ISSUE: Not enough options in iFrames to completely re-brand obs.ninja

It would be great if we could have the option to format what's inside the iFrame. While there's always the option to use the lang to select a language it would still be useful to be able to overwrite the text, and even format it with different fonts.

Here's a basic list on what would improve the experience by a large margin for re-branding purposes ;

The end result?

This would be a gigantic step towards completely customizing and branding the default UI for OBS ninja without having to deploy it to a different server.

steveseguin commented 4 years ago

Thank you for the feature request.

What text are we talking about? is the text contained within the language options good enough? ie: pass custom language files?

Would passing custom CSS files help? or at least linking to them?

what elements would you want disabled?

azyrr commented 4 years ago

Thank you for the feature request.

No, thank YOU for all that you've done, this is divine work.

What text are we talking about? is the text contained within the language options good enough? ie: pass custom language files?

Well, for translation purposes; yes - of course. But having the option to actually change the instructions would be helpful to enable "directors" having a much easier time setting things up. For example, being able to change "Join Room with Camera" to "Join the Backstage for the Show" from time to time would help clear things up for people not used to all of ""this" :)

Would passing custom CSS files help? or at least linking to them?

Yep, would be a huge step forward.

what elements would you want disabled?

While I believe these all have their uses, when trying to create a simple environment for non tech savvy guests, eliminating these can help a lot.

Thanks again!

steveseguin commented 4 years ago

Another user request was access to the actual video elements, but also the ability to customize the mixer. This might be possible via the IFRAME API.

They want to be able to float videos to the top left or left at least.

Well, I'll tinker with this; might allow for CSS injection as a solution and some sample code to start.

steveseguin commented 4 years ago

Pretty crude, but I hacked in some more IFRAME API options. It should allow for a lot of control over video elements and their arrangement/style.

I'll need to clean up the iFRAME API and documentation in the long term, as it's really just quickly added in. Names given for API functions aren't the more thought out. https://obs.ninja/beta/iframe

steveseguin commented 4 years ago

image Sample code is on the iframe page; it's not great, but it should get the job done.

Also added a way to change the text / innerHTML of objects.

var button = document.createElement("button");
button.innerHTML = "Change Add Camera text";
button.onclick = function(){iframe.contentWindow.postMessage({"function":"changeHTML", "target":"add_camera", "value":"NEW CAMERA TEXT"}, '*');};  // change text of add camera button
iframeContainer.appendChild(button);

target is the HTML element ID; value is the text/html you want to set