How to stream remote mp4 videos using apache and php - php

I have a laravel website on shared hosting and some videos on a cloud storage.
What do I need to hide direct links and stream videos on my website?
The videos are for sell and somebody might download them without paying. so every time that a user wants to see a video, I generate a random link and use it in video src. I generate random string and pass it to a function. The function finds video link and uses curl to get and play video (PHP stream remote video file) but it's not good enough. If it is possible to stream videos from another source, what do I need to do it right?
Do I need a streaming server? is apache good enough? what should I learn?

Related

How to use php and s3 to share private video that can't be downloaded?

I have a (php) website where teachers upload recordings of their class, and the students can log in and then play back the recording.
I want to make these videos more secure. Currently, the videos are stored on my server, and anyone with the url can download them. So, (1) I want to store them somewhere that can't be downloaded just using a url. And second, I need to stop them from right-clicking and saving the video as it is being played.
I'm trying to work this out with s3 but not getting it...
Is this possible? Does it need to use a special player? Does streaming the video help (can any video be streamed)?
I appreciate the help, I've spent many hours researching this and just getting more confused as I go along!
There are a couple of options you may wish to use.
1. Amazon CloudFront RTMP Distribution
Amazon CloudFront is a Content Distribution Network that caches content closer to users worldwide, in over 60 locations. It also has the ability to service Real-Time Media Playback (RTMP) protocols. This means that your web page could present a media player (eg JW Player, Flowplayer, or Adobe Flash) and CloudFront can serve the content.
See: Working with RTMP Distributions
CloudFront Distributions can also service private content. Your application can generate a URL that provides content for a limited period of time. The content is served via a media protocol, so the entire file cannot be easily downloaded.
See: Serving Private Content through CloudFront
2. Amazon S3 Pre-Signed URLs
By default, all objects in Amazon S3 are private. You can then add permissions so that people can access your objects. This can be done via:
Access Control List permissions on individual objects
A Bucket Policy (as per yours above)
IAM Users and Groups
A Pre-Signed URL
A Pre-Signed URL can be used to grant access to S3 objects as a way of "overriding" access controls. A normally private object can be accessed via a URL by appending an expiry time and signature. This is a great way to serve private content without requiring a web server.
Similar to the above example with CloudFront, your application can generate a URL that provides access to S3 content for a limited time period. Once the period expires, the Pre-Signed URL will no longer function. However, during the active period, people would be able to download the entire file, so this might not be advisable for video content you wish to protect.

How to upload videos to Vimeo programmatically in PHP?

I have a an input for uploading videos on my site. The videos get uploaded on my server and then it is presented via video tag. But as you can imagine, the user uploads only one video with one extension (e.g. mp4), in that case I can't use that video in all the browsers. So, maybe what I could do is upload the same video to vimeo (via their api) and then host this video via "iframe code" or something. My question is: Is it even possible? And is it a good idea?
This is definitely possible, you can and should use the Vimeo API: https://developer.vimeo.com/api
Also it is pretty a good idea, because Vimeo is suited to transcoding and serving millions of videos every day and by definition is way more stable than your own video service. Unless you are facing the legal requirement to host the video on your own server, it is probably better to use external CDN (like Vimeo) for it.
But you will have to use cURL or some other HTTP requests library to access the functions and perform tasks. Check it out here: http://php.net/manual/en/book.curl.php

Get YouTube audio stream on-the-fly

I am trying to get an audio stream (in mp3 format with fixed quality) from a YouTube video in PHP.
Notice that I cannot use FFMPEG and also i do not want to save the mp3 on my server, but I need only the audio stream (on the fly use).
Do you have any code or script? I have used many, but the half needs FFMPEG and the other saves the mp3 file in the server.
My plan is to hit on the browser:
http://host.com/process.php?url=<youtubeurl>
and get the audio stream in the page in variable that creating every time
&stream = ......;
It's not PHP, but we've open sourced a simple all-in-one node.js/CoffeeScript web app that can download a YouTube videos from a URL and then convert the video into an MP3 using ffmpeg.
github / demo / blog

PHP. Requirements. For creating a live video streaming

Our aim is to create a live video streaming site for each individual paid registered user only by php platform.
I need video camera to take videos and i want to know function flow.I dont know where i have to start.
What are all things needed? Especially live video uploading using ordinary video camera. I have found http://www.videowhisper.com/?p=PHP+Live+Streaming This is the site, i exactly needed. Unfortunately but its camera option only includes "webcam only". I would like input video camera instead of webcam.
I need suggestions for requirements to create the site.
I need to stream live video for each paid user. That includes flash player content.
Uploading and video control by admin side. Only live links is shared to customers.
i think it is nothing about PHP, but something about JAVA.
You can use Red5 as media server, and users watch videos via flash player. You also can take videos with flash.
Found an interesting link on it: http://en.wikipedia.org/wiki/Push_technology
And Symfony 2.1 is going to handle streamed responses: http://symfony.com/doc/current/components/http_foundation.html#streaming-a-response, but is not stable yet.

Flash player disable download of flv files

We have a video streaming website, and the company decided to make some of the video content paid.
So we built an authenticated area and finalized all the payment issues, and now we are down to the security part.
The videos have a .flv extension, and I want restrict their downloads.
I know restriction is kind of impossible for flash players and flv files, it's a client side issue, but the least to say I want to make it as long and complicated as possible for the videos to download.
There are alot of options for video download so I want a to disable the
Realplayer download,
Chrome and firefox extensions,
and any other way that can easily access the video.
My other option (very hard to go through again) to re-encode the original .mov to some other format that can be a bit more secure.
I am using the open source JWplayer.
I made it with 2 servers in one network. One of them is public server. I wrote small php media proxy, so the links to the media files go trough it (you can now to check where are requests from). The data server (with the media files) is with internal ip(not public) and if someone tries to get the media file directly, will fail.
I think this is good solution if you have own servers.
If you have only one server media proxy is good enough, but can be easly traced from man with good knoledge.

Categories