I have tried a lot of things out there: red5, jquery webcam, html5 ... but none of these solution record a video and leave it ready to upload to a server.
Is there anyway (html5, flash, whatever ... the better cross-broswer solution, the best) to upload video (+ audio!) and upload the result to a server (I guess through AJAX) ?
Summarize:
jQueryWebcam (https://github.com/infusion/jQuery-webcam): it has flash video, uploads to a server image, not a video
Eric Bidelman's solution (http://ericbidelman.tumblr.com/post/31486670538/creating-webm-video-from-getusermedia):records video in html5 and allows you to download (so you can upload
to a server), but no audio !
Red5 (http://www.red5-recorder.com/services.php): paid services, not
uploading in free version :(
DMV (https://github.com/rwldrn/dmv): it just captures a photo ... besides not cross-browser
I have developed video recording solutions for the better part of the last 5 years and contributed a lot to fixing video recording bugs in Red5.
There are currently 2 production ready technical solutions for recording audio and video on the web. One for desktop and one for mobile.
On desktop you will need a Flash application that sits embedded in a web page, captures the visitors webcam and mic, encodes the raw video and audio data and streams it as it is recorded (through rtmp) to a media server.
You have at least 3 options for the media server:
Red5 is free and open source (btw. recording works out of the box in Red5)
Wowza ($65/month)
Adobe Media Server Pro ($4500)
The media server receives (again through streaming/rtmp not through http) the data and, depending on the codec used on the client, saves it to mp4, flv or f4v files.
This Flash client + media server recording process - which has worked pretty well since Flash Player 6 in 2002 - will most likely replaced by the HTML5 alternative named MediaStream Recorder (not yet implemented fully by any browser).
On mobile you can use HTML Media Capture (explained here with screenshots) to record video using the device's native video recording app and codecs. HTML Media Capture records locally (on the device) and then you upload (normal HTTP upload process) the file to the web server.
A commercial solution that implements both (Flash client + media server on desktop and HTML Media Capture on mobile) is HDFVR.
You could use something like binary download via javascript.
Here is one example
As you have not much info about video protocols i cant give you better answer
you can try this library, RecordRTC. It generates a blob file to put in video source and you can upload this file later to your server.
RecordRTC Library
This library is a container for other libraries, like Whammy for video, Recorderjs for audio and jsGif for gifs.
You can use Whammy library for record videos too:
Whammy
Related
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.
I want to create a web application (I am quite good with PHP) that captures webcam shots every 1 minute from different persons that open the application page and sends it via smthng to the web/ftp server.
I mean PC1, PC2 and PC3 opens the web aplication, their webcam it's opened and it captures images every 1 minute so PCSERVER should be able to see the persons behind the webcam "realtime".
I read about Flash Video Server (hope I am quite around the words) but it's purchasable solution and I want to redistribute the application freely.
Any ideas how should I do this?
EDIT:
If I am required to learn another programming language such as ActionScript, I don't mind, but if I am going to learn that, it should resolve my problem.
For video capture and video sharing, you need something like Adobe's Flash Media Server or the open source alternative Red5, that Johni mentions, but since you say you only need "shots every minute", not video, it could also be done without a streaming media server, only the Flash based client and PHP on the server.
What you could do instead of video is capture bitmap images from the web camera, using Flash/ActionScript, encode that bitmap image as JPEG or PNG and upload the image to the server by POSTing it to a PHP page.
It would require more code that fits in a SO Q&A, but you can easily find examples for the different steps of the process - access the web cam - get bitmap image - encode bitmap - POST encoded image top PHP from ActionScript.
The Red5 Media Server is a good open source alternative to the Flash Media Server:
http://red5.org/
It is programmed in Java.
Background:
I have a site that deals with large video files (sports videos). The site allows users to upload any source file, but most of the videos come from DVDs. I am currently using a modified version of jumploader to encode and upload files to the webserver with an HTTP request. The jumploader is a java client, and looking at my webstats, only about 75% of my users have java installed.
What I want:
I have looked for a flash based uploader that transfers a byte stream to a server. Byte streams would be ideal so I can capture partial videos for failed uploads. I have also looked for flash-based ftp clients, but I haven't found anything promising. There are some flash-based uploaders that post via HTTP, and I'm considering this. I do not want to use a simple file post. Some upload methods also put the full file into memory first, and this obviously is not an option for me.
Does anyone have experience uploading large (up to 2-3GB) files to a web (or ftp) server from a web frontend (PHP) with any reliability?
as a flash based solution you can use swfupload, which is widely used because you can display a progress bar. It sends answers back to you which you can read with JavaScript.
We decided upon using Transloadit, a service which is specialised in uploading and encoding video files. You can even track whether a download was aborted by closing the browser window, it has realtime encoding and supports multiple formats. Moreover your files are stored at Amazon S3 so you can easily stream them with AWS CloudFront and JWPlayer or Flowplayer.
See also zencoder.
Cheers
Was reading this article http://cocoawithlove.com/2010/03/streaming-mp3aac-audio-again.html , wanted to know of how has this to be implemented on the server side, and is it as simple as just putting the file in the htdocs folder getting the URL to that file or does it have more stuff involved
It will work with a media document just sitting on a server.
That being said, Apple really wants you to use HTTP Live Streaming instead of letting a file be progressively downloaded and streamed. Their docs state: 'iPhone and iPad apps that send large amounts of audio or video data over cellular networks are required to use HTTP Live Streaming.'
Fortunately, HTTP Live Streaming is just a method of cutting up your file and Apple provides tools to do this. Then you just place the cut up file and a metafile on your server in htdocs.
You could also look at something like Soundcloud. They have an iPhone streaming library on github to stream songs from their service.
I am developing an application where I need to record voice(for those who does not have a webcam so they can use only microphone to record voice) or video(those who have a a webcam - like laptop or external) files and save them on server, thereafter save the file name and logged in users id on database for later access.
I know I need to use some sort of flash app for this. But is there any free one which could server this purpose or even if there are paid ones which could serve this purpose that would be great. I tried google but may be I was not being able to go after the proper term or something, I could not succeed finding a proper solution for this.
Please, help me out!
You can do that simply using jRecorder, a jQuery plugin. You don't even need a Flash Media Server or RED server. JRecorder is same as jPlayer, you can use jQuery and HTML to design your recorder and you don't even need Flash or Action script knowledge for this.
jRecorder uses 1 pix hidden swf file which manages all the recording / previewing and sending the file data (wav file) to a URL you defined (Where you can write code in PHP or Java to receive a POST file)
It is quite simple and tidy.
You can download this Plugin from:
http://www.sajithmr.me/jrecorder-jquery
I have same feature in our latest project, the client want to have video recording from webcam and the video appear in the user's profile page.
For the server, we implement the RED5 server. It need a Java virtual machine in your hosting. You can read the detail requirement and installation instruction in the website.
To handle recording, we develop our own flash application, because the client request a custom interface to match with the overall website interface. I don't know the detail, since we outsource it to a fellow flash developer. Maybe you can see follow this thread, the development of flash recording by JeroenW.
To play recorded video, you can use any flash video player that support playing rtmp video source. You cannot play the recorded flv file in RED5 directly, since the file lack of metadata required by the player. Serving the recorded file as rtmp is done by RED5.
In addition to red5 there is Adobe's own Flash Media server that allows you to record audio/video straight to the server.
Or if you feel geeky you might be able to put together your own solution for this using a socket connection to the server and decoding the stream yourself on the server side. You should be able capture the audio/video locally into memory and then feed the byte stream up to your own server application.
There are Open Source solutions but you will need an own server to run them.
There is no way to run these things from shared hosting except if your provider is really nice, and ready to install the necessary software.
I asked the same question a few weeks back, check out the answers.
This question when googling "How to record audio php" comes up first so here for anyone from the future.
A simple way to record audio with flash and save it with PHP:
https://github.com/clouddueling/SimpleRecorder
Record audio, post audio data to your choice of url.
You could try recordmp3online.com which has an SDK. The nice thing about this one, is that it doesn't need a third party server(ala Red5), and supports mobile devices that don't have flash installed.