How do I test customized stream playback paths in Red5 - red5

I have a Red5 application that I inherited from a previouse developer and I am trying to get it running correctly. I am able to start the Red5 server and stream video files from my /webapps/myapp/streams/ directory. I am able to test this by going to http://localhost:8080/myApps/streams/testVid.mp4 and the video plays normally.
However, I need to be able to stream my videos from any directory in my file explorer. The application already has a Application.java, a CustomFilenameGenerator.java, the needed bean for CustomFilenameGenerator in red5-web.xml and a playbackPath and recordPath in my red5-web.properties file.
From my research it seems like the previous developer that worked on this project was probably able to get the streaming working from a custom path, but I am not sure how to get it running.
Assuming that everything with the application/configurations is correct how do I actually test it, if the files I want to stream are in C:\Users\myUser\Desktop\StreamRecordings?
I have tried going to http://localhost:8080/myApp/StreamRecordings/testVid.mp4 but I get 404 error (probably since StreamRecordings is not in a myApp subdirectory.
Thanks!

Related

cocoa ffmpeg streaming created improper file

I am trying to capture video stream and upload it to RTMP server using FFMPEG in my cocoa app. I am able to play that file via FFPLAY but when i stop streaming file is not created properly.
It shows file size as 1kb even when streaming is done for 5 mins.
However if i try to save on my local system it works fine. A proper file is created and i am able to view it.
RTMP server is also fine coz from windows files are being created and saved on that server.
Thanks in advance. :)
Updating FFMPEG to version 3.1.4 solved my problem of streaming via terminal.

How to serve DASH video (MPEG-DASH and HLS) over a web sever

I am doing a small research project to test DASH streaming on very low bandwidth mobile connections in India.
I have an AWS machine where I can upload video and package it for MPEG-DASH and HLS streaming and create the MPD and m3u8 files.
But I am unable to serve the video.
I have tried with Apache and node.js. I was told that by just placing the folder that contains the mpd nad m3u8 files with the video chunks I should be able to stream the video.
I am not sure what I am doing wrong. Is there any special configuration I need to do to server MPEG-DASH video ? If there a tutorial/blog/github project someone could point me towards, that would be brilliant.
TIA.
Setting up a DASH Media streaming, is fairly involved. You can get all paid services from Bitmovin, Wowza and many others but don't give up yet. There are a lot of open-source stuff out there as well that works. I have been working on DASH for a while now.
Here's my setup,
OS: Ubuntu 16.04
Server: Apache2 (easy to setup): Few edits I had to do: CORS and an alias setting.
Client: Dash.js: Literally just get the dash.js-master branch from github. Don't get stuck with the dash.js-development branch, if you don't wanna end up editing stuff.
Content Generation: ffmpeg and MP4Box
All you have to do for initial setup is make 2 directories in your apache's root directory, (i.e. inside the folder that contains index.html). Your first directory will be the compiled dash.js client and the second will be your content directory.
Point a link on your server to the dash.js reference client, then all you have to do is play your mpd on the client. (Make sure it confirms to the mpd validation norms though)
Now, this might just work only on a computer and not a cell phone, but hey I think you disable all the connections (wireless and wired) on your computer and use one of those wireless dongles provided by Airtel/Reliance/any network provider!
Shall be here to answer more insightful questions, hath need be!
You do not need any server side application. If you are using AWS a simple S3 bucket behind Cloudfront will do the trick nicely, without any EC2 needed at all. Just ensure you have CORS and crossdomain.xml in place.
Stefen Lederer posted a blog about just this set up.
Also, use your browsers developer mode to catch failed requests and console errors which might give pointers as to why it is not working for you.

How to bypass red5 demo page on start up?

At present, I start up red5 in linux command line ./red5.sh and it runs the script. Then I go to http://localhost:5080 demos page to set up my camera and audio input and all works fine in testing the stream both on demo page and in swf of my webpage.
Question is, do I need to include some java and/or action script for the swf player to
bypass the red5 demo page so I can directly connect my input and stream in the code of the page? Also so only logged in webpage viewers can connect?
Overall wondering if there is a way of hiding the server stream from anyone not logged in to view it on my site? I understand in webapps folder somewhere there is the hosts list of IP but it would be impossible to know the IP of the viewers as opposed to unwanted viewers or bandwidth stealers.
I am trying to set up a site for poetry readings and make it so readers can record live to my server and then logged in viewers can view from my website. I am trying to figure out whether I must have that red5 page open and if that doesn't pose some kind of risk.
Found my own way of doing this just by removing and renaming files and folders.
If you go to usr/local/red5/webapps here lies all the directories for viewing when you go to default port 5080 so I simply installed the applications I needed and then took everything out of there except those applications I wanted and needed to run. I took out all and placed it in a folder in /var directory named it red5_movedstuff in case I want access to further applications later on.Then I renamed the applications I am using in webapps folder and kept admin folder to access them but I renamed my applications and had to importantly rename also in WEB-INF for each application name change.
Now if someone goes to myip:5080 they get a blank page and by changing names of applications I've hidden my directories beyond that including list of streams.

Can we create a war file for a play2.1.1 application offline?

I have tried creating war file for a play2.1.1 application following the instructions given in the github link - https://github.com/dlecan/play2-war-plugin/
However it fetches the plugins files from online repository and its been referenced in the play program. This method works only if the internet is connected.
Can i download the actual plugin file from this site and save it in my local system and generate a play war file offline?
Partially Yes. You need to go online only once to get all the dependencies downloaded. Once you are done, then you can work completely offline. Also I would like to mention this link: http://brainstep.blogspot.in/2013/10/how-to-install-play-2-war-bare-minimum.html
There is no official way for doing this, but if that aren't to much files, you can use Fiddler Web Debugger to look what files get downloaded, save them to your hard disk and then activate Fiddler's Auto responder. Everytime the Application requests the Files from the Server, Fiddler replies with the Files on your Hard disk.

vb.net problem with path

I have created a web application in that application i have added two folder. one is admin folder and under admin i have added a upload folder. In upload folder i have three different audio's. And also i have imported DLL for Windows media player. Through this media player im able to play the audios in local host.
By giving Direct path like MediaPlayer1.Filename="C:\User\sam\waka.mp3"
But when i host the website im getting problem the page is getting refreshed but the audio is not getting played.
I have tried this path Server.Mappath(".\.\upload\waka.mp3")
and Server.Mappath("~\admin\upload\waka.mp3)
the above both paths are not working when i host the website please reply.
It's still a bit unclear, but it sounds like there's some kind of audio player in your website (an ActiveX control or something?) that's trying to reference a path on the server as though it were on the client that's loading the page. Naturally, this will work on your development machine because the client and the server are the same thing.
What's actually being rendered on the client side? What happens if you reference the audio file by its URL rather than its file system path?
Or are you trying to do something different than what I describe? Are you actually trying to play the audio on the server when the client accesses the site?