Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion adengine/how-to/image.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ GET https://api.galaxy.dolbyrasp.com/image?url=https://my_bucket/my_folder/my_fi

### Using Credentials

Typically, cloud content is not publicly accessable. If the provided `url` is an encrypted link, remember to use `encodeURI()` to encode the URL inside the GET call. If you have registered cloud credentials with the Dolby OptiView Engine, you can reference those credentials in the call.
Typically, cloud content is not publicly accessible. If the provided `url` is an encrypted link, remember to use `encodeURI()` to encode the URL inside the GET call. If you have registered cloud credentials with the Dolby OptiView Engine, you can reference those credentials in the call.

```
GET https://api.galaxy.dolbyrasp.com/image?url=s3://my_bucket/my_folder/my_file.mxf&format=png&height=280&credentials_key=my_s3_creds
Expand Down
2 changes: 1 addition & 1 deletion adengine/how-to/quality-control.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ A QC object is added to the ad profile. In this case, we are checking that the s

### Pre and Post QC

The Ad Engine inlcludes both source and output QC. The `pre` object defines the pre-conversion QC parameters, and the `post` object defines the post-conversion. The vast majority of QC will be `pre` encoding, in order to weed out bad input files.
The Ad Engine includes both source and output QC. The `pre` object defines the pre-conversion QC parameters, and the `post` object defines the post-conversion. The vast majority of QC will be `pre` encoding, in order to weed out bad input files.

### QC Conditions

Expand Down
2 changes: 1 addition & 1 deletion contributing/guidelines/how-to-guides.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ Note: we use 5 # here, it will have a different style on Gatsby so it pops out

## Sample Applications

The sample application below demonstates how to do X.
The sample application below demonstrates how to do X.

- Code: (if applicable)
- Demo: (if applicable)
Expand Down
2 changes: 1 addition & 1 deletion contributing/templates/how-to-guides.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Some information about the piece of code (optional).

## Sample Applications

The sample application below demonstates how to do X.
The sample application below demonstrates how to do X.

- Code: (if applicable)
- Demo: (if applicable)
Expand Down
10 changes: 5 additions & 5 deletions millicast/analytics/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ app.get('/usage', (req, resp, next) => {
})
.on('error', (e) => {
console.log('ERROR', e);
resp.satus(404).json(e);
resp.status(404).json(e);
});
apiReq.end();
});
Expand Down Expand Up @@ -128,7 +128,7 @@ app.get('/usage', (req, resp, next) => {
})
.on('error', (e) => {
console.log('ERROR', e);
resp.satus(404).json(e);
resp.status(404).json(e);
});
apiReq.end();
});
Expand Down Expand Up @@ -270,7 +270,7 @@ app.get( '/usage', (req, resp, next) => {
})
.on('error', e => {
console.log('ERROR',e);
resp.satus(404).json(e);
resp.status(404).json(e);
});
apiReq.end();
});
Expand Down Expand Up @@ -306,7 +306,7 @@ app.get('/streamusage', (req, resp, next) => {
})
.on('error', e => {
console.log('ERROR',e);
resp.satus(404).json(e);
resp.status(404).json(e);
});
apiReq.end();
});
Expand Down Expand Up @@ -510,4 +510,4 @@ Calculating the viewers per stream (daily or hourly), which region they viewed f

#### Special Characters in Stream Names

When querying usage with the [Analytics](/millicast/api/analytics-streams-series) APIs using `streamNames` it is expected that the streams have not used special characters such as `/`, `*`, or `--` as this will fail to report results. Recommendation is to avoid using special characters in stream names and sticking with alpha-numeric characters and single dashes.
When querying usage with the [Analytics](/millicast/api/analytics-streams-series) APIs using `streamNames` it is expected that the streams have not used special characters such as `/`, `*`, or `--` as this will fail to report results. Recommendation is to avoid using special characters in stream names and sticking with alphanumeric characters and single dashes.
2 changes: 1 addition & 1 deletion millicast/broadcast/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ To learn how to create a stream from OBS using SRT, see the following video:
The Dolby.io dashboard is used to configure the publish path and stream id for an incoming RTMP or RTMPs media stream.

[How-to use FFmpeg with RTMP](/millicast/broadcast/software-encoders/ffmpeg.mdx)<br/>
**FFmpeg** is a free and open-source software project that is commonly used in legacy media workflows. It is a command-line tool that is capable of outputing streaming content via RTMP, RTMPS, and RTSP.
**FFmpeg** is a free and open-source software project that is commonly used in legacy media workflows. It is a command-line tool that is capable of outputting streaming content via RTMP, RTMPS, and RTSP.

[How-to use vMix with RTMP](/millicast/broadcast/software-encoders/vmix.mdx)<br/>
**vMix** is a software vision mixer available for Windows. It is useful for certain live video production workflows and supports RTMP output that can be broadcast by Dolby.io.
Expand Down
2 changes: 1 addition & 1 deletion millicast/changelog/changelog-native-sdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ using StreamDetails = std::variant<StreamViewDetails, StreamPublishDetails>;
**Android**

- Improved Android SDK playback experience following simulcast layer switches.
- Fixed extended freeze of frame during the switch between simulcast layers, especially prevelant during frequent switchines.
- Fixed extended freeze of frame during the switch between simulcast layers, especially prevalent during frequent switches.
- Greatly reduced the number of freezes when packet loss experienced.
- Improved Android SDK playback in constrained bandwidth scenarios.
- Added multiple MCCMSampleBufferVideoRendererDelegate to MCCMSampleBufferVideoRenderer
Expand Down
2 changes: 1 addition & 1 deletion millicast/changelog/changelog-web-platform.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ This release includes some minor updates:

💥 **Breaking Changes**

- Removed the `onMetadata` event, which was already deprecated. This has been superceded by `metadata` as of v0.3.0.
- Removed the `onMetadata` event, which was already deprecated. This has been superseded by `metadata` as of v0.3.0.

## 2025-05-29 | Web SDK [0.4.0](https://github.com/millicast/millicast-sdk/releases/tag/v0.4.0)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ document.getElementById('btn-stop').onclick = () => {

## Continue learning

These starter apps were kept simple for the purpose of getting started. You can re-use these samples in your preferred JavaScript framework such as React, VueJS, Angular, etc. as you customize the user experience of joining a stream, handling when a stream hasn't started, maintaining button state, etc.
These starter apps were kept simple for the purpose of getting started. You can reuse these samples in your preferred JavaScript framework such as React, VueJS, Angular, etc. as you customize the user experience of joining a stream, handling when a stream hasn't started, maintaining button state, etc.

Continue by exploring the [Streaming Web SDK](/millicast/playback/players-sdks/web/sdk/index.mdx) documentation for a guide on other functions as you continue building your own project.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ unlisted: true # Note: unlisted pages still show up in dev mode

This is part of our [Multi-view](/millicast/playback/multi-view.md) feature and only impacts users who where using the multiview feature and their own player SDK implementation. If you are using the hosted video player, there is no update to apply.

In the [Broadcast Events](/millicast/playback/players-sdks/viewer-events.md), the `active` event now uses truely dynamic `trackId`. Below you can find the details of what these broadcast events look like. Using `trackId` dynamically has been [documented in the SDK](https://github.com/millicast/millicast-sdk/blob/460444aa9e7a37ad2c9c77046a97cdaf6448a76f/packages/millicast-sdk/src/View.js#L163) for years but we had some hard-coded examples in our multi-view sample code.
In the [Broadcast Events](/millicast/playback/players-sdks/viewer-events.md), the `active` event now uses truly dynamic `trackId`. Below you can find the details of what these broadcast events look like. Using `trackId` dynamically has been [documented in the SDK](https://github.com/millicast/millicast-sdk/blob/460444aa9e7a37ad2c9c77046a97cdaf6448a76f/packages/millicast-sdk/src/View.js#L163) for years but we had some hard-coded examples in our multi-view sample code.

`trackId` is an optional (future-proofing) parameter when calling the `project()` command and is not required.

Expand Down Expand Up @@ -89,7 +89,7 @@ await millicastView.project(sourceID, [
},
{
// when calling project() trackId is optional and we are removing it from our examples. By specifying a "media" value (eg, "audio") the correct media track will be used
// in the future we will support multi-audio in which case you will need to project the correct trackId to select the correct audio track as recieved from the broadcast event
// in the future we will support multi-audio in which case you will need to project the correct trackId to select the correct audio track as received from the broadcast event
mediaId: audioTransceiver.mid,
media: 'audio',
},
Expand Down
6 changes: 3 additions & 3 deletions millicast/playback/audio-multiplexing.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,14 +25,14 @@ If you've reviewed the [Multi-source Broadcasting](/millicast/broadcast/multi-so

To get started using Audio Multiplexing, you first need to create a Publishing token with [Multisource](/millicast/broadcast/multi-source-broadcasting.mdx) and have multiple audio sources ready to test, each assigned a unique `sourceID` at the publisher.

:::info Not familar with our JavaScript SDK?
Audio Multiplexing is a compelx feature made availible through our [Client SDKs](/millicast/playback/players-sdks/index.mdx).
:::info Not familiar with our JavaScript SDK?
Audio Multiplexing is a complex feature made available through our [Client SDKs](/millicast/playback/players-sdks/index.mdx).
:::

Once you're streaming multiple audio sources, the next step is to set up the [Viewer](/millicast/playback/players-sdks/web/sdk/index.mdx#viewing-a-stream) so that the incoming audio sources can be correctly multiplexed. When connecting to the Viewer, there are a [number of parameters available in the SDK](https://millicast.github.io/millicast-sdk/View.html#connect) you can adjust depending on your workflow. Some parameters of note for audio multiplexing include:

- `multiplexedAudioTracks`: This is required to enable multiplexing. It denotes the number (`int`) of audio tracks to receive as Voice Activity Detection (VAD) multiplexed audio. This value must be greater than or equal to the number of audio tracks on the stream. Additional audio tracks will overwrite existing audio tracks. There isn't a limit to the number of audio tracks that can be rendered in the browser, only the amount of data. The current limit is a bitrate of 12 Mbps.
- `dtx`: Discontinousous transmision or DTX is a `boolean` value that signals to the viewer to only deliver audio when audio is detected such as when a person is talking. Enabling DTX will reduce bandwidth costs for audio transmission but may cause non-voice audio such as instruments to become choppy.
- `dtx`: Discontinuous transmission or DTX is a `boolean` value that signals to the viewer to only deliver audio when audio is detected such as when a person is talking. Enabling DTX will reduce bandwidth costs for audio transmission but may cause non-voice audio such as instruments to become choppy.
- `pinnedSourceId`: Pinned Source ID is a `String` that denotes the main source that will be received by the default MediaStream. This value is useful for denoting your default audio stream that will always load regardless of how many other audio channels are present.
- `excludedSourceIds`: Exclude Source IDs is an `Array` of `Strings` that denotes audio streams that should not be included in the multiplex. This feature is useful for conference-type applications where a user's **own** audio shouldn't be heard.

Expand Down
2 changes: 1 addition & 1 deletion millicast/playback/frame-metadata.md
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ const transformer = new TransformStream({
const frame_data = new Uint8Array(frame.data);
const total_length = frame_data.length;

// Shift to left for endianess to retrieve the metadata size from the last
// Shift to left for endianness to retrieve the metadata size from the last
// 4 bytes of the buffer
let shift = 3;
const size = frame_data.slice(total_length - 4).reduce((acc, v) => acc + (v << shift--), 0);
Expand Down
4 changes: 2 additions & 2 deletions millicast/playback/players-sdks/flutter/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ flutter pub add millicast_flutter_sdk

For windows you may need to allow installing apps from any source:

You should now see the follwing information in pubspec.yaml file:
You should now see the following information in pubspec.yaml file:

```yaml
dependencies:
Expand Down Expand Up @@ -269,7 +269,7 @@ try {
view.webRTCPeer.initStats();
return view;
} catch (e) {
throw Excpetion(e);
throw Exception(e);
}
```

Expand Down
2 changes: 1 addition & 1 deletion millicast/playback/players-sdks/viewer-events.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Currently, there are several events that can be listened to when connected to th

## Using events

:::tip Not familar with our SDKs?
:::tip Not familiar with our SDKs?
Learn more about the Dolby.io Millicast streaming SDKs by following the [Getting Started](/millicast/getting-started/creating-real-time-streaming-web-app.mdx) guide or by learning about our [Client SDKs](/millicast/playback/players-sdks/index.mdx).
:::

Expand Down
2 changes: 1 addition & 1 deletion millicast/playback/securing-stream-playback.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ import Img3 from '../assets/img/25a57ae-image.png';
</div>

:::caution Subscribe token exposed in the URL
For both the Embedded Viewer and the Hosted Viewer the Subscribe token is exposed in the URL. Unless your are using [IP filtering](/millicast/distribution/access-control/allowed-origins.md#ip-filters), users can share the URL and by extention the stream itself. To prevent this, each user should be served a Subscribe token unique to them. To learn about how to acomplish this continue to [Preventing Stream Sharing with Subscribe Tokens](/millicast/playback/securing-stream-playback.md#preventing-stream-sharing-with-subscribe-tokens).
For both the Embedded Viewer and the Hosted Viewer the Subscribe token is exposed in the URL. Unless your are using [IP filtering](/millicast/distribution/access-control/allowed-origins.md#ip-filters), users can share the URL and by extension the stream itself. To prevent this, each user should be served a Subscribe token unique to them. To learn about how to accomplish this continue to [Preventing Stream Sharing with Subscribe Tokens](/millicast/playback/securing-stream-playback.md#preventing-stream-sharing-with-subscribe-tokens).
:::

#### Viewing a secured stream with the embedded viewer
Expand Down
2 changes: 1 addition & 1 deletion millicast/streaming-dashboard/managing-your-tokens.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ Once created, your Publish token can be used to broadcast in a variety of differ

## Managing and editing existing publish tokens

Once a Pubish token is created, it is displayed on the **Live Broadcast** page. From this page, you can [start a broadcast using the Dashboard Broadcaster](/millicast/getting-started/using-the-dashboard.mdx#b-start-broadcast), enable or disable, delete, or edit the settings for each Publish token.
Once a Publish token is created, it is displayed on the **Live Broadcast** page. From this page, you can [start a broadcast using the Dashboard Broadcaster](/millicast/getting-started/using-the-dashboard.mdx#b-start-broadcast), enable or disable, delete, or edit the settings for each Publish token.

import Tempsnip from '../assets/img/tempsnip.png';

Expand Down
4 changes: 2 additions & 2 deletions millicast/streaming-dashboard/subscribe-tokens.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,8 @@ Of note in the manage screen is the **string of the Subscribe token itself**. Th
https://viewer.millicast.com?streamId=[Account ID]/[Stream Name]&token=[Subscribe Token]
```

