Video Player Using Frames

Good day! With the up and coming full release of video frames in Roblox, this project will be redundant in the near future. However, I would still like to open-source this project for learning and inspirational purposes.

I have scripted a video player that uses manual frames that is oriented by an audio clip. It uses preloads to (you guessed it) preload frames that allow it a chance to fully load in.

To my knowledge, this is the first video player that works in public Roblox servers.

The main script is in ServerScriptService and its configurations are in a module script named “FilmData” parented to the main script.

image

How to use:

1) Convert your video into individual frames and extract the audio file. (Ensure that a numbering system for the images is present.)

2) Import your audio and all images into Roblox using Roblox’s bulk import.

Note: You can only upload up to 200 images in one bulk and around 400 images per day per account. I used alts to upload all my frames, this is to prevent the cooldown on uploading assets and any false moderation notices on my main account. This may take a few days.

3) Insert all necessary data into the module script.
Note: The fixed screen height can be configured in the main script, calculations for the screen width will be done for you based on the frame width and height information given.

Note: PreloadCount is the number of preload frames that will be used. Increase this if the FPS of the video is high.

Note: PlaybackSpeed can directly affect the speed of the video (since the frames play according to the audio position)
image

4) Depending on the software you use, you might have to change the format of how images are retrieved, you can alter this in a function located in the main script named “GetImageId”.

Note: If you do not know what you’re doing, you might need to read up on string manipulation or watch some youtube videos on it.

5) Providing that all information has been entered, all/most frames and audio has been uploaded successfully, your video should be playing fine.

I have this project currently running in this place.

I do not require crediting, but it would be nice to credit me if you plan on using this c:

Please do not hesitate to ask me any questions about this project or how to set it up. Have a good one!

Video Player Open Source.rbxl (29.6 KB)

13 Likes

Is this against the TOS? This is kinda circumventing Roblox’s typical system for this.

2 Likes

I don’t think so because all of the images would still be moderated, but I’m not one hundred percent sure.

3 Likes

Woah. This is epic! i wouldnt use videos tho (maybe)

1 Like

thanks man for this awesome open source project, i been looking this almost year

1 Like

Wouldn’t it be better to pack your video’s frame into a sprite sheet (or multiple if necessary) so that you can reduce the amount of textures you need to upload? From there, you can iterate through the sprite sheet and move on to the next one if one is available instead of doing a literal iteration through several hundreds of decals depending on what you’re attempting to upload.

@iamtryingtofindname What does that mean? What typical system and what is being circumvented? This is basically a sprite sheet without directly being one, not sure how this is against the Terms of Use. You should probably get a source and PM OP instead.

4 Likes

The image quality might decrease tho. If I’m not wrong, the image quality will decrease when its resolution is larger than 1024 X 1024. This means that the sprite sheet will contain very little frames (if you plan on preserving the image quality), making it an insignificant step.

But it’s definitely something I’ll look into and try to circumvent. Thank you!

4 Likes

by the way what app or website do you use to convert the video into each frame?

1 Like

That’s a fair point. I forgot that some images are compressed when they’re larger than a certain resolution. Thanks for pointing that out though! I just thought it might be an easier way to get this done to avoid uploading hundreds of decals and packing them into a module. :sweat_smile:

1 Like

I’m unable to link it here, but it’s a downloadable software named “Free Video to JPG Converter”.

This is what the website looks like.

Amazing! But have you seen this:

It doesn’t use any pictures!

I’d love to see someone try and recreate it

5 Likes

Something like that is possible to an extent using video frames. Although you would need to give each person joining the webm file to put into there local files in roblox so it has a valid path to play the video.

1 Like

Pretty sure it doesn’t work like that, it streams and projects the pixels (not actual images)

1 Like

Seems fun to figure out. I’ll definitely look into it.

I’ve never thought of using pixels before, I’ll give that a go.

1 Like

I’m a few days late, but no, using a gazillion images or spritesheets to make videos isn’t against ToS (infact, this has been in use since the ancient times for very rudimentary TVs/cinemas simply because there’s been no other way to have 2d animations until the very recent video update, and even then the video update is still technically a beta/not publically available to upload to)

1 Like

Keep in mind not to push the FPS above 30

1 Like

Hi! I joined on mobile but saw just a black screen?

That was after being in game for a minute and resetting my character because the GUI wouldn’t close :slight_smile:

2 Likes

roblox will be tired if a developer make a movie with images

1 Like

I’ve fixed it. Thank you so much for bringing this to my attention.