Does Amazon S3 support progressive download? I just want my videos start playing before its fully loaded.
I don't need real streaming yet.
Yes it does is the simple answer.
You'll need to encode your videos in a format that supports playback before the entire file is downloaded and your video player will need to support that too. But those requirements are no different from any other file server.
Related
one of the user of the app I work for has an issue, all the video she upload doesn't work in an HTML5 video player, except on Edge and Safari for iOS (and if it works there I assume it could work in other browsers)
The video can be played in our react-native app or after being downloaded, but not directly using the S3 or cloudfront link
Since the vieos from the other users work, I'm assuming it's related to encryption and S3 specifications, does anyone have met this problem and found a solution ?
EDIT: forgot to put a sample link
https://video-reetags.s3.eu-west-3.amazonaws.com/compressed/aed0a512a419334fe5d0c0c6fb4094a21610642052.mp4
Since the videos from the other users are working fine, I'm assuming it's related to encryption and/or S3 specifications...
No, the problem is not encryption or S3 server issues.
Your MP4 container has video in HEVC format (aka H.265), which is not supported in Chrome or Firefox. You should still be able to hear the sound part since AAC audio is supported.
Playing the video is possible with React-Native and other (native) video players because they rely on the O.S running the player App to decode video. If a browser brand didn't buy a license for HEVC then that browser cannot play it.
Solution:
Re-encode such videos to MP4 containing H.264 with AAC audio (...not H.265 with AAC).
Re-encoding takes time but it's the only way for now. Either the user does it before any uploading, or your own app accepts any file and re-encodes the "not supported" ones on server-side (eg: using FFmpeg or GStreamer tool).
So guys, how do I prevent users from downloading audio files on my web app (running springboot in backend) by accessing the s3 url !
I want to make it impossible to download the audio files in my website ! Any suggestions pls ?
I assume you mean that you want to make it impossible to download the audio files, but still allow streaming them for playback.
You can't.
If it can be played, it can be downloaded. Simple as that.
At best, you can sign your S3 URLs so that they expire after a short period of time. This gives you control over who accesses your audio files, and prevents them from showing up in searches, or linked to from other sites. You can also look into Encrypted Media Extensions, but it's not all that useful for audio since audio is trivially digitally captured on the output.
I am starting development on a project containing a web browser video streaming module.
I am seeking advice on whether a Red5 server will be useful or not required as I am new to the video streaming arena -
Users will upload video footage in all formats, .MOV .MPEG4 .AVI .WMV .MPEGPS .FLV .3GPP, and I need to allow other users to stream the videos youtube style (not live).
Thanks
Red5 would be useful for this, but only certain media formats are supported for Video on demand VOD streaming. Any other formats would need to be transcoded into flv or mp4.
I am trying to get my play 2.2.1 java application to upload video files to server.
i am using cloud-bees for hosting the application. i am not sure what is the correct way to do this.
what should be in the model only a string (path) to file location on server ?
or a #Lob with binary data if so how do i extract bin data from request ?
what is the common practice ?
can you show/direct me to java code snippets showing how to do this properly ?
What you don't specify is the place where you would like to store your video files. Be aware that for a multi-tenant service like CloudBees offers, the filesystem is not persistent. You have more information about this here.
For video storage you could use Amazon S3 or Youtube for example. For Amazon S3 you can read this article which explains you how to do it. You can look up for more examples on Internet. It is pretty straight forward, and as long as you create your bucket in Virginia (US) or Dublin (Europe), you will have low latency between your app and your file system.
I'm kind of new to cloudfront but have managed to get JWPlayer working rtmp for a .mov I put in a bucket connected to a streaming distribution. What I'm not sure about is that I've added 2 other .mov files to the same bucket and made them public both with the same permissions (Everyone: Open/View) however the player reports stream not found. Does it take a certain amount of time for the videos uploaded to become accessible via RTMP?
thanks
Using .mp4 (h.264) files fixed this issue for me.