Playback on TV in studio

Hi there! I love to use MimoLive for al my media playback during live-stream productions. However, I can’t find a way to output the playback on an external TV within the studio. The only way is to open a second MimoLive instance, and Syphon all playback layers to it. The problem that remains, is that usually after playback, I like to display a still on the TV, while obviously within the live-stream I want to display my camera’s.

How do you use TV’s on set for media playback? Without excluding certain layers for full-screen output, I think this is impossibile to achieve within MimoLive, right? I used qLab last weekend, but I prefer using MimoLive for this, as the transitions are way more smooth and require less setup.

Are you trying to feed the program out to these external monitors or are you trying to feed pre program out feed to the monitors?

I’m not sure what you mean with “pre program”, but I try to send only my media playback layers to an external monitor. I’ve had 3 major productions over the last 3 weeks, and all of them required a television within the studio with media playback presented on it.

In short, I want to play a media file, show it on the television first, and then after a few seconds display it full-screen.

I am currently testing Pro Presenter 7 and Pro Video Player 3 for media playback. Almost all of my clients want a television on the set for their media, and I think it’s just not possibile with MimoLive. I know I can output single media files directly to a full-screen, but media playlists are not a selectable option. Plus it’s quite the hassle to switch this all the time.

I believe I understand what you are trying to do…
Basically you’d like to trigger playback of a media file to an external monitor output. Then once that has played thru to the external monitor, replay that same file on a different output at your discretion. Do I have that correctly? If so, I think it may be possible to get that result.

Within the source repository, locate your media file or sequence… Select if you want to play thru once, play thru and freeze frame, or I forget what the 3d option is…

Now on your output destination you will need to set a new output that will feed your monitors(blackmagic mini mon or something similar, or full screen output selected on a screen connected to your machine… if you have multiple screens on your machine you may be able to use a screen to loop out of and distribute your playback signal).

Then add your media playback layer. Within the layer you can control playback without it going live which will control the playback to the external monitors. So when are you done playing it pre program, then you can just hit live to show it on program out as normal. Currently it looks like you can assign an audio output for a single media file in the source repository for your media playback for your external monitors. A sequence however, doesn’t seem to allow you at assign an audio output.

Nonetheless, I think this what you are trying to do and forgive me if I totally mis understood you.

First of all, thank you for trying to figure this out with me. It’s highly appreciated!

Yes, I like to playback media on an external screen before switching it live in my program out. It does not necessarily need to play it once, as the external screen is not for monitoring purposes. The external screen I’m talking about, is a 55" television that’s on the set in the studio, next to the host. When nothing is being played, I want to display a still (usually the logo of the organisation). When there is a video that I need to play, I like to display it on this television first for like 5 seconds, and then switch over to full-screen.

I tried your idea, and this is very helpful for monitoring, as you can just preview the file before it goes live. However, I just want to trigger playback of media and output it to the television for 5 seconds, after I switch it full-screen. This is not possibile within MimoLive, and if it is, it’s probably a hassle because it’s not possibile to visually exclude layers from a certain output. In VMix, you can set an external output, but also disable certain layers if they are not applicable to that output. In this case, I would disable my camera inputs and all visuals, als the media is only relevant to the television.

Thanks again for helping out!

Ok, so I attempted to follow your flow on our system and I think I now understand what you want to do.

Keeping in mind with my previous suggestion. A pathway to what you want to achieve is to use a combination of the automation layer, video switcher & placer layers(for your separate media files).

Layer in order of placement top to bottom, they don’t have to be sequential:
Automation
Video Switcher
Placers(media file)

Now this next step is up to you, you could set up one destination output with a media file selected from source which you would switch between playbacks and the output is set off or you can have multiple destination outputs for each media file you want to playback. (The output would be set exactly the same to your external tv feed.)

Your video switcher will be on current selected camera shot. The last slot in the video switcher shows any live layer below the video switcher layer.

So your media file layers that are below your video switcher would feed into the switcher when activated.

The idea here is when you click live on the media layer that you want to show a few things can happen:

1- Upon clicking live, the automation layer can detect that this layer is live using the while block and some scripting on the automation layer based on the api. When its live, you can tell the automation layer to turn on the output to your television feed and the layer would play out to the feed.

2-Now that this layer is live, it will feed into the video switcher above it.

3-As soon as the layer goes live, you can tell the automation layer to wait 5 seconds & automate the video switcher to make an edit cut/dissolve to the shot that is receiving video from below.

If you set your original media file source to play once and freeze frame, that last frame will freeze like a still image. Then when you are done with the playback you can can automate turning off the external video feed and swap out the media file on the destination output and on the media file layer if you decide to use one layer or you can turn it off manually.

