Full disclosure: I'm a pretty junior developer and new to asking questions. I also don't know that much about video streaming as a concept so if the answer is right in front of my face I probably just glazed right over it.
That being said, I am trying to do something that seems like it should be pretty simple but can't seem to figure it out. I'm trying to get a H.264 live stream video off of a Raspberry Pi and view it in my app. I've found a number of things about encoding videos but couldn't seem to get anything to work.
Anything anyone has to offer would be a large help, even if it is just a direction to look in because I'm pulling my hair out trying to figure this one out.
You'll first need to install some platform on your Raspberry Pi that can serve data to a client. You can look into web server platforms like Apache. Once installed, you can verify this is working by hitting the IP address of the Raspberry Pi from any browser: e.g. 192.168.1.67:80
Then you need to make sure the video is available through the file system on your Raspberry Pi. Searching something like "Adding files to Apache" might help.
You can test that the file is available by hitting the IP address of your Raspberry Pi from any browser: e.g.
192.168.1.67:80/path/to/video.mp4
This means that the video file is available and can be downloaded, but won't be streamed by default. Then you can look into some JavaScript framework that can help you with the streaming portion.
Apple has super famous HLS protocol for streaming videos. You would need to first encode video input coming from camera, then pass it to your server who's basically doing all the "behind the scene" work and provides you with *.m3u8 URL. I've implemented this pattern with Wowza Streaming Engine. You can use it or similar tools.
On the flip side, if you're inclined towards having more simple and straight forward solution; more like a CDN approach, then you may follow #Bret's answer.
Related
As part of a student project, I am currently setting up device to device video streaming.
I am using two Raspberry Pi 3 with the camera modules and am adding face tracking via OpenCV (all in Python3).
I want to stream live Video captured by Raspberry Pi (X) to Raspberry Pi (Y) and vice versa. The Raspberries will not be in the same building/network.
What I don't want, is anyone being able to stream the video on a different device.
As I am new to the whole streaming and security idea, I was wondering if there is some way of adding security to live streams by limiting access by the device.
Say, the video of Raspberry Pi (X) CAN ONLY be viewed by Raspberry Pi (Y).
Is this possible? If not, what's the next most secure option (limiting by IP maybe).
I am also not fixed to using Raspberries for this project, if there is a different solution I'd love to hear about it.
Thanks for any ideas.
You're not the first person to do something like this. A raspberry pi is an excellent choice for the project and you should be able to find plenty of guides online to doing something like this.
You'll want to ensure you enable a strong username and password within whatever library you use.If you want to protect the live stream with a username and password, you should enable this:
stream_auth_method 2
stream_authentication SOMEUSERNAME:SOMEPASSWORD
https://www.instructables.com/Raspberry-Pi-as-low-cost-HD-surveillance-camera/
I'm new to IP cameras and I know there are quite a lot of topics about this in the forum already, but I can't find a concrete answer for my needs.
I want to access an IP camera using OpenCV in Python from a Windows PC. As I don't have a camera yet, I need to buy one and I can't figure out, what requirements this camera needs to have.
For example, there are quite cheap IP cameras (e.g. Xi****) which say they come with an Android or iOS app and are only accessible via those.
I thought you can access any IP cam via OpenCV, but now I'm not sure anymore... can anyone give me an overview, what specs an IP cam needs, to be accessed via OpenCV on Windows? I don't want to buy a camera and later realize, that I can't access the video stream.
I'm really sorry, if this has already been asked, but I can't find a satisfying answer to this question and Google doesn't seem to be very helpful...
Thanks in advance.
check for IP cam that can transmit RTSP opencv know how to work with this type of stream.
I'm looking for a Flash widget that does this: http://i.imgur.com/eRKhvkK.png
That's from a webcam streaming site that does what I need, the four boxes are a screenshot of each step of their widget:
Connecting screen, enable webcam prompt, configure and broadcast with a cam preview, broadcasting window with a cam preview with option to stop broadcast.
It doesn't need to be exactly the same, just something similar. Are there any open-source solutions or packages that offer this that I can use on my website? I'm open to the idea of coding it myself, but I've never touched Flash before, so I'll need help with resources on what I'll need to create such a widget. Preferably there's something out there that does this already, or close to this, that I can modify to meet my needs.
The only thing I found was this: https://github.com/AF83/webcam-streaming -- but it doesn't provide any interface or configuration window, it just starts streaming straight away. I could potentially modify this if there's no other options out there, but I have no idea how to add all of those UI elements, how to hook them together, or what software I need to do so. If this is the only option I have, can you please point me in the right direction in learning how to do that (I use Windows 7 64bit).
Thank you!
I have exactly what you need : an open source publisher in flash with video preview. The source code is on github at https://github.com/MonaSolutions/MonaClients/.
This is our sample and it work with MonaServer installed on our raspberry pi, this is good for testing but for production you will need to install an RTMP or RTMFP server. If you want to use MonaServer you can go to our installation page or download the windows binary from sourceforge : http://sourceforge.net/projects/monaserver/files/MonaServer_Windows_32.zip/download
Then if you want to modify the source code and implement a better-looking client you can use FlashDevelop, it's free and complete.
For information it is also possible to broadcast with WebRTC and HTML5 rather than RTMP/RTMFP and Flash.
I'm writing LabVIEW software that grabs images from an IMAQ compatible GigE camera.
The problem: This is a collaborative project, so I only have intermittent access to the actual camera.I'd like to be able to keep developing this software even when the camera isn't present.
Is there a simple/fast way to create a virtual or dummy IMAQ camera in software? Ideally I'd like the dummy camera grab frames from an AVI or a stack of JPEG's. Something like this must exist, I just can't find it on Google.
I'm looking for something that won't take very long (e.g.< 2 hours effort) and that is abstracted away through the standard LabVIEW IMAQ interface, so that my software won't know or care whether its dealing with a dummy camera or an actual camera.
You can try this method using LabVIEW classes:
Hardware Emulation Using LabVIEW Classes
If you have the IMAQdx driver, you might consider just buying a cheap USB webcam for $10.
Use the IMAQdx driver (assuming you have it), and then insert the Vision Acquisition Express VI, and you can choose AVIs or even pics as a source.
Something like this: GigESim is a camera emulation software. Unfortunately it is proprietary and too expensive (>$500) for my own needs, but perhaps others will find this link useful.
Anyone know of a viable Open Source alternative?
There's an IP Camera emulator project that emulates IP camera with python. I haven't used it myself so i don't know if it can be used by IMAQ.
Let us know if it's good for you.
I know this question is really old, but hopefully this answer helps someone out.
IMAQdx also works with Windows DirectShow devices. While normally these are actual physical capture devices (think USB Webcams), there is no necessity that they have to be.
There are a few different pre-made options available on the web. I found using Open Broadcaster Studio and this Virtual Cam plugin to be easy enough. Basically:
Download and install both.
Load your media sources in the sources list.
Enable the VirtualCam stream (Tools > VirtualCam). Press Start.
I've been googling about how to accomplish oneline chat for rails application and I've implemented a text chat version using Juggernaut. But for video chat, I only find flash&red5 might be a solution for me, but it's flash and java, which I'm relatively not good at. Is there a better solution?
I have researched this a little and the options are not great.
There are some nice-looking packages that cost real money. Tokbox.com, ooVoo (http://www.oovoo.com, looks free at first but free version has limits), VideoWhisper.com looks interesting -- they seem to sell a 2-way video chat package for a one-time fee, but it is PHP-based.
A simple Flash-based solution is definitely a good way to go. Flash has good video support and virtually everyone has it installed already. It's not that hard to learn enough Flash basics to do a simple 2-way video chat (see http://www.derekentringer.com/blog/fms-video-chat/ for an example of a trivial video chat script that is something like 30 lines of code). And you don't need to learn Java to use Red5 unless you want to customize it -- Red5 is the open-source video streaming server that makes it so you don't need to buy really a expensive Adobe Media Streaming server system. You just need to learn enough to set it up and get it running.
I'm certain there's an open-source or low-cost Flash script out there that handles a basic 2-way video chat, but I have yet to find it. If anyone does, please post it!
Here is a rails implementation of tokbox:
http://github.com/njacobeus/tokboxer/
Try using Raydash. There is a rails gem available at https://github.com/gersh/Raydash-Ruby-on-Rails. You just need to register at http://www.raydash.com to use it.