Cloud Controls
Update: As of completion of LIFE project, the Eriksson Cloud is no longer available. Content below is left for legacy/reference purposes only.
Instructions to ERI cloud are sent using http requests. For manual operation, this can be done using any generic web-browser. Applications implementing cloud control have to generate their own http requests.
The requests are only acted upon if sent to the cloud's IP address (CLOUDIP), port 8080.
List available files on cloud's filesystem
http://CLOUDIP:8080/nfs/list
List currently active UDP streaming processes
http://CLOUDIP:8080/udprtp/list
This list will provide the unique process ID values (PROCESSID) that become useful in stopping ongoing processes.
Stop a currently active UDP streaming process
http://CLOUDIP:8080/udprtp/stop?id=PROCESSID
Monitor system status (incoming ports, outgoing ports, up-and-running instances...)
http://CLOUDIP:8080/lifedist/camera/list
Start a UDP streaming process
Send video file from cloud filesystem to somewhere
h.264 encoded file:
http://CLOUDIP:8080/udprtp/sender?src=FILENAME.h264&host=TARGETIP&port=TARGETPORT
yuv encoded file:
http://CLOUDIP:8080/udprtp/sender?src=FILENAME.yuv&host=TARGETIP&port=TARGETPORT&w=VIDEOWIDTH&h=VIDEOHEIGHT&fr=VIDEOFPS/1&encode=1
Send video file or stream from somewhere to the cloud filesystem
save on cloud as h264:
http://CLOUDIP:8080/udprtp/receiver?sinkfile=FILENAME.h264&port=TARGETPORT
save on cloud decoded in yuv format:
http://CLOUDIP:8080/udprtp/receiver?sinkfile=FILENAME.yuv&decode=1&port=TARGETPORT
Send a videostream from somewhere through cloud to somewhere (uses cloud filesystem, performs transcoding):
http://CLOUDIP:8080/udprtp/rtstreaming?inport=15999&outport=15111&host=<IPv4>&w=320&h=240&fr=25/1&segsize=25&maxseg=10
- inport: the UDP port UDP incoming streaming listening
- outport: the UDP port UDP outgoing streaming port
- host: the UDP outgoing streaming destination
- w: the width of h264 video
- h: the height of h264 video
- fr: the frame rate of h264 video ( in format of **/1)
- segsize: how many frames catched in one segment (default is the frame rate, which means one segment will catch one second of video)
- maxseg: how many segment will be cached in cloud disk (default is 10 segments)
Multi-Stream Handling in Cloud
Under this configuration, Cloud has one master instance for work delegation and input streaming. Each incoming stream gets allocated a Slave instance that handles transcoding/processing and output-streaming.
-
Monitoring System Status:
http://CLOUDIP:8080/lifedist/camera/list
-
Create stream in master instance and start transcoding and send stream from one slave instance:
http://CLOUDIP:8080/lifedist/camera/stream?inport=15100&outport=15600&host=DESTINATIONIP&cameraid=camera01&w=320&h=240&fr=25/1&payload=96&segsize=1&maxseg=60&br=100
- inport: the master UDP port to receive stream (15000 to 16000)
- outport: the destination UDP port to send stream (15000 to 16000)
- host: the destination address to send stream (IPv4)
- cameraid: the camera ID in format of : camera01, camera02…..camera10
- w: the resolution of video width
- h: the resolution of video height
- fr: the frame rate of video in format of example: 25/1 : 25 frames per second
- payload: the UDP rtp payload, default as 96
- segsize: the segment file that save in Cloud in length “second”, default is 1 second
- maxseg: the number of segment that save in Cloud, the default is 60 (means that 60 seconds cache capability)
- br: the transcoding bit rate: bits/second. Default is 10000000
-
Stop previously configured stream's slave transcoding and send stream by camera id:
http://CLOUDIP:8080/lifedist/camera/stop?cameraid=camera02
_the command will stop two slave instaces: camera02_1, camera022 which provide transcoding for color stream and depth stream.
- (Re-)Start previously configured stream's slave transcoding and send stream by camera id:
http://CLOUDIP:8080/lifedist/camera/restart?cameraid=camera02
commit: $Id: cloud.controls.md 818 2018-10-12 12:39:45Z elidim $