[Studio Beta] Advanced Video API: Synchronize Video, Control 3D Audio, and More!

Hello Creators! :waving_hand:

Last year, we released an advanced Audio API which allows you to define how audio is created and processed in-experience by connecting powerful instances such as Wires and AudioListeners. Today, we bring to you the video equivalent with some added cherries on top!

The intent of this API is to give creators additional control and customization beyond what VideoFrame currently offers. We have no plans to deprecate VideoFrame at this time.

What’s New? :movie_camera:

There are two new instances:

  • VideoPlayer → where a video asset is specified and stored, as well as where playback functionalities reside
  • VideoDisplay → renders a video asset on a SurfaceGui, ScreenGui, or BillboardGui when connected to a VideoPlayer with a Wire

They are used in conjunction with Wires and other wireable instances (such as the AudioEmitter) to control, customize, and play videos.

With this API, you now have the power to…

  • :clapper_board: Synchronize Playback → Play one video on multiple surfaces in perfect sync, agnostic of the maximum video playback cap, with no impact to performance.

  • :speaker_high_volume: Control 3D Audio → Utilize AudioEmitters to position and customize the rolloff curves of a video’s audio track.

  • :headphone: Apply Audio Effects → Use wireable audio-processing effects on a video’s audio track for additional stylization.

  • :computer_disk: Manage Resources → Load and unload video resources from memory as needed.

  • :turtle: Customize Playback Speed → Play videos slooooooooowlyyyyyyy.

  • :artist_palette: Adjust Appearance → Alter a video’s color, transparency, and more to achieve desired effects. Parity with Decals and ImageLabels and Textures, oh my!

  • :television: Swap Surfaces Seamlessly → Easily move a video from one surface to another without interrupting playback.

  • :wrench: Preview in Studio → Play and test your videos directly in Studio edit mode for a more convenient workflow.

:books: For more information on how to use these new instances, we have this helpful documentation at your disposal:

Let us know! :speaking_head:

This feature is currently in Studio Beta and will not yet function in live experiences. If you encounter any bugs, issues, or have feature requests - please let us know! Feel free to tag @phri with your feedback. :smiling_face_with_sunglasses:

ICYMI, we mentioned upcoming plans to make video uploads more powerful and delightful earlier this year!


Many thanks to @whiterider15, @SneakyCannoneer, @grumpy_solar, and @ameddserM for their hard work on this featureset. Give ‘em a hearty :clap::clap::clap:.


FAQ :red_question_mark:

Q: Are VideoFrames or Sounds going to be deprecated?

A: No. There are no current plans to deprecate these instances. The advanced APIs are intended to offer additional customization for complex use cases, while VideoFrames and Sounds remain excellent solutions for simpler needs.

Q: Are there plans to make wiring easier to use, visualize, and debug?

A: Yes. Stay tuned!

Q: Does calling LoadAsync() on the server preload the video on all clients?

A: No. LoadAsync() on the server fetches video properties (such as TimeLength or Resolution) for the server, but it does not preload the video for clients. You must call LoadAsync() on the client to preload the video asset locally.

Q: Why can’t I hear my video when I wire it to an AudioEmitter?

A: An AudioListener is required in order to hear an AudioEmitter.

For play mode, be sure to set the DefaultListenerLocation on SoundService to “Camera” or “Character”.

For edit mode, you can leverage this plugin which will automatically create an AudioListener under the camera while in edit mode.

Q: Why can’t I find these new instances?

A: You must enable the “New Video API” beta under File → Beta Features and restart Studio.

Q: Is it possible to map a video onto a 3D object (e.g. MeshPart)?

A: Not yet, but this is something we are actively exploring. If this is a feature you would want, please let us know what it would enable you to create!

Q: Do video uploads support alpha channel?

A: Not yet, but we’re interested in supporting this. If there’s anything this would allow you to do that you cannot currently do, please let us know!

186 Likes

This topic was automatically opened after 10 minutes.

Wow this is actually insane, it feels like we just jumped a whole generation forward with video on roblox like being able to finally sync videos across multiple displays and pair them with 3D AUDIO EMITTERS is going to unlock so so many creative possibilities and I love the fact that we can wire this into audioemitters + audio listeners and apply effects that make it feel like a true production pipline inside of studio. Big thanks to the team for thinking ahead with things like resource management and playbackspeed and so on, this makes such a HUGE difference

31 Likes

50 milion roblox studio updates in 24 hours

32 Likes

Fr my notifications of new announcements has been going crazy today, fortunately mostly positive changes unlike 2 days ago…

2 Likes

Crazy how roblox is actively supporting video playback support on games. Devs of Maro’s streaming service will always be hyped about these updates

4 Likes

New Studio Beta I got! I want it so badly @phri :heart: Thanks for doing that!

4 Likes

So this allows 2 different videos to be played back in total at once, but more than 1 version of the video in a way? Really good beta honestly!

1 Like

This is really nice!, could we see that Manage Resources part expand to other things in ROBLOX? like audio or models, etc

i’m kinda curious: will there ever be support for 2D spritesheets? i feel like it would be REALLY, REALLY cool to have an official system for spritesheets, since developers will be able to make awesome things with them !

3 Likes

Yes and it’s better than nothing. Let’s hope they release more updates like this!

2 Likes

Ability to modify viewport frame image data pls? :folded_hands: :pleading_face:

This is incredible!! So excited to tinker around with this. I could make things like mirrors, security cameras, etc.

Q: Do video uploads support alpha channel?

A: Not yet, but we’re interested in supporting this. If there’s anything this would allow you to do that you cannot currently do, please let us know!

@phri Video uploads supporting transparency would be monumental for our game, Anime Card Clash.

We have around 300 card skills in the game. Each of these have 1-3 ~60 frame long animations. These are “videos” with transparent backgrounds over the cards. We have to represent these as PNGs and play them in sequence with a bunch of ImageLabels. As a result, we have around ~20,000 1024x1024 PNGs in our game!

Not only is this inefficient for memory and network, but it’s an absolute pain in the butt to upload, even with tools like Asphalt. Not only does it take a very, very long time, but we frequently have issues with moderation. We also have to deal with image flickering as it’s not reasonable for us to preload without imploding the client. Even if we preloaded necessary images before battles, there’s no way for us to tell Roblox we don’t need them anymore after.

Videos would be huge for us, but we can’t use them right now because of the alpha channel limitation. They’d let us upload assets quicker, cut down on the vast amount of files we have to manage, sync audio with our animations, decrease client memory usage, and save us time.

9 Likes

Amazing feature to kick off this month, plus the release notes? Someone has to give the engineers a raise

1 Like

This would allow FAR more customization for things like animated GUI icon interactions, loading screens, pairing with surfaceGUIs would allow you to prerender special effects that you want, without sacrificing performance to generate tons of particles in a scene.

2 Likes

Will the cap of 2 videos playing still exist? Or will it increase?

1 Like

This cap currently still exists; however, you can now put those two videos on many different surfaces rather than just two.

We’re currently investigating increasing the concurrent playback limit but cannot promise anything at this time.

5 Likes

Spectacular, limits were broken! Good announcement.

Any chance of the cost to upload videos going down? It’s awesome to see new features but I won’t even be able to use this one since I can’t afford to upload videos.

1 Like