Larix Grove: propagate Larix settings to multiple devices
You have a crowd of streaming devices with Larix Broadcaster - correspondents, streamers and other contributors - and you need to distribute links among them in some easy way.
You can distribute streaming settings using easy Larix Grove format for URL-based settings.
- Describe settings. You create URL which consists of larix://set/ prefix and an array of URL parameters, each containing specific value.
URL contains settings for connections and an encoder.
You can also create a QR code for URL.
- Distribute. You propagate this URL or QR code via any medium like web page or messenger.
- Import. First option is deep linking: when you tap on larix:// URL on Android or iOS, Larix Broadcaster is launched.
Then you can use Import Grove setting menu item from the app Setting / Connections menu
You may also scan a QR code made with this URL. On iOS it's done by default camera, on Android you can use a QR code scanner of your choice like QR Droid.
Larix Broadcaster appends new connections into its list and also applies encoder settings upon user approval.
- Export. All connections and important settings can be exported into Grove format as deep links and QR codes for further import into other apps and devices.
At the moment Grove is supported in Larix Broadcaster for Android and iOS.
Take a look at a demo video to see examples of a web link and a QR code processing.
A few notes:
- The only required parameter is url so Larix would know where to stream.
- There may be multiple conn elements describing connections, all elements are grouped by url parameters.
- If some of conn parameters is not specified, then Larix uses default value - which you see if you add it manually.
- If some enc (encoder) parameter is not specified, then Larix uses the value currently defined in the app Video and Audio settings.
larix://set/v1/ is the beginning of Grove URL
?conn[url]=rtmps://url.to/app/stream is the URL for a connection. Refer to docs reference for more about publishing, some examples are also provided below.
&conn[name]=Channel%20name is the name which will be used in connections list in your app.
&conn[overwrite]=on defines if a connection with this name must be overwritten. on = overwrite, off = do not overwrite (default)
&conn[active]=off defines if a connection will be marked active when imported into Larix. on = will be checked (default), off = will not be checked
&conn[user]=foo is a user name for RTMP and RTSP if you want to use authorization.
&conn[pass]=bar is a password for RTMP and RTSP if you want to use authorization.
&conn[mode]=va is content mode, "va" stands for "Video+audio", "a" is for "Audio only", "v" is for "Video only".
&conn[target]=rtmp is a Target type. d="Default", rtmp="RTMP authentication", aka="Akamai/Dacast", lime="Limelight", peri="Periscope".
&conn[url]=srt://url.to:port/ is another connection URL.
&conn[name]=My%20Channel%202 is a connection name.
&conn[srtlatency]=1000 is SRT latency field for SRT connection.
&conn[srtmaxbw]=125000 is SRT maxbw field for SRT connection.
&conn[srtpass]=passphrase is SRT passphrase field for SRT connection.
&conn[srtpbkl]=32 is SRT pbkeylen field for SRT connection - 16, 24 or 32.
&conn[srtstreamid]= is SRT streamid identifier for SRT connection.
&conn[url]=rist://url.to:port/ is one more connection URL.
&conn[ristProfile]=main is RIST profile. simple = Simple, main = Main (default).
&enc[vid][camera]=0 is a camera selected by default, "0" is for rear camera, "1" is for frontal (selfie) camera.
&enc[vid][res]=1280x720 is the resolution defined as widthxheigth.
&enc[vid][fps]=30 if a frame rate value.
&enc[vid][bitrate]=1900 is a bitrate is Kbps.
&enc[vid][format]=avc defines a codec, "avc" is AVC/H.264, "hevc" is HEVC/H.265.
&enc[vid][keyframe]=2 is a keyframe interval.
enc[vid][orientation]=landscape screen orientation for iOS. landscape = Landscape, portrait = Portrait (default).
enc[vid][liveRotation]=follow defines live rotation modes. off = disable it (default), follow = "Follow screen rotation" in iOS and just "On" in Android, lock = "Lock while broadcasting" in iOS.
enc[vid][multiCam]=off sets multi-camera mode in iOS. off = disable it (default), pip = Picture-in-picture, sbs = Side-by-Side.
enc[vid][adaptiveBitrate]=0|1|2|3 sets ABR mode. 0 = disable (default), 1 = Logarithmic descend, 2 = Ladder ascend, 3 = Hybrid approach.
enc[vid][adaptiveFps]=off sets adaptive FPS in ABR. It's Off (default) and On respectively.
enc[vid][background]=off streaming from background for Android. off = disabled (default), on = enabled.
&enc[aud][bitrate]=128 is audio bitrate in Kbps.
&enc[aud][channels]=2 is audio channels count.
&enc[aud][samples]=48000 is audio sample rate.
&enc[aud][audioOnly]=on enables audio-only capture: disable preview, stream from background, no video in output stream.
&enc[record][enabled]on enables recording in Larix.
&enc[record][duration]=15 Length of recording chunk in minutes. Default is 0, means you won't have chunks.
&enc[record][storage]=cloud defines storage location for iOS. local = Local storage (default), photo_library = Photo library, cloud = iCloud.
& deleteConn=1 Makes Larix to delete all existing connections and import new ones from scratch.