# Playback

The final stage of the streaming workflow is taking the stream and playing it back for the end user. Similar to broadcasting, decoding the stream for playback is supported with a viewer for a wide range of devices and environments.

* Hosted streaming player with low-code drop-in support for many applications.

* Interactive playback for streams that support dynamic tracks, multiple layers, multiple views, and playback events.

* Support with [Client SDKs](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks.md) for building custom playback viewers for [Web](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/web/sdk.md), [iOS](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/ios/sdk.md), [Android](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/android/sdk.md), [React-Native](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/react-native.md), [Flutter](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/flutter.md), or desktop environments.

* Preview streams with poster images and thumbnails.

* **REST and GraphQL APIs** that provide analytics for tracking individual streams and user bandwidth tracking for who is viewing a stream.

* Broad support is made possible through implementations of [WebRTC HTTP Egress Protocol (WHEP)](https://www.ietf.org/archive/id/draft-ietf-wish-whep-01.html).

## Start building

## [🚀Getting Started](https://docs-preview.optiview.dolby.com/pr-863/millicast/getting-started.md)

[Quick start for playback of a stream in your application.](https://docs-preview.optiview.dolby.com/pr-863/millicast/getting-started.md)

### Client SDKs

[![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDI0djI0SDBWMHoiLz48cGF0aCBmaWxsPSIjODNDQkZGIiBkPSJNMTEuOTkgMkM2LjQ3IDIgMiA2LjQ4IDIgMTJzNC40NyAxMCA5Ljk5IDEwQzE3LjUyIDIyIDIyIDE3LjUyIDIyIDEyUzE3LjUyIDIgMTEuOTkgMnptNi45MyA2aC0yLjk1YTE1LjY1IDE1LjY1IDAgMCAwLTEuMzgtMy41NkE4LjAzIDguMDMgMCAwIDEgMTguOTIgOHpNMTIgNC4wNGMuODMgMS4yIDEuNDggMi41MyAxLjkxIDMuOTZoLTMuODJjLjQzLTEuNDMgMS4wOC0yLjc2IDEuOTEtMy45NnpNNC4yNiAxNEM0LjEgMTMuMzYgNCAxMi42OSA0IDEycy4xLTEuMzYuMjYtMmgzLjM4Yy0uMDguNjYtLjE0IDEuMzItLjE0IDJzLjA2IDEuMzQuMTQgMkg0LjI2em0uODIgMmgyLjk1Yy4zMiAxLjI1Ljc4IDIuNDUgMS4zOCAzLjU2QTcuOTg3IDcuOTg3IDAgMCAxIDUuMDggMTZ6bTIuOTUtOEg1LjA4YTcuOTg3IDcuOTg3IDAgMCAxIDQuMzMtMy41NkExNS42NSAxNS42NSAwIDAgMCA4LjAzIDh6TTEyIDE5Ljk2Yy0uODMtMS4yLTEuNDgtMi41My0xLjkxLTMuOTZoMy44MmMtLjQzIDEuNDMtMS4wOCAyLjc2LTEuOTEgMy45NnpNMTQuMzQgMTRIOS42NmMtLjA5LS42Ni0uMTYtMS4zMi0uMTYtMnMuMDctMS4zNS4xNi0yaDQuNjhjLjA5LjY1LjE2IDEuMzIuMTYgMnMtLjA3IDEuMzQtLjE2IDJ6bS4yNSA1LjU2Yy42LTEuMTEgMS4wNi0yLjMxIDEuMzgtMy41NmgyLjk1YTguMDMgOC4wMyAwIDAgMS00LjMzIDMuNTZ6TTE2LjM2IDE0Yy4wOC0uNjYuMTQtMS4zMi4xNC0ycy0uMDYtMS4zNC0uMTQtMmgzLjM4Yy4xNi42NC4yNiAxLjMxLjI2IDJzLS4xIDEuMzYtLjI2IDJoLTMuMzh6Ii8+PC9zdmc+Cg==) Web SDK](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/web/sdk.md)

[![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTcuODUgMTQuMjI3Yy0uMTA2LjMwNy0uMjE3LjYtLjMzNS44ODFhMTAuMzM4IDEwLjMzOCAwIDAgMS0xLjAyMiAxLjgzNmMtLjUzNi43NjYtLjk3NiAxLjI5Ni0xLjMxNSAxLjU5LS41MjUuNDgzLTEuMDg4LjczMS0xLjY5MS43NDQtLjQzMyAwLS45NTQtLjEyMy0xLjU2Mi0uMzcyLS42MDktLjI0OS0xLjE2OS0uMzcyLTEuNjgxLS4zNzItLjUzNyAwLTEuMTEzLjEyMy0xLjcyOS4zNzItLjYxNy4yNDktMS4xMTQuMzgtMS40OTQuMzkyLS41NzguMDI1LTEuMTU0LS4yMjktMS43MjktLjc2NC0uMzY3LS4zMi0uODI2LS44NjktMS4zNzYtMS42NDYtLjU5LS44My0xLjA3NS0xLjc5My0xLjQ1NS0yLjg5MS0uNDA3LTEuMTg1LS42MTEtMi4zMzMtLjYxMS0zLjQ0NCAwLTEuMjczLjI3NS0yLjM3MS44MjYtMy4yOTFhNC44NDYgNC44NDYgMCAwIDEgMS43My0xLjc1IDQuNjU0IDQuNjU0IDAgMCAxIDIuMzM5LS42NmMuNDU5IDAgMS4wNjEuMTQyIDEuODA5LjQyMS43NDYuMjggMS4yMjUuNDIyIDEuNDM1LjQyMi4xNTcgMCAuNjg5LS4xNjYgMS41OTEtLjQ5Ny44NTMtLjMwNyAxLjU3My0uNDM0IDIuMTYzLS4zODQgMS41OTguMTI5IDIuNzk4Ljc1OSAzLjU5NyAxLjg5NC0xLjQyOS44NjYtMi4xMzYgMi4wNzktMi4xMjIgMy42MzUuMDEzIDEuMjEyLjQ1MiAyLjIyMSAxLjMxNiAzLjAyMi4zOTIuMzcxLjgzLjY1OCAxLjMxNi44NjJ6TTEzLjgzLjMwNWMuMDEzLjEyNy4wMTkuMjU0LjAxOS4zOCAwIC45NS0uMzQ3IDEuODM3LTEuMDM4IDIuNjU4LS44MzUuOTc2LTEuODQ1IDEuNTQtMi45NCAxLjQ1MWEyLjk1IDIuOTUgMCAwIDEtLjAyMi0uMzZjMC0uOTEyLjM5Ny0xLjg4OCAxLjEwMi0yLjY4Ni4zNTItLjQwNC44LS43NCAxLjM0Mi0xLjAwOC41NDItLjI2NCAxLjA1NS0uNDEgMS41MzctLjQzNXoiLz48L3N2Zz4K) iOS SDK](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/ios/sdk.md)

[![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NzUiIGhlaWdodD0iNjc1IiB2aWV3Qm94PSIwIDAgNjc1IDY3NSI+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTY3Mi4zOCA1MTQuMjNjLS4yMi0xLjM3OC0uNDMtMi43NC0uNjYtNC4xMDJhMzM1LjExMiAzMzUuMTEyIDAgMCAwLTUuMTMtMjUuMDQxIDMzNy4xOCAzMzcuMTggMCAwIDAtMjguNTEtNzUuNjMgMzQxLjIwNyAzNDEuMjA3IDAgMCAwLTI0LjU2LTQwLjA3MiAzMzguNiAzMzguNiAwIDAgMC0zNy4xLTQzLjY5NyAzMzQuMTc2IDMzNC4xNzYgMCAwIDAtMTcuNjYtMTYuMzYxIDMzOS42MiAzMzkuNjIgMCAwIDAtNDIuMDYtMzAuOThjLjEzLS4yMTQuMjQtLjQ0My4zNy0uNjU3IDYuNzktMTEuNzMyIDEzLjYtMjMuNDQ5IDIwLjM5LTM1LjE4MWwxOS45Mi0zNC4zNjFhMTA0MjcuNCAxMDQyNy40IDAgMCAwIDE0LjMtMjQuNjggMzEuMjggMzEuMjggMCAwIDAgMi42OS02LjAzOCAzMC45NiAzMC45NiAwIDAgMCAuNDUtMTcuNDQ0IDMxLjc0MyAzMS43NDMgMCAwIDAtMy4zNS03Ljk1OWMtMi41NC00LjI2Ni02LjE3LTcuOTc0LTEwLjczLTEwLjY4MmEzMS4xNSAzMS4xNSAwIDAgMC0xMy4xNi00LjIzMyAzMS40NTUgMzEuNDU1IDAgMCAwLTUuODMuMDVjLTEuNi4xNjMtMy4xOS40NTktNC43Ny44NjlhMzAuODY1IDMwLjg2NSAwIDAgMC0xNC45IDkuMDQxIDMxLjEwNiAzMS4xMDYgMCAwIDAtMy45MSA1LjMzM2MtNC43NyA4LjIyMS05LjU0IDE2LjQ1OS0xNC4zIDI0LjY4bC0xOS45MiAzNC4zNjFjLTYuNzkgMTEuNzMzLTEzLjYgMjMuNDQ5LTIwLjM5IDM1LjE4Mi0uNzQgMS4yNzktMS40OSAyLjU1OS0yLjIzIDMuODU2LTEuMDMtLjQxMS0yLjA1LS44MjEtMy4wOC0xLjIxNS0zNy40NC0xNC4yNzYtNzguMDYtMjIuMDg3LTEyMC41Mi0yMi4wODctMS4xNiAwLTIuMzEgMC0zLjQ4LjAxNy0zNy43NS4zNzctNzQuMDIgNi45NDEtMTA3Ljg2IDE4LjcyM2EzMTQuMDMyIDMxNC4wMzIgMCAwIDAtMTEuNjIgNC4zMTZjLS42OS0xLjE5OC0xLjQtMi4zOTYtMi4wOC0zLjU5NC02Ljc5LTExLjczMy0xMy42LTIzLjQ0OS0yMC4zOS0zNS4xODJsLTE5LjkyLTM0LjM2Yy00Ljc4LTguMjIyLTkuNTUtMTYuNDYtMTQuMy0yNC42OGEzMS42NDMgMzEuNjQzIDAgMCAwLTMuOTEtNS4zMzMgMzAuODY1IDMwLjg2NSAwIDAgMC0xNC45LTkuMDQyYy0xLjU4LS40MS0zLjE3LS43MDUtNC43OC0uODdhMzEuMzQgMzEuMzQgMCAwIDAtNS44Mi0uMDQ5IDMwLjc4NCAzMC43ODQgMCAwIDAtMTMuMTcgNC4yMzQgMzAuODA5IDMwLjgwOSAwIDAgMC0xMC43MiAxMC42ODIgMzAuMzczIDMwLjM3MyAwIDAgMC0xLjk1IDMuODczIDI5LjU4OSAyOS41ODkgMCAwIDAtMS40IDQuMDg2IDMxLjA0OCAzMS4wNDggMCAwIDAgLjQ0IDE3LjQ0MyAzMS45MDUgMzEuOTA1IDAgMCAwIDIuNjkgNi4wMzljNC43OCA4LjIyIDkuNTUgMTYuNDU4IDE0LjMgMjQuNjggNi42NSAxMS40NTMgMTMuMjkgMjIuOTA3IDE5LjkzIDM0LjM2IDYuNzkgMTEuNzMzIDEzLjU5IDIzLjQ0OSAyMC4zOCAzNS4xODIuMDUuMDk4LjEyLjE5Ny4xNy4yOTVhMzM5LjY2NyAzMzkuNjY3IDAgMCAwLTM5LjAzIDI4LjI3MyAzMzcuNzQxIDMzNy43NDEgMCAwIDAtMjEuMjcgMTkuNDQ1IDM0MS4wMDcgMzQxLjAwNyAwIDAgMC0zNy4xIDQzLjY5OCAzMzUuODYzIDMzNS44NjMgMCAwIDAtMjQuNTYgNDAuMDcyIDMzNy4xOCAzMzcuMTggMCAwIDAtMjguNTEgNzUuNjMgMzQzLjc2NyAzNDMuNzY3IDAgMCAwLTUuMTMgMjUuMDQxYy0uMjMgMS4zNjItLjQ0IDIuNzQtLjY1IDQuMTAyYTMyOC40MiAzMjguNDIgMCAwIDAtMS45NCAxNC44MThoNjczLjExYy0uNTQtNC45NzItMS4xOC05LjkxMi0xLjkzLTE0LjgxOGwuMDUtLjAzM1oiLz48cGF0aCBmaWxsPSIjMjAyMTI0IiBkPSJNNTEyLjc5IDQzNS45ODdjMTMuNDctOC45NjYgMTUuNDMtMjkuNzEgNC4zNy00Ni4zMzEtMTEuMDUtMTYuNjIyLTMwLjkzLTIyLjgyNy00NC4zOS0xMy44NjEtMTMuNDcgOC45NjctMTUuNDMgMjkuNzEtNC4zNyA0Ni4zMzEgMTEuMDUgMTYuNjIyIDMwLjkzIDIyLjgyOCA0NC4zOSAxMy44NjFaTTIwNy42IDQyMi4xODRjMTEuMDYtMTYuNjIyIDkuMS0zNy4zNjUtNC4zNy00Ni4zMzEtMTMuNDctOC45NjctMzMuMzQtMi43NjEtNDQuNCAxMy44Ni0xMS4wNSAxNi42MjItOS4wOSAzNy4zNjUgNC4zNyA0Ni4zMzEgMTMuNDcgOC45NjcgMzMuMzUgMi43NjEgNDQuNC0xMy44NloiLz48L3N2Zz4K) Android SDK](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/android/sdk.md)

[![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMS41IC0xMC4yMzIgMjMgMjAuNDYzIj48Y2lyY2xlIHI9IjIuMDUiIGZpbGw9IiM2MWRhZmIiLz48ZyBmaWxsPSJub25lIiBzdHJva2U9IiM2MWRhZmIiPjxlbGxpcHNlIHJ4PSIxMSIgcnk9IjQuMiIvPjxlbGxpcHNlIHJ4PSIxMSIgcnk9IjQuMiIgdHJhbnNmb3JtPSJyb3RhdGUoNjApIi8+PGVsbGlwc2Ugcng9IjExIiByeT0iNC4yIiB0cmFuc2Zvcm09InJvdGF0ZSgxMjApIi8+PC9nPjwvc3ZnPgo=) React Native](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/react-native.md)

[![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48cGF0aCBkPSJNMTcuODUgMTQuMjI3Yy0uMTA2LjMwNy0uMjE3LjYtLjMzNS44ODFhMTAuMzM4IDEwLjMzOCAwIDAgMS0xLjAyMiAxLjgzNmMtLjUzNi43NjYtLjk3NiAxLjI5Ni0xLjMxNSAxLjU5LS41MjUuNDgzLTEuMDg4LjczMS0xLjY5MS43NDQtLjQzMyAwLS45NTQtLjEyMy0xLjU2Mi0uMzcyLS42MDktLjI0OS0xLjE2OS0uMzcyLTEuNjgxLS4zNzItLjUzNyAwLTEuMTEzLjEyMy0xLjcyOS4zNzItLjYxNy4yNDktMS4xMTQuMzgtMS40OTQuMzkyLS41NzguMDI1LTEuMTU0LS4yMjktMS43MjktLjc2NC0uMzY3LS4zMi0uODI2LS44NjktMS4zNzYtMS42NDYtLjU5LS44My0xLjA3NS0xLjc5My0xLjQ1NS0yLjg5MS0uNDA3LTEuMTg1LS42MTEtMi4zMzMtLjYxMS0zLjQ0NCAwLTEuMjczLjI3NS0yLjM3MS44MjYtMy4yOTFhNC44NDYgNC44NDYgMCAwIDEgMS43My0xLjc1IDQuNjU0IDQuNjU0IDAgMCAxIDIuMzM5LS42NmMuNDU5IDAgMS4wNjEuMTQyIDEuODA5LjQyMS43NDYuMjggMS4yMjUuNDIyIDEuNDM1LjQyMi4xNTcgMCAuNjg5LS4xNjYgMS41OTEtLjQ5Ny44NTMtLjMwNyAxLjU3My0uNDM0IDIuMTYzLS4zODQgMS41OTguMTI5IDIuNzk4Ljc1OSAzLjU5NyAxLjg5NC0xLjQyOS44NjYtMi4xMzYgMi4wNzktMi4xMjIgMy42MzUuMDEzIDEuMjEyLjQ1MiAyLjIyMSAxLjMxNiAzLjAyMi4zOTIuMzcxLjgzLjY1OCAxLjMxNi44NjJ6TTEzLjgzLjMwNWMuMDEzLjEyNy4wMTkuMjU0LjAxOS4zOCAwIC45NS0uMzQ3IDEuODM3LTEuMDM4IDIuNjU4LS44MzUuOTc2LTEuODQ1IDEuNTQtMi45NCAxLjQ1MWEyLjk1IDIuOTUgMCAwIDEtLjAyMi0uMzZjMC0uOTEyLjM5Ny0xLjg4OCAxLjEwMi0yLjY4Ni4zNTItLjQwNC44LS43NCAxLjM0Mi0xLjAwOC41NDItLjI2NCAxLjA1NS0uNDEgMS41MzctLjQzNXoiLz48L3N2Zz4K) Mac SDK](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/desktop.md)

[![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cGF0aCBkPSJNODYuNzYgMjU1YTkuODkgOS44OSAwIDAgMCA0Ljg3LTEuMjkgOS44MiA5LjgyIDAgMCAwIDMuNjUtMTMuNDNjLTE2LjQ2LTI4LjU2LTE3LjgxLTUyLjEyLTcuNDUtNzAgMTQuMjYtMjQuNTcgNTMuNjEtMzMuNjUgMTA1LjI3LTI0LjI5YTkuODYgOS44NiAwIDAgMCAxMS40NS03LjkgOS44NCA5Ljg0IDAgMCAwLTcuOTMtMTEuNDRjLTI5LjE5LTUuMjgtNTYtNS4xOC03Ny4zOS4zLTIyLjMgNS43MS0zOSAxNy4yOC00OC40NSAzMy40OC0xNCAyNC4xOS0xMi43IDU0LjczIDcuNDIgODkuNjJhOS44NSA5Ljg1IDAgMCAwIDguNTYgNC45NVpNMzYxLjYxIDE0My43M2MzMi4yNC40MiA1Mi42MSA5LjMxIDYyLjc5IDI2Ljg2IDE0LjIxIDI0LjQ4IDIuNTIgNjIuODEtMzEuMjcgMTAyLjUyYTkuODIgOS44MiAwIDAgMCA3LjUxIDE2LjE4IDkuODggOS44OCAwIDAgMCA3LjUyLTMuNDZjMTkuMTItMjIuNDcgMzIuMzUtNDUuNTQgMzguMjUtNjYuNzEgNi4xNC0yMiA0LjQzLTQyLjIxLTUtNTguMzgtMTMuOC0yMy43OC00MC4xMy0zNi4xNS03OS41OS0zNi42N2gtLjE0YTkuODMgOS44MyAwIDAgMC0uMTIgMTkuNjZaTTMyNi40NyA0MTQuODlhOS44OCA5Ljg4IDAgMCAwLTEzLjUgMy4zNWMtMTYuNDEgMjcuMTUtMzYuNTcgNDIuMS01Ni43NyA0Mi4xLTI4LjQ5IDAtNTYtMjkuMzEtNzMuNzMtNzguNDJhOS44NyA5Ljg3IDAgMCAwLTEyLjU5LTUuOTIgOS44MyA5LjgzIDAgMCAwLTYgMTIuNThjMTAgMjcuNzcgMjMuNDcgNTAuNzUgMzkgNjYuNDYgMTYuMTEgMTYuMzQgMzQuNTUgMjUgNTMuMzIgMjUgMjcuMzggMCA1My41NC0xOC4zMyA3My42NS01MS42MWE5LjgxIDkuODEgMCAwIDAtMy4zOC0xMy41Wk00MzEuNyAzMzguNTRhMzIuMTQgMzIuMTQgMCAwIDAtMjkuOSA0NC4zM2MtNDEuOCAxOS41LTExOS44IDQuNzktMTkxLjg3LTM2LjYyLTMyLjkxLTE4LjktNjIuMTYtNDEuODYtODQuNi02Ni4zOWE5LjkgOS45IDAgMCAwLTEzLjkxLS42NSA5LjggOS44IDAgMCAwLS42NSAxMy45YzIzLjc5IDI2IDU0LjY4IDUwLjI4IDg5LjMzIDcwLjE4IDQwLjI4IDIzLjEzIDgyLjI3IDM4LjYzIDEyMS40MyA0NC44MWEyMjUuNTQgMjI1LjU0IDAgMCAwIDM1IDIuOTFjMjMuMTIgMCA0My00LjMgNTguNTEtMTIuNzlhMzIuMiAzMi4yIDAgMSAwIDE2LjctNTkuNjhabTAgNDQuNjZhMTIuNiAxMi42IDAgMCAxLTcuODItMi43MiAxMCAxMCAwIDAgMC0yLjItMi4yMSAxMi42MSAxMi42MSAwIDEgMSAxMCA0LjkzWiIvPjxwYXRoIGQ9Ik04Mi4wOSAzMzguNTljLjU3LTIxLjI2IDEyLjQxLTQ3IDMzLjY4LTczLjE2IDIzLjE5LTI4LjQ1IDU2LjY5LTU2IDk0LjM0LTc3LjY1IDMzLjI1LTE5LjEgNjUuMi0zMS45IDk4LjA3LTM4LjkxYTkuODMgOS44MyAwIDEgMC00LjEyLTE5LjIyYy0zNC44NSA3LjQzLTY4Ljc4IDIxLTEwMy43OSA0MS4wOUMxMTYuMDkgMjE5LjA5IDU5LjkgMjg5Ljg4IDYyLjQ2IDM0My45YTMyLjMyIDMyLjMyIDAgMSAwIDE5LjYzLTUuMzFaTTgwLjMgMzgzLjJhMTIuNSAxMi41IDAgMSAxIDEyLjU5LTEyLjUgMTIuNTYgMTIuNTYgMCAwIDEtMTIuNTkgMTIuNVoiLz48cGF0aCBkPSJNMjU2LjIgOTYuMzJhMzIuMjMgMzIuMjMgMCAwIDAgMjYuNTMtMTMuODFjMTcuODkgMTEuNjkgMzQgMzUgNDUuODEgNjYuMTIgMTMgMzQuMzkgMTkuODQgNzUuMzggMTkuODQgMTE4LjU0IDAgMzcuMTgtNS4xOSA3Mi4zNS0xNSAxMDMuNmE5LjcyIDkuNzIgMCAwIDAgLjY2IDcuNDkgOS44MiA5LjgyIDAgMCAwIDUuOCA0Ljg0IDkuODkgOS44OSAwIDAgMCAxMi4zNC02LjQ0YzEwLjQyLTMzLjE0IDE1LjkzLTcwLjM0IDE1LjkzLTEwOS40OSAwLTQ3LjE3LTcuNzctOTEuNzctMjIuNDctMTI5LTE0LjQxLTM2LjQ4LTM0LjEzLTYyLjQtNTcuMTQtNzUuMTZhMzIuMyAzMi4zIDAgMSAwLTMyLjMgMzMuMzFabTAtNDQuNjZhMTIuNSAxMi41IDAgMSAxLTEyLjU5IDEyLjUgMTIuNTYgMTIuNTYgMCAwIDEgMTIuNTktMTIuNVpNMjUxIDI0My4zNmEyNC4zNSAyNC4zNSAwIDAgMCA1LjE2IDQ4LjE2IDI0LjY4IDI0LjY4IDAgMCAwIDUuMTYtLjU1QTI0LjM2IDI0LjM2IDAgMSAwIDI1MSAyNDMuMzZaIi8+PC9zdmc+Cg==) Linux SDK](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/desktop.md)

[![](data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMDAgMzcxLjQzIj48ZGVmcz48cmFkaWFsR3JhZGllbnQgaWQ9InJhZGlhbC1ncmFkaWVudCIgY3g9IjU2NDkuNzciIGN5PSI0MzE5LjQxIiByPSIxODE3LjcyIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KC4yNSAwIDAgLjI1IC0xNDA0IC0xMDU0LjUzKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIuMSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9yYWRpYWxHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImxpbmVhci1ncmFkaWVudCIgeDE9IjYyNTQuMSIgeDI9IjY0MjQuMzQiIHkxPSI1NTc2LjU2IiB5Mj0iNTQwNi4zMSIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCguMjUgMCAwIC4yNSAtMTQwNCAtMTA1NC41MykiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMxYTIzN2UiIHN0b3Atb3BhY2l0eT0iLjQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxYTIzN2UiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGNsaXBQYXRoIGlkPSJjbGlwLXBhdGgiPjxwYXRoIGZpbGw9Im5vbmUiIGQ9Im0zMDAgMTcxLjQzLTEwMCAxMDAgMTAwIDEwMEgxODUuNzJsLTQyLjg2LTQyLjg2LTU3LjE1LTU3LjE1IDEwMC0xMDBaTTE4NS43MiAwIDAgMTg1LjcybDU3LjE1IDU3LjE1TDMwMCAwWiIvPjwvY2xpcFBhdGg+PHN0eWxlPi5jbHMtMntjbGlwLXBhdGg6dXJsKCNjbGlwLXBhdGgpfS5jbHMtNHtmaWxsOiM1NGM1Zjh9PC9zdHlsZT48L2RlZnM+PGcgY2xhc3M9ImNscy0yIj48cGF0aCBkPSJNMzAwIDE3MS40M0gxODUuNzJMODUuNzMgMjcxLjQ0bDU3LjEyIDU3LjEzTDMwMCAxNzEuNDN6IiBjbGFzcz0iY2xzLTQiLz48L2c+PGcgY2xhc3M9ImNscy0yIj48cGF0aCBkPSJNNTcuMTUgMjQyLjg3IDAgMTg1LjcyIDE4NS43MiAwSDMwMEw1Ny4xNSAyNDIuODd6IiBjbGFzcz0iY2xzLTQiLz48L2c+PHBhdGggZmlsbD0iIzAxNTc5YiIgZD0ibTE0Mi44NSAzMjguNTcgNDIuODcgNDIuODdIMzAwbC05OS45OS0xMDAtNTcuMTYgNTcuMTN6IiBjbGFzcz0iY2xzLTIiLz48cGF0aCBmaWxsPSJ1cmwoI2xpbmVhci1ncmFkaWVudCkiIGQ9Im0xNDIuODUgMzI4LjU3IDg0Ljc2LTI5LjMzLTI3LjYtMjcuOC01Ny4xNiA1Ny4xM3oiIGNsYXNzPSJjbHMtMiIvPjxwYXRoIGZpbGw9IiMyOWI2ZjYiIGQ9Im04NS43MTYgMjcxLjQ0IDU3LjE0MS01Ny4xNDJMMjAwIDI3MS40NGwtNTcuMTQyIDU3LjE0MXoiIGNsYXNzPSJjbHMtMiIvPjxwYXRoIGZpbGw9InVybCgjcmFkaWFsLWdyYWRpZW50KSIgZD0ibTMwMCAxNzEuNDMtMTAwIDEwMCAxMDAgMTAwSDE4NS43MmwtNDIuODYtNDIuODYtNTcuMTUtNTcuMTUgMTAwLTEwMFpNMTg1LjcyIDAgMCAxODUuNzJsNTcuMTUgNTcuMTVMMzAwIDBaIi8+PC9zdmc+Cg==) Flutter SDK](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/flutter.md)

[![](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDU2IiBoZWlnaHQ9IjQ1NiIgdmlld0JveD0iMCAwIDQ1NiA0NTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSI0NTYiIGhlaWdodD0iNDU2IiBmaWxsPSIjNTEyQkQ0Ii8+CjxwYXRoIGQ9Ik04MS4yNzM4IDI5MS4zMzNDNzguMDQ5NiAyOTEuMzMzIDc1LjMwOSAyOTAuMjU5IDczLjA1MiAyODguMTFDNzAuNzk1IDI4NS45MDYgNjkuNjY2NSAyODMuMjg5IDY5LjY2NjUgMjgwLjI1OUM2OS42NjY1IDI3Ny4xNzMgNzAuNzk1IDI3NC41MjkgNzMuMDUyIDI3Mi4zMjVDNzUuMzA5IDI3MC4xMjEgNzguMDQ5NiAyNjkuMDE5IDgxLjI3MzggMjY5LjAxOUM4NC41NTE4IDI2OS4wMTkgODcuMzE5MyAyNzAuMTIxIDg5LjU3NjMgMjcyLjMyNUM5MS44ODcgMjc0LjUyOSA5My4wNDI0IDI3Ny4xNzMgOTMuMDQyNCAyODAuMjU5QzkzLjA0MjQgMjgzLjI4OSA5MS44ODcgMjg1LjkwNiA4OS41NzYzIDI4OC4xMUM4Ny4zMTkzIDI5MC4yNTkgODQuNTUxOCAyOTEuMzMzIDgxLjI3MzggMjkxLjMzM1oiIGZpbGw9IndoaXRlIi8+CjxwYXRoIGQ9Ik0yMTAuMTY3IDI4OS41MTVIMTg5LjIwOUwxMzMuOTk0IDIwMi40MDZDMTMyLjU5NyAyMDAuMjAyIDEzMS40NDEgMTk3LjkxNSAxMzAuNTI4IDE5NS41NDZIMTMwLjA0NEMxMzAuNDc0IDE5OC4wODEgMTMwLjY4OSAyMDMuNTA4IDEzMC42ODkgMjExLjgyN1YyODkuNTE1SDExMi4xNDlWMTcxSDEzNC40NzdMMTg3LjgzOSAyNTYuMDQzQzE5MC4wOTYgMjU5LjU3IDE5MS41NDcgMjYxLjk5NCAxOTIuMTkyIDI2My4zMTZIMTkyLjUxNEMxOTEuOTc3IDI2MC4xNzYgMTkxLjcwOCAyNTQuODU5IDE5MS43MDggMjQ3LjM2NVYxNzFIMjEwLjE2N1YyODkuNTE1WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTMwMC40NDkgMjg5LjUxNUgyMzUuNTYxVjE3MUgyOTcuODdWMTg3LjY5NUgyNTQuNzQ2VjIyMS4yNDlIMjk0LjQ4NVYyMzcuODYxSDI1NC43NDZWMjcyLjkwM0gzMDAuNDQ5VjI4OS41MTVaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNMzkyLjY2NyAxODcuNjk1SDM1OS40NTdWMjg5LjUxNUgzNDAuMjcyVjE4Ny42OTVIMzA3LjE0M1YxNzFIMzkyLjY2N1YxODcuNjk1WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==) .NET SDK](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/desktop.md)

## Playback streaming media

The previous stages of [Capture](https://docs-preview.optiview.dolby.com/pr-863/millicast/capture.md), [Broadcast](https://docs-preview.optiview.dolby.com/pr-863/millicast/broadcast.md), and [Distribution](https://docs-preview.optiview.dolby.com/pr-863/millicast/distribution.md) all lead up to making the content available for the end-user to view.

### Using the streaming viewer

[OptiView Real-time Streaming Dashboard Viewer](https://docs-preview.optiview.dolby.com/pr-863/millicast/how-to-broadcast-in-dashboard.md)<br />The quickest and easiest way to test playback is to use your account dashboard. The streaming viewer is built into the OptiView Real-time Streaming Dashboard, so you can test out streaming right away. To build a more customized application, the [Client SDKs](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks.md) provide support for the most popular programming platforms.

[How-to Create Subscriber Tokens](https://docs-preview.optiview.dolby.com/pr-863/millicast/subscribe-tokens.md)<br />To broadcast, you need a *publishing* token. Similarly, to support playback in your application, you will need to be able to generate a *subscriber* token. This can be done either in a web application or with an [API](https://docs-preview.optiview.dolby.com/pr-863/millicast/distribution/access-control.md).

[YouTube video player](https://www.youtube.com/embed/Tj4miDHMwSI)

### Previewing a stream

[How-to Add a Poster Image](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/hosted-player/customization.md)<br />A **poster image** is a graphic that lets the audience know that a session exists but that a broadcast has not yet begun.

[How-to Provide Thumbnail Image Previews](https://docs-preview.optiview.dolby.com/pr-863/millicast/webhooks/thumbnail.md)<br />A **thumbnail** is a static frame image that is captured at regular intervals during a broadcast. The thumbnail image offers a preview of what is being streamed to allow users to preview what is being presented before joining.

### Interactive viewer features

[How-to Create a Multi-view Web Application](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/multiview.md)<br />When more than one streaming source is being broadcast, the viewer is capable of presenting a lower-resolution preview of each incoming feed. The application can then let the user choose from these multi-view options.

[Source and Layer Selection](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/source-and-layer-selection.md)<br />For some applications, you may need to create more than one experience. The **multi-view application** can allow a host to choose which source layer should be sent as the primary stream that will be distributed for end-user playback. This feature can create the effect of switching between camera feeds and make dynamic cuts over the duration of the stream.

### Integrating third-party capabilities

[YouTube video player](https://www.youtube.com/embed/MrCbnQ0NyaM)

You can find examples of more third-party viewer integrations, such as the [developer blog](https://optiview.dolby.com/resources/blog/category/streaming/).

### Playback events and analytics

[YouTube video player](https://www.youtube.com/embed/v45XTACc5D8)

[Webhooks](https://docs-preview.optiview.dolby.com/pr-863/millicast/webhooks.md)<br />A **webhook** is a registered URL that will be called back from the OptiView Real-time platform with details about an event as it occurs. You can create webhooks for when a thumbnail is generated, a recording is complete, or when streams begin and end.

[Viewer events](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks/viewer-events.md)<br />Viewer events occur when a component of a stream changes, such as when a new source is published, simulcast layer information has changed, etc.

[Syndication](https://docs-preview.optiview.dolby.com/pr-863/millicast/distribution/syndication.md)<br />**Syndication** refers to the process of distributing or sharing content with multiple streaming partners while tracking and analyzing viewer data on bandwidth consumption.

[Streaming analytics](https://docs-preview.optiview.dolby.com/pr-863/millicast/analytics-api.md)<br />The account dashboard provides data-rich information about streaming usage for your individual account. There are also **REST** and **GraphQL** endpoints to generate custom reports and behaviors by querying that data.

### Playback on devices

The **WebRTC-HTTP Egress Protocol (WHEP)** is an IETF standard developed to leverage the capabilities of WebRTC to distribute and playback content onto a WebRTC-enabled device over HTTP. WHEP addresses problems with Real-time Streaming by removing translation layers during decoding.

**Real-time Streaming Monitor** apps were created to allow your users to quickly and easily view live streams powered by OptiView Real-time Streaming. Plug in your OptiView subscriber token to view streams on any Apple iOS, iPadOS, tvOS, or Android TV device.

Create and customize your own Real-time Streaming Monitor apps with a native [Client SDK](https://docs-preview.optiview.dolby.com/pr-863/millicast/playback/players-sdks.md).

## Learn more

## [![](/pr-863/img/github.svg)![](/pr-863/img/github_dark.svg)Explore GitHub samples](https://github.com/orgs/dolbyio-samples/repositories?q=playback)

## [🔗Find related blog posts](https://optiview.dolby.com/resources/blog/tag/playback/)
