Best practice to store videos for site built on Outsystems platform.

Best practice to store videos for site built on Outsystems platform.

  

Good day

I have a task to create a help page to display short tutorial videos for an application being built on Outsystems platform for my company.

The videos cannot be hosted somewhere like Youtube/Vimeo as the application is in house and competitors should not be able to view.


What is the best practice to store the videos. Do I

1) Upload the MP4 files to a file location on the Outsystems platform (is this even doable?).

2) Convert the MP4 file to a varbinary and store it on a table in the Outsystems database. When the video were to be displayed, would I have to convert it back into a MP4 in a server action and place in a file location? Basically a longer version of step 1.

3) Store the MP4 files on another location outside of Outsystems and reference it the way the screenshot does?

Any other suggestions would be appreciated.

The parameter for SourceFile appears that it has to be a video file.

Regards

Jeremy.

Hi Jeremy, 

You can save videos filepath in DB, then play them directly from server. This way, you avoid to store and manage binary content.

Regards,

Marco Arede wrote:

Hi Jeremy, 

You can save videos filepath in DB, then play them directly from server. This way, you avoid to store and manage binary content.

Regards,

Good day Marco

When you say play directly from server, you mean store the mp4 files on the Outsystems server? Is it possible to have a file directory on the Outsystems platform to store the video files or do they have to be stored elsewhere?


Regards


Hi Jeremy,


The best is probably to look for external storage or providers where you can put your videos and have them private with your users.

There are many providers (even as a simple amazon S3 storage), but it will depend on your authentication requirements. Then, just storage a link for that external location.


Also, for example, you said that youtube is not a option, but if you have a corporate google it would be, since videos can be shared with just the company.
If I switch to my personal google account it doesn't let me see videos that are marked as shared to only OutSystems employees: https://www.screencast.com/t/8iBbyuiNjEch


Regards,
João Rosado

João,

What if you want to have them available off-line? This is especially a thing for mobile.

Jeremy Teemull wrote:

Good day Marco

When you say play directly from server, you mean store the mp4 files on the Outsystems server? Is it possible to have a file directory on the Outsystems platform to store the video files or do they have to be stored elsewhere?

Regards

Hi Jeremy,

Yes, files can be stored in application directory.

Add your videos as "resources", set property target directory to 'Video'. And in web screen use an expression, not escaped, to embed your player:

<embed src='Video\FILE.wmv' bgcolor='#FFFFFF' width='300' height='150' 
type='video/x-ms-wmv'>

Regards,

I don't recommend setting them as resources in the modules. That will make your module files very large and might even cause you to have problems opening/saving/uploading them in Service Studio.


I don't have any recommendation on what external providers are best, but that should be the way go. Even a simple S3 storage with temporary signed URLs should do the trick if there is no video provider available for the use case.


The right tool for the right job. Not just the easy way out, as that always end up biting in the end

For example it was mentioned the database as an option. Yes they might work ...but databases are already the hardest part to scale of an application. To me it sounds as an easy option, but it's what will cause more problems in the long term.


Regards,
João Rosado

Hi João,

I'm going to repeat myself, but what if you want videos available off-line on mobile?

For a mobile application you should probably store it on the device filesystem using some cordova plugins to achieve that. 

But again, I didn't do any research on the subject or implemented it in the past. So you should research on how that is usually done on a non-OutSystems application and then see how it can map to one.


Regards,

João Rosado

Thanks, we'll do that.

Take a look at the streamer, i think it does something like what you want.