HoloStream CLI Uploader¶
The HoloStream Uploader is a command line program for uploading packaged OMS and Mp4 files exported from HoloEdit to HoloStream, rather than exporting directly to HoloStream through HoloEdit.
Using the Uploader¶
The uploader is located in the HoloStream-Uploader-2021.1.2 directory inside of your HoloStream install directory. To use the uploader, you’ll need to prepare a few things:
A command line window located at HoloStream-Uploader-2021.1.2
An OMS file you would like to upload to streaming
A corresponding MP4 file you would like to upload streaming
An optional .mp3, .aac, or .ogg audio file for your clip.
To upload your oms, mp4, and optional audio file to the HoloSuite Job Server for packaging and streaming upload, use the following command in your command line window:
node-v11.12.0-win-x64\node.exe holostream.js job:create --env production --repo packaging-dev-2 --oms <path to OMS file> --video <path to MP4 file> --audio <path to audio file>
For example,
node-v11.12.0-win-x64\node.exe holostream.js job:create --env production --repo packaging-dev-2 --oms ../files/myoms.oms --video ../files/mymp4.mp4 --audio ../files/myaudio.ogg
Uploader Command Line Arguments¶
The HoloStream Uploader is a node.js program called holostream.js.
node-v11.12.0-win-x64\node.exe holostream.js job:create
runs the embedded installation of node version 11.12.0, supplies the holostream.js script, and calls the job:create
command. job:create
is the only supported uploader command in HoloStream 2021.2.
The arguments for job:create are as follows:
env: Supply the environment specifying for the HoloSuite Processing Server. Use
production
for the US server orproduction-ap
for Asia Pacific.repo: Supply the identifier for the HoloStream hosting repo, at the moment this will be
packaging-dev-2
oms: The full path with extension to the .oms file you wish to upload for streaming.
video: The full path with extension to the .mp4 texture video accompanying your .oms file. Any audio included in the .mp4 will be ignored by the uploader.
textures: The optional textures command can be supplied instead of the video command. Provide the full path to a directory containing a sequence of numbered .png textures corresponding to your oms file.
audio: Optional. Supply the full path to an .ogg, .aac, or .mp3 audio file to use with your streaming clip.
contentid: Optional. Supply a holostream UUID corresponding to an existing holostream clip. The existing clip will be updated by replacing it with the new clip.
qualityprofiles: Optional. Supply the full path to a folder containing the adaptive Quality Profiles you’d like to use for your streaming clip. If this parameter is not supplied your clip will be encoded with the default adaptive quality profiles.
Account Authentication¶
After executing your job:create command, a web browser will open to validate your HoloStream account. Follow the prompts on this window to finish signing in. After sign in, your clip will begin to upload and process for HoloStream.
HoloStream upload consumes Clip Encode time associated with your HoloSuite account. The amount of encode balance depends on the duration and complexity of the clip.
Quality Profiles¶
The HoloStream Profile supports optional custom quality profiles supplied with the --qualityprofiles
argument. Quality Profiles are .json files containing the following objects and strings:
The meta object contains metadata for the profile. Customize the following fields:
profileName: Supply a string name for your profile.
ProfileDisplayName: Supply a short string name for your profile.
ProfileVersion: Must be 0.1
CreationDate: Supply a date/time in y/m/d 00:00:00 timezone format.
"bitrateVideo":"20m",
"codec":"h.264",
"profile":"baseline",
"resolution":"2048x2048"
},
The video object contains settings for the compressed streaming texture. Customize the following fields:
bitrateVideo: Supply a bitrate in megabits. Must be a string in the format “0m”, where “0” is the desired bitrate.
codec: Must be “h.264”
profile: Must be “baseline”
resolution: Supply a square resolution. Must be a string in the format “0x0” where the integers on either side of the x represent the height and width respectively.
"oms":{
"vertexCount": 1.0,
"keyframesPerSecond": 2
}
The oms object contains settings for the compressed streaming mesh. Customize the following fields:
vertexCount: supply a value greater than 0.0 and less than or equal to 1.0 to determine the output vertex count. The mesh’s polycount will be reduced to target the source vertex count * vertexCount. For example, a value of 0.25 will result in a quarter of the input vertex count.