If you don’t want to swap out each time, then you can create multiple media file layers corresponding to multiple output destinations all feeding the same tv feed. Then in your automation script add checks to see if any of these layers are live and if so turn on the output destination corresponding to that media layer and switch to that cut in the video switcher in 5s… and then let it freeze frame when it’s done. I’ve tried this out manually and it does work. With the automation layer all of this is possible.

I actually posted a solution on how to automate video switcher edits at this post: Automation: How to automate video switching

The automation layer is very powerful once you get the hang of it.

1 Like

So, I did what you suggested, and I was not dissapointed! Honestly, I completely forgot about the “Video Switcher” layer ever sinced I moved to hardware solutions.

I took a slightly different approach than you suggested, but your tips were very helpful in the process.

I’ve currently set it up as follows. The program out of my hardware switcher will be assigned to the first source of the “Video Switcher” (currently placeholder A). As usually, on top of this I will add visuals like lower thirds and other graphics. Underneath, there is a still image that’s being displayed on the television in the studio when there is no media being played back. On top of that layer, there is a “Placer” with different variants, which will include all necessary media playback files.

All the layers below the "Video “Switcher” are Syphoned to another MimoLive instance. By doing this, I don’t have to worry about switing the output of the television screen too often, plus I can use a still when there is no media playback. I also use this MimoLive instance to display the Multiview of the “Video Switcher” layer (which you can enable by clicking “Transmit Preview” in the settings of the layer). I can either output this “Fullscreen” or via “NDI”.

So now to the automation layer. It’s indeed a very powerful tool! I made the following script and added some explanation to it. In general, it loops until any of the media “Placer” varients is live, and then waits until it’s off again. If you have any feedback on the following code, feel free to share it! I monitored the CPU for a while, but it seems not to heavy performance wise.

loop()
// loop to check if the media placer is on
loop()

// triggered if the "placer" containing the video playback files is set on
ifLayerIsOn (39CD9D58-96DD-4421-8E34-D3757A4AF0CE)
	// sleep 2 seconds for a natural transition
	sleep(2)
	// disolve to layers below in the "Video Switcher" layer
	httpRequest(http://127.0.0.1:8989/api/v1/documents/274594760/layers/C495BCE6-FD13-4CB8-A3F6-266A73B31197/signals/tvGroup_Control__Dis_Below_TypeSignal)
	// break out of the current loop
	break
endif
endloop

// loop to check when the media placer is toggled off
loop()

// triggered if the "placer" containing the video playback files is set off, which is automatically since the mode is set to "Play Once"
ifLayerIsOff(39CD9D58-96DD-4421-8E34-D3757A4AF0CE)
	// break out of the current loop
	break
endif
endloop

// Cut to main camera in the "Video Switcher" layer
httpRequest(http://127.0.0.1:8989/api/v1/documents/274594760/layers/C495BCE6-FD13-4CB8-A3F6-266A73B31197/signals/tvGroup_Control__Dis_1_TypeSignal)

endloop

We’ve done exactly this setup for another user a couple of weeks ago.

Here is how I would do it:

  • Create one mimoLive document for the media to be sent to the TV screen.
  • Put a Syphon Sender layer into the document to be able to send it to a second mimoLive document used for video production/streaming.
  • Get LoopBack from Rogue Amoeba to be able to route the audio from the TV screen document to the video production document by creating a virtual audio device that you can set in one document for audio out and the other document as an audio source.

Now you can play stuff on the studio tv and listen to the sound and cut to it any time in the video production document.

You can also set up the automation layer to start the media in the TV screen document and switch to it in the production document after a preset time.

1 Like

Thank you for sharing your approach Oliver. I prefer however to have all my media files in my main MimoLive document, instead of using a seperate document for playback. In the setup I mentioned above, I am able to playback media in my main document and send it to the television screen via another document.

@Hindrik Happy to hear you found a solution for your use case! I like your approach and of course there are multiple ways to get the same result. @Oliver_Boinx we actually use Loopback pretty heavily so we can host a physical live event (music events) while also streaming and recording multi channel audio quicktimes to hyperdecks. So we create multiple virtual audio routes to get the result we want. Such a powerful app.

Would it be possible for MimoLive to integrate the function to exclude certain layers per output, either full-screen or SDI. ProPresenter has a similar function, where you can disable certain layer styles. That is super powerful.

@Hindrik - I’m the other user @Oliver_Boinx mentioned. I don’t have a lot of media in the second document, just 3 video files. Just wanted to let you know the setup he mentioned is working.

2 Likes

Thanks for the feature request. There is a feature on the list that would allow you to pick any place in the layer stack to output to the output destinations. Excluding random layers is a nice idea but currently impossible to implement.