VOD, stream alias and streaming over HTTP problems

VOD, stream alias and streaming over HTTP problems

Support ForumCategory: QuestionsVOD, stream alias and streaming over HTTP problems
keiser asked 4 years ago
Here is what I have:

  • mp4 files in media folder
  • in configuration I have set the following parameters to true
    • hasStreamAliases  (config.lua)
    • hasIngestPoints (config.lua)
    • hasGroupNameAliases (webconfig.json)
  • the reason is I don’t want to have direct links toward media sources in webpages/devices
  • and I want that each session gets it’s own alias and cannot share media link to the other session/user
When settings above are false I’m doing the following thing as described here :
  1. pullstream uri=rtmp://…/vod/xxx.mp4 localname=test
  2. use VLC to play video at URI: http://localhost:9999/test
and this seems to be working although (I’m missing few seconds from the beginning of the video??!?). Now when I enable aliasing as described above, I cannot repeat above steps. I know I’m missing addstreamalias command but I’m not sure when to issue.
  1. pullstream command reports success
  2. addstreamalias also reports success (addStreamAlias localStreamName=test  aliasName=123 )
  3. use VLC URI: http://localhost:9999/123    seems not to be working
  Is this possible. I was doing similar before when browsers supported FLASH and RTMP/RTSP protocols were supported. Today this is not possible for VOD, so the only option is described in docs. Please answer to my questions as follows:
  1. why I’m missing few seconds of video start (aliases disabled)?
  2. how to support VOD/mp4 without doing pullstream and is it possible? (HTML5 browsers now can stream mp4 directly if I’m not wrong)?
  3. how to setup EVO to support aliases on VOD, over HTTP(S) and what is the right command flow (in docs this is not covered properly)?
  4. do VOD files by default have some “localname” value or there is command I missed to issue to setup local name for VOD?
Let’s start with this set of questions. Tnx. K.

6 Answers
erika Staff answered 4 years ago
Hi keiser!   Apologies for the editor. 😀 First, can we ask for your use case to better understand your needs?    Regards,
keiser answered 4 years ago
User case (simplified and focused to just streaming): 
  • user requests mp4 (or live stream) video, on desktop browser or mobile device
  • each request for the same video reproduction is unique per each user and device (by request id) and only usable once (the same video url cannot be used more then once)
  • mp4 files are uploaded to media folder and can be reproduced without aliases over HTTP
  • mp4 HLS works but here I don’t want to have processing of the files for reproduction on every request
Since browsers removed flash player support and don’t support RTMP protocol anymore (I have used it before in testing environment with older version of EVO and that worked fine, for both mp4 and live streaming). With revival of the project everything stopped working because of that reason. For live streaming I have been using ingest points and that part also worked fine. With version 2.0 I didn’t started to test this part until I finish support for the following cases of mp4 request reproduction:
  1. For desktop users I would like to use “video over HTTP” with above described rules
  2. For mobile device I would like to use HLS, prepared upon video (mp4 file) upload through administration.
  3. for each user request I can/already doing API calls towards EVO services to issue commands to prepare aliases but here I’m not sure for the sequence of commands that need to be issued to get wanted behavior
  4. do I need aliasing at all?
Platform uses EVO API endpoints issuing commands which works fine. VideoJS is client player and after playing around after upgrade to latest version I have managed to get it working but without streamAliases and streamGroupAliases, on desktop browsers. HLS protocol I tried, also without aliases, but have more questions on that topic and don’t want to get into this matters until other things are cleared up. Test environment:
  • Windows 10 PRO, i9 CPU, 32GB RAM
Hopefully this will clear up and give you enough info on what I’m trying to achieve and get what are the steps/commands I need to do issue toward EVO to get wanted behavior. KR, K.
erika Staff answered 4 years ago
Hello keiser!   Thank you for the use cases and we are sorry for the late response.  Question:
1. Is your source stream an mp4 file? 
2. All URL playbacks for mobile and desktop can only be used once?  Can you also send us the log files?   Thank you!
keiser answered 4 years ago
Hi Erika,
  1. yes, for now source is mp4 file.
  2. maybe I wasn’t clear enough and I will try to explain. So lets say I have “FileOne.mp4” that I want to be shared among numerous peers.
         Peer 1: should get his unique URL eg. http://[EVO ADDRESS]/{guid1}
         Peer 2: http://[EVO ADDRESS]/{guid2}
         Peer 3: http://[EVO ADDRESS]/{guid3} and so on. I can share logs, but at the moment I’m not sure what to share as I’m not able to produce this behavior. So please let me know what would be proper course of action (commands) executed for FileOne.mp4 (located in media folder) to be able to cover my use case. I tried to use autoHLS option, but it seems this is constantly creating over and over files. Tell what cases you wish me to cover in logs, so I can filter out logs you need to speed up analysis on your side. KR,
erika Staff answered 4 years ago
Hi keiser, If you will use playback over HTTP, we cannot use the direct aliasing to VOD since the playback of VOD is not yet supported using HTTP (9999). We will, however, use the pullstream and addstreamalias to the VOD file.
  1. Pull stream the VOD source file (pullStream uri=rtsp://<Server_Address>:5544/vod/<filename.mp4> localStreamname=<localStreamName>)
  2. Add alias name (addStreamAlias localStreamName=<localStreamName> aliasName=<aliasName> expirePeriod=-600)
  3. Playback via HTTP (http://<Server_Address:9999/aliasName)
Since a different alias will be given to each request, you’ll then need to issue addStreamAlias whenever there is a request.  Note: If you wish to support the VOD alias playback using HTTP, please contact salesupport@evostream.com.   For the HLS files, yes you can use the autoHLS command, you just need to add more parameters in the configuration file.  Example:
playlistType=”rolling”, },
  For the HLS aliasing:
  1. Pull stream the VOD source file (pullStream uri=rtsp://<Server_Address>:5544/vod/<filename.mp4> localStreamname=<localStreamName>)
  2. Create HLS file (createHLSStream localStreamname=<localStreamName> targetfolder=<webrootFolder> groupname=<groupName>)
  3. Issue a group name alias (addGroupNameAlias groupName=<groupName> aliasName=<groupAliasName>)
  4. Playback (http://<Server_Address&gt;:<Web_Server_Port>/<Alias>)
Note: There is no “one-shot” or ‘one-time-use” for group name aliasing.   Regards,


Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.