:::caution Unsecure URL
The above example exposes the subscribe token in the URL. To prevent URL or token sharing, serve each viewer a unique subscribe token with the [BindsIPAddressOnUsage ](#advanced-settings) parameter enabled to bind the token to the user.
:::caution Insecure URL
The above example exposes the subscribe token in the URL. To prevent URL or token sharing, serve each viewer a unique subscribe token with the [BindsIPAddressOnUsage](#advanced-settings) parameter enabled to bind the token to the user.
:::

Depending on the scale of your production, it may not be secure or feasible to create tokens via the dashboard. Instead, you can create tokens via the [Token API](/millicast/streaming-dashboard/token-api.mdx), or, for true scalability, [you can self-sign tokens](#self-signing-subscribe-tokens).
Expand Down
4 changes: 2 additions & 2 deletions millicast/streaming-dashboard/token-api.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ From here, you can start using any of the APIs in the [API reference](/millicast

Publish tokens are required to start a stream and can be used to control who, where, and what kind of stream can be started. The easiest way to begin learning about programmatically creating a publish token is by going to the [PublishToken Create Token interface of the API reference](/millicast/api/publish-token-v-1-create-token.api.mdx).

Inside the reference, you'll see a section on the right where you can select your preferred programing language, add your [API Secret key](/millicast/streaming-dashboard/token-api.mdx#acquiring-your-api-secret), and see the sample call based on the parameters you've added so far. In the middle, you'll see where you can add and adjust the required and optional parameters, along with the respective parameter definitions.
Inside the reference, you'll see a section on the right where you can select your preferred programming language, add your [API Secret key](/millicast/streaming-dashboard/token-api.mdx#acquiring-your-api-secret), and see the sample call based on the parameters you've added so far. In the middle, you'll see where you can add and adjust the required and optional parameters, along with the respective parameter definitions.

import PubToken from '../assets/img/pubtok.png';

Expand Down Expand Up @@ -163,7 +163,7 @@ Unlike the publisher, the viewer, by default, does not need a subscribe token to

The easiest way to begin learning about creating a subscribe token is by going to [the _SubscribeToken Create Token_ interface of the API reference](/millicast/api/subscribe-token-v-1-create-token.api.mdx).

Inside the reference, you'll see a section on the right where you can select your preferred programing language, add your [API Secret key](/millicast/streaming-dashboard/token-api.mdx#acquiring-your-api-secret), and see the sample call based on the parameters you've added so far. In the middle, you'll see where you can add and adjust the required and optional parameters, along with the respective parameter definitions.
Inside the reference, you'll see a section on the right where you can select your preferred programming language, add your [API Secret key](/millicast/streaming-dashboard/token-api.mdx#acquiring-your-api-secret), and see the sample call based on the parameters you've added so far. In the middle, you'll see where you can add and adjust the required and optional parameters, along with the respective parameter definitions.

import SubToken from '../assets/img/subtok.png';

Expand Down
2 changes: 1 addition & 1 deletion theolive/callouts/_premium_feature.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
:::warning Premium Feature

This feature is a premium option that must be enabled on your acccount. If you would like to use this capability on your project, please [submit a support ticket](https://support.dolby.io/hc/en-au) or reach out to your [sales/solutions](https://optiview.dolby.com/contact/) contact.
This feature is a premium option that must be enabled on your account. If you would like to use this capability on your project, please [submit a support ticket](https://support.dolby.io/hc/en-au) or reach out to your [sales/solutions](https://optiview.dolby.com/contact/) contact.

:::
2 changes: 1 addition & 1 deletion theolive/contribution/software-encoders/obs.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Hit apply on settings, close the window, and click on _Start Streaming_ in the _

### 4. Start your THEOlive channel

Your THEOlive channel must be started in order to recieve video ingest from OBS. You can choose to start up your channel before or after you start streaming via OBS.
Your THEOlive channel must be started in order to receive video ingest from OBS. You can choose to start up your channel before or after you start streaming via OBS.

Starting a channel can be done either [through the API](/theolive/api/channels/start-channel) or via [the console](https://console.theo.live/).

Expand Down
Loading