{"id":88,"date":"2026-04-12T19:00:33","date_gmt":"2026-04-12T19:00:33","guid":{"rendered":"https:\/\/www.devopsschool.com\/tutorials\/alibaba-cloud-apsaravideo-live-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-media-services\/"},"modified":"2026-04-12T19:00:33","modified_gmt":"2026-04-12T19:00:33","slug":"alibaba-cloud-apsaravideo-live-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-media-services","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/tutorials\/alibaba-cloud-apsaravideo-live-tutorial-architecture-pricing-use-cases-and-hands-on-guide-for-media-services\/","title":{"rendered":"Alibaba Cloud ApsaraVideo Live Tutorial: Architecture, Pricing, Use Cases, and Hands-On Guide for Media Services"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Category<\/h2>\n\n\n\n<p>Media Services<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Introduction<\/h2>\n\n\n\n<p>ApsaraVideo Live is Alibaba Cloud\u2019s managed live streaming service in the <strong>Media Services<\/strong> portfolio. It helps you ingest a live video stream from an encoder (for example, OBS Studio), process it (optionally transcode, record, snapshot, time-shift), and deliver it to viewers at scale through Alibaba Cloud\u2019s streaming delivery network.<\/p>\n\n\n\n<p>In simple terms: you <strong>push<\/strong> a stream to Alibaba Cloud and your audience <strong>plays<\/strong> it back using standard streaming protocols (for example, RTMP ingest and HLS\/FLV playback). The service handles the heavy lifting of distribution, scalability, and operational tooling that would otherwise require building and operating your own streaming infrastructure.<\/p>\n\n\n\n<p>Technically, ApsaraVideo Live is built around <strong>streaming domains<\/strong>, <strong>ingest (push) endpoints<\/strong>, <strong>playback endpoints<\/strong>, and optional <strong>media processing pipelines<\/strong> (transcoding, recording, snapshots). It is typically paired with related Alibaba Cloud services such as <strong>Object Storage Service (OSS)<\/strong> for recordings, <strong>CDN<\/strong>-style delivery acceleration (as part of the live delivery network), <strong>RAM<\/strong> for access control, and <strong>CloudMonitor\/ActionTrail<\/strong> for governance.<\/p>\n\n\n\n<p>It solves problems like:\n&#8211; Serving large audiences without overloading your origin\n&#8211; Avoiding complex self-managed RTMP\/HLS infrastructure\n&#8211; Adding common live features (transcoding ladders, recording, snapshots, access control) with managed operations<\/p>\n\n\n\n<blockquote>\n<p>Service status note: As of writing, <strong>ApsaraVideo Live<\/strong> is the current product name commonly used by Alibaba Cloud for live streaming. Some older materials may refer to <strong>ApsaraVideo for Live<\/strong>. <strong>Verify in official docs<\/strong> if you see naming differences in your region\/console.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">2. What is ApsaraVideo Live?<\/h2>\n\n\n\n<p><strong>Official purpose (high-level):<\/strong> ApsaraVideo Live is a managed service for <strong>live video streaming<\/strong> on Alibaba Cloud. It supports stream ingest, live delivery, and optional media processing features needed for production live streaming.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Core capabilities<\/h3>\n\n\n\n<p>Common capabilities (verify exact availability by region and account):\n&#8211; Live stream <strong>ingest<\/strong> (commonly RTMP push)\n&#8211; Live stream <strong>playback<\/strong> (commonly HLS and\/or FLV play)\n&#8211; <strong>Transcoding<\/strong> (multiple resolutions\/bitrates, codec\/container options depending on templates)\n&#8211; <strong>Recording<\/strong> to storage (commonly OSS) for replay\/VOD workflows\n&#8211; <strong>Snapshots<\/strong> (thumbnail capture)\n&#8211; <strong>Time shifting<\/strong> (DVR-like playback window; verify feature availability\/limits)\n&#8211; <strong>Access control<\/strong> (URL auth\/token, referer\/IP restrictions, HTTPS)\n&#8211; <strong>Monitoring<\/strong> (bandwidth\/traffic\/concurrency metrics; stream status)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Major components (conceptual)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Streaming Domain(s):<\/strong> Domains you bind to the service, commonly separated into:<\/li>\n<li><strong>Ingest (push) domain<\/strong><\/li>\n<li><strong>Playback (streaming) domain<\/strong><\/li>\n<li><strong>Application\/Stream Name:<\/strong> Logical identifiers used to form push\/play URLs<\/li>\n<li><strong>Templates &amp; Rules:<\/strong> Transcoding templates, recording rules, snapshot rules<\/li>\n<li><strong>Callbacks\/Notifications:<\/strong> Webhooks for stream start\/stop and events (verify exact callback types)<\/li>\n<li><strong>Analytics\/Monitoring:<\/strong> Dashboards and APIs for usage and health<\/li>\n<li><strong>Storage integration:<\/strong> Typically OSS for recordings and snapshots<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Service type and scope<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Service type:<\/strong> Managed live streaming platform (PaaS-style media service).<\/li>\n<li><strong>Scope:<\/strong> Primarily <strong>account-scoped<\/strong> with configuration centered around <strong>domains<\/strong>. The data plane is globally distributed for delivery, while the control plane is managed through the Alibaba Cloud console and APIs.<\/li>\n<li><strong>Regional\/global considerations:<\/strong> Live delivery is typically accelerated through Alibaba Cloud\u2019s global infrastructure, but <strong>feature availability, billing, and acceleration coverage can be region-dependent<\/strong>. <strong>Verify in official docs<\/strong> for your target audience geographies.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">How it fits into the Alibaba Cloud ecosystem<\/h3>\n\n\n\n<p>ApsaraVideo Live commonly integrates with:\n&#8211; <strong>OSS<\/strong> for storage of recordings\/snapshots\n&#8211; <strong>ApsaraVideo VOD<\/strong> for on-demand playback and media management (if you convert live recordings to VOD assets)\n&#8211; <strong>Media processing\/transcoding<\/strong> capabilities exposed through ApsaraVideo Live templates (and\/or related media services, depending on product boundaries in your region)\n&#8211; <strong>RAM<\/strong> for least-privilege access to APIs and console\n&#8211; <strong>ActionTrail<\/strong> for audit logs of console\/API actions\n&#8211; <strong>CloudMonitor<\/strong> for alerting and metric visibility\n&#8211; <strong>WAF \/ Anti-DDoS<\/strong> (where applicable) for perimeter protection of your playback domains<\/p>\n\n\n\n<p>Official documentation entry point (choose your language\/region):\n&#8211; https:\/\/www.alibabacloud.com\/help\/en\/apsaravideo-live<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">3. Why use ApsaraVideo Live?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Business reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Faster time-to-market:<\/strong> Launch live streaming without building RTMP ingest clusters, packaging, and edge distribution.<\/li>\n<li><strong>Audience scale:<\/strong> Handle spikes (events, product launches, sports) with managed scaling.<\/li>\n<li><strong>Consistent delivery:<\/strong> Better viewer experience through managed delivery infrastructure and tuning knobs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Technical reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Standards-based workflows:<\/strong> Compatible with common encoders and players (protocol support depends on configuration; verify exact protocols supported).<\/li>\n<li><strong>Processing features:<\/strong> Add multi-bitrate transcoding, recording, snapshots, and time shifting without separate custom pipelines.<\/li>\n<li><strong>API-driven automation:<\/strong> Domain configuration, templates, and monitoring can be automated (exact APIs vary; verify in docs).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operational reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Observability:<\/strong> Built-in dashboards and usage analytics reduce guesswork.<\/li>\n<li><strong>Managed maintenance:<\/strong> No patching of NGINX-RTMP, packagers, or edge nodes.<\/li>\n<li><strong>Operational guardrails:<\/strong> Quotas, configuration validation, and domain-based isolation.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Security\/compliance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Access control:<\/strong> URL signing\/token auth, HTTPS, referer restrictions, and IP allow\/deny lists.<\/li>\n<li><strong>Auditability:<\/strong> Integration with Alibaba Cloud governance tools (for example, ActionTrail).<\/li>\n<li><strong>Data residency considerations:<\/strong> Choose acceleration\/coverage appropriately; store recordings in region-specific OSS buckets.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Scalability\/performance reasons<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Edge distribution:<\/strong> Playback is served from distributed nodes, reducing origin load and latency.<\/li>\n<li><strong>Multi-bitrate streaming:<\/strong> Adaptive delivery patterns improve QoE under varying network conditions.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should choose it<\/h3>\n\n\n\n<p>Choose ApsaraVideo Live when you need:\n&#8211; Live streaming for web\/mobile\/OTT with predictable operations\n&#8211; Rapid rollout with domain-based configuration\n&#8211; Built-in processing (transcode\/record\/snapshot) and delivery at scale<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">When teams should not choose it<\/h3>\n\n\n\n<p>Consider alternatives when:\n&#8211; You need <strong>ultra-custom protocols<\/strong> or deep control over packaging\/DRM beyond what the service offers\n&#8211; You require <strong>private, VPC-only<\/strong> delivery (live streaming is typically public internet-facing; verify private options)\n&#8211; You need <strong>on-prem-only<\/strong> streaming with no cloud dependency\n&#8211; Your use case is purely <strong>VOD<\/strong> (ApsaraVideo VOD may be a better fit)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">4. Where is ApsaraVideo Live used?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Industries<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Media &amp; entertainment (live shows, concerts, esports)<\/li>\n<li>Education (live classes, webinars)<\/li>\n<li>Retail &amp; e-commerce (live commerce, product demos)<\/li>\n<li>Gaming (live game streaming)<\/li>\n<li>Enterprise communications (town halls, product launches)<\/li>\n<li>Government\/public sector communications (subject to compliance requirements)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Team types<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Platform engineering teams building internal streaming platforms<\/li>\n<li>Media engineering teams (broadcast\/OTT)<\/li>\n<li>DevOps\/SRE teams operating video services<\/li>\n<li>Application teams embedding live playback into apps<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Workloads<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>One-to-many live broadcasts<\/li>\n<li>Event-based spikes (launch events)<\/li>\n<li>24\/7 linear channels (verify long-running stream best practices\/limits)<\/li>\n<li>Live-to-VOD workflows (record and publish)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Architectures<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u201cEncoder \u2192 ApsaraVideo Live \u2192 Player\u201d basic pipeline<\/li>\n<li>\u201cEncoder \u2192 Live + transcoding ladder \u2192 Multi-CDN playback + analytics\u201d<\/li>\n<li>\u201cLive \u2192 Recording to OSS \u2192 VOD publishing\u201d<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Deployment contexts<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Production:<\/strong> Domain validation, HTTPS, auth tokens, monitoring\/alerting, runbooks<\/li>\n<li><strong>Dev\/Test:<\/strong> Short-lived test domains (or reuse a sandbox), minimal transcoding, limited recording to control cost<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">5. Top Use Cases and Scenarios<\/h2>\n\n\n\n<p>Below are realistic use cases you can implement with ApsaraVideo Live. For each, the \u201cwhy\u201d focuses on the managed live pipeline and delivery features.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\n<p><strong>Live product launch<\/strong>\n   &#8211; <strong>Problem:<\/strong> You need to stream a keynote to thousands of viewers with minimal buffering.\n   &#8211; <strong>Why ApsaraVideo Live fits:<\/strong> Managed scaling and delivery; optional multi-bitrate transcoding.\n   &#8211; <strong>Example:<\/strong> Marketing streams a 60-minute launch; playback is embedded on a landing page with signed URLs.<\/p>\n<\/li>\n<li>\n<p><strong>E-learning live classes<\/strong>\n   &#8211; <strong>Problem:<\/strong> Students watch from varied networks; you want recordings for replay.\n   &#8211; <strong>Why it fits:<\/strong> Transcoding ladders for QoE; recording rules to OSS.\n   &#8211; <strong>Example:<\/strong> Daily classes; recordings are pushed to an OSS bucket and later published via VOD.<\/p>\n<\/li>\n<li>\n<p><strong>Live commerce<\/strong>\n   &#8211; <strong>Problem:<\/strong> High concurrent viewers, need stable playback and access controls.\n   &#8211; <strong>Why it fits:<\/strong> Playback acceleration + URL authentication to reduce unauthorized re-streaming.\n   &#8211; <strong>Example:<\/strong> A brand runs weekly live demos; stream URLs rotate with short TTL tokens.<\/p>\n<\/li>\n<li>\n<p><strong>Corporate all-hands<\/strong>\n   &#8211; <strong>Problem:<\/strong> Internal event with controlled access and auditability.\n   &#8211; <strong>Why it fits:<\/strong> HTTPS + signed playback URLs; governance with ActionTrail.\n   &#8211; <strong>Example:<\/strong> Town hall stream accessible only from corporate portal using backend token generation.<\/p>\n<\/li>\n<li>\n<p><strong>24\/7 live channel (linear)<\/strong>\n   &#8211; <strong>Problem:<\/strong> Always-on stream; need operational visibility and failover planning.\n   &#8211; <strong>Why it fits:<\/strong> Stream monitoring, alarms, and stable delivery.\n   &#8211; <strong>Example:<\/strong> News channel runs continuous ingest; on encoder failure, operations switch to a backup encoder.<\/p>\n<\/li>\n<li>\n<p><strong>Event replay (DVR\/time-shift)<\/strong>\n   &#8211; <strong>Problem:<\/strong> Users want to rewind within a live event.\n   &#8211; <strong>Why it fits:<\/strong> Time shifting feature (verify availability and window size).\n   &#8211; <strong>Example:<\/strong> Sports event allows a 30\u2013120 minute rewind window.<\/p>\n<\/li>\n<li>\n<p><strong>Multi-region audience delivery<\/strong>\n   &#8211; <strong>Problem:<\/strong> Global viewers experience latency and buffering.\n   &#8211; <strong>Why it fits:<\/strong> Alibaba Cloud global delivery coverage (verify coverage in target regions).\n   &#8211; <strong>Example:<\/strong> A global webinar serves viewers in APAC\/EMEA; you validate playback performance by region.<\/p>\n<\/li>\n<li>\n<p><strong>Live stream content moderation workflow<\/strong>\n   &#8211; <strong>Problem:<\/strong> Need periodic snapshots for review or automated checks.\n   &#8211; <strong>Why it fits:<\/strong> Snapshot capture to OSS and callback events (verify snapshot\/callback integration).\n   &#8211; <strong>Example:<\/strong> Every 5 seconds a snapshot is stored; a moderation service flags violations.<\/p>\n<\/li>\n<li>\n<p><strong>Live monitoring and incident response<\/strong>\n   &#8211; <strong>Problem:<\/strong> Operations needs to detect stream interruptions quickly.\n   &#8211; <strong>Why it fits:<\/strong> Stream status metrics, alerts, and callbacks.\n   &#8211; <strong>Example:<\/strong> An alert triggers when ingest stops for &gt;30 seconds; on-call receives notification and runbook steps.<\/p>\n<\/li>\n<li>\n<p><strong>Live to VOD publishing<\/strong>\n   &#8211; <strong>Problem:<\/strong> After the live event, you need on-demand playback with chapters and metadata.\n   &#8211; <strong>Why it fits:<\/strong> Recording to OSS + subsequent ingestion to ApsaraVideo VOD (workflow depends on your setup).\n   &#8211; <strong>Example:<\/strong> Conference sessions are recorded, then uploaded\/registered in VOD for long-term hosting.<\/p>\n<\/li>\n<li>\n<p><strong>Secure paid live event<\/strong>\n   &#8211; <strong>Problem:<\/strong> Prevent link sharing and unauthorized hotlinking.\n   &#8211; <strong>Why it fits:<\/strong> URL signing\/token + referer controls + HTTPS.\n   &#8211; <strong>Example:<\/strong> Tickets include one-time tokens; backend refreshes tokens periodically.<\/p>\n<\/li>\n<li>\n<p><strong>Mobile app embedded live<\/strong>\n   &#8211; <strong>Problem:<\/strong> Need stable playback on mobile networks.\n   &#8211; <strong>Why it fits:<\/strong> HLS playback support; multi-bitrate transcoding.\n   &#8211; <strong>Example:<\/strong> App uses an HLS player; users get appropriate bitrate automatically.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">6. Core Features<\/h2>\n\n\n\n<p>The exact feature set can vary by region\/account. The items below reflect common ApsaraVideo Live capabilities; <strong>verify in official docs<\/strong> for your environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6.1 Streaming domain management (ingest and playback)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Lets you add domains to ApsaraVideo Live and configure them for pushing and playing streams.<\/li>\n<li><strong>Why it matters:<\/strong> Domain-based configuration isolates environments (dev\/prod) and enables HTTPS and access policies.<\/li>\n<li><strong>Practical benefit:<\/strong> Cleaner operations (separate ingest\/play domains), safer rollout.<\/li>\n<li><strong>Caveats:<\/strong> Requires DNS changes (CNAME). Domain ownership and ICP filing requirements may apply in some regions (verify requirements for Mainland China).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.2 Push and play URL generation<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Provides URL patterns for RTMP ingest and HLS\/FLV playback.<\/li>\n<li><strong>Why it matters:<\/strong> Standardizes how encoders and players connect.<\/li>\n<li><strong>Practical benefit:<\/strong> Easy integration with OBS\/VLC and web\/mobile players.<\/li>\n<li><strong>Caveats:<\/strong> URL formats differ based on enabled features (auth tokens, HTTPS, time shift). Always generate using console\/API examples for your domain.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.3 Transcoding (multi-bitrate, multi-resolution)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Converts an incoming stream into one or more output renditions.<\/li>\n<li><strong>Why it matters:<\/strong> Enables adaptive playback and broader device compatibility.<\/li>\n<li><strong>Practical benefit:<\/strong> Viewers on poor networks can fall back to lower bitrate streams.<\/li>\n<li><strong>Caveats:<\/strong> Transcoding increases cost and adds latency. Template options (codec, GOP, audio settings) must match your player expectations.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.4 Recording (live-to-file)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Records a live stream into files and stores them (commonly to OSS).<\/li>\n<li><strong>Why it matters:<\/strong> Enables replay, compliance archiving, and VOD publishing.<\/li>\n<li><strong>Practical benefit:<\/strong> No separate recording server needed.<\/li>\n<li><strong>Caveats:<\/strong> Storage costs apply (OSS + possibly lifecycle). File segmentation and naming conventions affect downstream workflows.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.5 Snapshot capture<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Captures periodic thumbnails or snapshots from the live stream.<\/li>\n<li><strong>Why it matters:<\/strong> Useful for previews, moderation, and content indexing.<\/li>\n<li><strong>Practical benefit:<\/strong> Lightweight visual monitoring and content workflow automation.<\/li>\n<li><strong>Caveats:<\/strong> Snapshot frequency affects cost\/storage. Consider retention policies.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.6 Time shifting (DVR)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Lets viewers rewind within a configured time window while the live stream continues.<\/li>\n<li><strong>Why it matters:<\/strong> Increases engagement and usability for long events.<\/li>\n<li><strong>Practical benefit:<\/strong> Users can catch up without waiting for VOD upload.<\/li>\n<li><strong>Caveats:<\/strong> Often increases storage\/processing. Window size and protocol support may be limited\u2014<strong>verify<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.7 Access control \/ anti-leech<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Protects playback URLs via token authentication, referer allow\/deny, and IP restrictions.<\/li>\n<li><strong>Why it matters:<\/strong> Reduces unauthorized access and bandwidth theft.<\/li>\n<li><strong>Practical benefit:<\/strong> Paywalled events and partner distributions are safer.<\/li>\n<li><strong>Caveats:<\/strong> Misconfigurations can block legitimate users. Token TTL and clock skew must be handled.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.8 HTTPS and certificates<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Supports TLS for playback and\/or ingest (depending on supported protocols).<\/li>\n<li><strong>Why it matters:<\/strong> Prevents interception and meets security requirements.<\/li>\n<li><strong>Practical benefit:<\/strong> Works with modern browsers and corporate security policies.<\/li>\n<li><strong>Caveats:<\/strong> Certificate management (upload\/renew) is operational work unless integrated with certificate services (verify supported certificate workflows).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.9 Callbacks and event notifications<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Sends HTTP callbacks for events like stream start\/stop or recording completion (types vary).<\/li>\n<li><strong>Why it matters:<\/strong> Enables automation: update stream status, start moderation, trigger alerts.<\/li>\n<li><strong>Practical benefit:<\/strong> Integrate live events into your platform.<\/li>\n<li><strong>Caveats:<\/strong> You must secure callback endpoints (signatures, IP allowlist) and handle retries\/idempotency.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.10 Monitoring, metrics, and logs<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>What it does:<\/strong> Provides visibility into bandwidth, traffic, concurrency, stream health, and historical stats.<\/li>\n<li><strong>Why it matters:<\/strong> Live streaming needs fast detection of failures (encoder issues, DNS, auth failures).<\/li>\n<li><strong>Practical benefit:<\/strong> Faster incident response and better capacity\/cost planning.<\/li>\n<li><strong>Caveats:<\/strong> Metrics granularity and retention vary. For long-term analytics, export\/ETL may be needed\u2014<strong>verify official integrations<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">7. Architecture and How It Works<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">7.1 High-level architecture<\/h3>\n\n\n\n<p>ApsaraVideo Live splits into:\n&#8211; <strong>Control plane:<\/strong> Console and APIs to configure domains, templates, rules, auth, and to query metrics.\n&#8211; <strong>Data plane:<\/strong> Ingest endpoints receive RTMP streams; processing nodes apply transcoding\/recording\/snapshot; playback is served from distributed delivery nodes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7.2 Request\/data\/control flow (typical)<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Admin configures<\/strong> ingest domain and playback domain in the Alibaba Cloud console.<\/li>\n<li>Admin configures <strong>DNS CNAME<\/strong> records for those domains as directed by ApsaraVideo Live.<\/li>\n<li>Encoder (OBS, hardware encoder) <strong>pushes RTMP<\/strong> to the ingest domain using <code>AppName\/StreamName<\/code>.<\/li>\n<li>Optional: ApsaraVideo Live performs <strong>transcoding<\/strong>, <strong>recording<\/strong>, and <strong>snapshot<\/strong> per configured rules.<\/li>\n<li>Viewers <strong>play<\/strong> via HLS\/FLV using the playback domain and same <code>AppName\/StreamName<\/code> (or variant).<\/li>\n<li>Monitoring dashboards show <strong>stream status<\/strong> and usage metrics. Callbacks notify your app of events.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">7.3 Integrations with related services<\/h3>\n\n\n\n<p>Common integrations (verify exact steps in docs):\n&#8211; <strong>OSS:<\/strong> Store recordings and snapshots; apply lifecycle policies to control cost.\n&#8211; <strong>ApsaraVideo VOD:<\/strong> Publish recorded assets as VOD content with metadata and DRM options (VOD feature set differs from Live).\n&#8211; <strong>RAM:<\/strong> Restrict who can manage domains, templates, and view metrics.\n&#8211; <strong>ActionTrail:<\/strong> Audit configuration changes.\n&#8211; <strong>CloudMonitor:<\/strong> Alert on bandwidth anomalies or stream interruptions (availability varies; verify).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7.4 Dependency services<\/h3>\n\n\n\n<p>You typically need:\n&#8211; A registered <strong>domain name<\/strong> and DNS control\n&#8211; Optionally OSS for recordings\/snapshots\n&#8211; Optionally certificate management for HTTPS<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7.5 Security\/authentication model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Console and API access is governed by <strong>Alibaba Cloud account<\/strong> and <strong>RAM<\/strong> users\/roles.<\/li>\n<li>Playback protection often uses <strong>URL signing\/token authentication<\/strong> and policy controls.<\/li>\n<li>Callbacks require securing your endpoint and validating request signatures (if provided).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7.6 Networking model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ingest and playback are usually over the public internet via your configured domains.<\/li>\n<li>Your application backend (token service, portal) can run on Alibaba Cloud (ECS, ACK) or elsewhere.<\/li>\n<li>For enterprise security, combine with HTTPS, WAF (if applicable to your domain), and strict access controls.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">7.7 Monitoring\/logging\/governance<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use ApsaraVideo Live\u2019s built-in metrics for real-time operations.<\/li>\n<li>Track configuration changes with ActionTrail.<\/li>\n<li>Consider centralizing logs\/metrics with your existing observability stack (export options depend on product capabilities\u2014<strong>verify<\/strong>).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Simple architecture diagram (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart LR\n  Encoder[OBS \/ Hardware Encoder] -- RTMP Push --&gt; IngestDomain[Ingest Domain\\n(ApsaraVideo Live)]\n  IngestDomain --&gt; LiveService[ApsaraVideo Live\\nProcessing + Delivery]\n  LiveService -- HLS\/FLV Play --&gt; Viewers[Web\/Mobile Players]\n  LiveService --&gt; Metrics[Monitoring &amp; Metrics]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Production-style architecture diagram (Mermaid)<\/h3>\n\n\n\n<pre><code class=\"language-mermaid\">flowchart TB\n  subgraph ProducerSide[Producer Side]\n    Enc1[Primary Encoder\\n(OBS\/Hardware)]\n    Enc2[Backup Encoder]\n  end\n\n  subgraph AlibabaCloud[Alibaba Cloud]\n    LiveIngest[Ingest Domain\\nRTMP]\n    LiveCore[ApsaraVideo Live\\nTranscode\/Record\/Snapshot]\n    OSS[(OSS Bucket\\nRecordings\/Snapshots)]\n    AuthSvc[Token Service\\n(App Backend on ECS\/ACK)]\n    Monitor[Monitoring\/Alerts\\n(CloudMonitor + Live Metrics)]\n    Audit[ActionTrail\\nAudit Logs]\n  end\n\n  subgraph Audience[Audience]\n    Player1[Web Player]\n    Player2[Mobile App]\n    Partner[Partner Portal]\n  end\n\n  Enc1 -- RTMP --&gt; LiveIngest\n  Enc2 -- RTMP --&gt; LiveIngest\n\n  LiveIngest --&gt; LiveCore\n  LiveCore --&gt; OSS\n  AuthSvc --&gt; LiveCore\n\n  Player1 -- HTTPS HLS\/FLV\\n(signed URLs) --&gt; LiveCore\n  Player2 -- HTTPS HLS\/FLV\\n(signed URLs) --&gt; LiveCore\n  Partner -- HTTPS HLS\/FLV\\n(signed URLs) --&gt; LiveCore\n\n  LiveCore --&gt; Monitor\n  LiveCore --&gt; Audit\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8. Prerequisites<\/h2>\n\n\n\n<p>Before the lab and any real deployment, confirm these requirements in your environment.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Account and billing<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>An active <strong>Alibaba Cloud account<\/strong><\/li>\n<li>A valid <strong>payment method<\/strong> enabled for pay-as-you-go usage<\/li>\n<li>Access to the <strong>ApsaraVideo Live<\/strong> console in your account<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Domain and DNS<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A registered domain name you control (for example, <code>example.com<\/code>)<\/li>\n<li>Ability to create DNS <strong>CNAME<\/strong> records for subdomains (for example, <code>push.example.com<\/code>, <code>live.example.com<\/code>)<\/li>\n<li>If serving audiences in Mainland China, additional compliance (for example, ICP filing) may be required\u2014<strong>verify official requirements<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Permissions (RAM)<\/h3>\n\n\n\n<p>You need permissions to:\n&#8211; Manage ApsaraVideo Live domains and configurations\n&#8211; Manage DNS records (could be Alibaba Cloud DNS or a third-party DNS provider)\n&#8211; (Optional) Manage OSS buckets for recording\/snapshots<\/p>\n\n\n\n<p>Best practice: use a dedicated <strong>RAM user\/role<\/strong> with least privilege for operations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tools<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OBS Studio<\/strong> (free) or another RTMP-capable encoder<\/li>\n<li>A player:<\/li>\n<li><strong>VLC<\/strong> for quick tests<\/li>\n<li>A browser-based player for HLS\/FLV depending on your chosen playback format (browser support varies)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Region availability<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ApsaraVideo Live is offered in many regions, but <strong>features and acceleration coverage can vary<\/strong>. Verify in official docs for your target geography:<\/li>\n<li>https:\/\/www.alibabacloud.com\/help\/en\/apsaravideo-live<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quotas\/limits<\/h3>\n\n\n\n<p>Common limit areas (exact values vary):\n&#8211; Number of streaming domains\n&#8211; Transcoding template limits\n&#8211; Callback endpoint limits\n&#8211; Concurrency or bandwidth ceilings requiring quota increases\nAlways check the \u201cLimits\/Quotas\u201d section in official docs for your account.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Prerequisite services (optional, for production)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OSS<\/strong> for recording\/snapshots<\/li>\n<li><strong>Certificate Management Service<\/strong> (or uploaded certs) for HTTPS<\/li>\n<li><strong>ActionTrail<\/strong> enabled for auditing<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">9. Pricing \/ Cost<\/h2>\n\n\n\n<p>ApsaraVideo Live pricing is <strong>usage-based<\/strong> and can be region-dependent. Do not rely on any single blog post for exact rates. Use official pricing pages and your account\u2019s price calculator.<\/p>\n\n\n\n<p>Official entry points (verify the current URLs for your locale):\n&#8211; Product documentation: https:\/\/www.alibabacloud.com\/help\/en\/apsaravideo-live\n&#8211; Pricing page (find \u201cPricing\u201d for ApsaraVideo Live in your Alibaba Cloud site navigation): https:\/\/www.alibabacloud.com (search \u201cApsaraVideo Live pricing\u201d in the site)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pricing dimensions (typical)<\/h3>\n\n\n\n<p>Common cost dimensions for live streaming services on Alibaba Cloud include (verify exact billing items):\n1. <strong>Outbound traffic or bandwidth for playback<\/strong>\n   &#8211; Often the largest cost driver for public live streaming.\n   &#8211; Billed by data transfer (GB) and\/or bandwidth peak tiers depending on billing mode.<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\n<p><strong>Transcoding<\/strong>\n   &#8211; Charged by duration and output profiles (resolution\/codec) or per transcoding unit.\n   &#8211; Multi-bitrate ladders increase transcoding cost.<\/p>\n<\/li>\n<li>\n<p><strong>Recording<\/strong>\n   &#8211; Recording itself may have a processing cost.\n   &#8211; Storage is typically billed separately in OSS (GB-month + requests + retrieval\/transfer).<\/p>\n<\/li>\n<li>\n<p><strong>Snapshots<\/strong>\n   &#8211; Charged by snapshot count\/frequency and storage (OSS).<\/p>\n<\/li>\n<li>\n<p><strong>Value-added features<\/strong>\n   &#8211; Time shifting, advanced low-latency modes, or specialized processing may have separate pricing\u2014<strong>verify<\/strong>.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Free tier<\/h3>\n\n\n\n<p>Alibaba Cloud free tiers change over time and are product-specific. <strong>Verify in official pricing<\/strong> whether ApsaraVideo Live includes a free tier or trial quotas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Key cost drivers (what surprises teams)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Audience size and watch time<\/strong> \u2192 drives outbound traffic sharply<\/li>\n<li><strong>Playback protocol choice<\/strong> (segmenting\/overhead differences)<\/li>\n<li><strong>Transcoding ladder size<\/strong> (e.g., 1080p+720p+480p+360p) multiplies processing costs<\/li>\n<li><strong>Recording retention<\/strong> (OSS storage costs can quietly accumulate)<\/li>\n<li><strong>Cross-region traffic<\/strong> and egress to the public internet<\/li>\n<li><strong>Unprotected URLs<\/strong> leading to unauthorized hotlinking and bandwidth theft<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Indirect\/hidden costs<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>OSS requests<\/strong> (PUT\/GET\/LIST) if you store many small recording segments<\/li>\n<li><strong>Lifecycle and archival retrieval<\/strong> costs if you move recordings to colder tiers<\/li>\n<li><strong>Certificate management<\/strong> (if you purchase certs vs using existing ones)<\/li>\n<li><strong>Operational time<\/strong> (monitoring, incident response, token service maintenance)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cost optimization strategies<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Start with <strong>no transcoding<\/strong> for testing; add only the renditions you need.<\/li>\n<li>Use <strong>URL authentication<\/strong> and short TTL to reduce bandwidth theft.<\/li>\n<li>Use <strong>OSS lifecycle rules<\/strong> (for example, delete after N days or move to archive).<\/li>\n<li>Prefer <strong>right-sized ladder<\/strong> based on your audience devices and bandwidth analytics.<\/li>\n<li>Limit recording to required events only (not all streams by default).<\/li>\n<li>Use monitoring to detect unusual traffic spikes (could indicate hotlinking).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Example low-cost starter estimate (conceptual)<\/h3>\n\n\n\n<p>A minimal test environment typically includes:\n&#8211; 1 ingest domain + 1 playback domain\n&#8211; A single test stream for ~15\u201330 minutes\n&#8211; No transcoding, no recording<\/p>\n\n\n\n<p>Your cost will be dominated by <strong>playback data transfer<\/strong> if you have viewers. With only a few internal viewers, cost is usually small, but rates vary by region and billing mode. <strong>Use the official pricing page to estimate based on GB delivered and any enabled processing.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example production cost considerations<\/h3>\n\n\n\n<p>For a real event (e.g., 50,000 viewers):\n&#8211; Playback traffic can be many TB depending on bitrate and duration.\n&#8211; Transcoding ladder may multiply compute costs.\n&#8211; Recording + OSS storage adds ongoing monthly costs.\n&#8211; Implement strict access control to avoid unauthorized distribution.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">10. Step-by-Step Hands-On Tutorial<\/h2>\n\n\n\n<p>This lab walks you through a realistic, low-risk setup: create domains, configure DNS, push a stream from OBS, and play it back. It also shows how to add URL authentication as a basic security control.<\/p>\n\n\n\n<blockquote>\n<p>Notes before you start:\n&#8211; Console UI labels may differ slightly by region and over time.\n&#8211; Follow the official \u201cGetting Started\u201d steps for your console version if any fields differ.<br\/>\n&#8211; You must control the DNS for your domain.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Objective<\/h3>\n\n\n\n<p>Set up a basic live streaming pipeline on Alibaba Cloud using <strong>ApsaraVideo Live<\/strong>:\n&#8211; Create an <strong>ingest (push) domain<\/strong> and <strong>playback domain<\/strong>\n&#8211; Configure DNS (CNAME)\n&#8211; Push RTMP stream using <strong>OBS Studio<\/strong>\n&#8211; Play stream using <strong>VLC<\/strong> (or another player)\n&#8211; Enable <strong>basic URL authentication<\/strong> (token signing) for playback (optional but recommended)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lab Overview<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Prepare two subdomains: <code>push.&lt;your-domain&gt;<\/code> and <code>live.&lt;your-domain&gt;<\/code><\/li>\n<li>Add domains to ApsaraVideo Live and obtain CNAME targets<\/li>\n<li>Create DNS CNAME records and wait for propagation<\/li>\n<li>Generate push\/play URLs<\/li>\n<li>Push a live stream via OBS<\/li>\n<li>Validate playback via VLC<\/li>\n<li>(Optional) Enable URL auth and test signed playback<\/li>\n<li>Cleanup<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Prepare your domains and DNS<\/h3>\n\n\n\n<p><strong>What you do<\/strong>\n&#8211; Decide on two subdomains:\n  &#8211; Ingest: <code>push.example.com<\/code>\n  &#8211; Playback: <code>live.example.com<\/code><\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You know which DNS zone you will edit and you can add CNAME records.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Confirm you have access to your DNS provider console (Alibaba Cloud DNS or third party).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Open ApsaraVideo Live console and add streaming domains<\/h3>\n\n\n\n<p><strong>What you do<\/strong>\n1. Sign in to Alibaba Cloud console.\n2. Navigate to <strong>ApsaraVideo Live<\/strong> (Media Services).\n3. Find the section for <strong>Domain Management<\/strong> (names may vary such as \u201cStreaming Domain\u201d).\n4. Add:\n   &#8211; One domain as <strong>ingest\/push domain<\/strong>: <code>push.example.com<\/code>\n   &#8211; One domain as <strong>playback domain<\/strong>: <code>live.example.com<\/code>\n5. After adding each domain, the console typically shows a <strong>CNAME<\/strong> target to map in DNS.<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Both domains appear in the console and are in a \u201cconfiguring\u201d or \u201cpending verification\u201d state until DNS is set.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; For each domain, note the CNAME value shown by the console (you will need it next).<\/p>\n\n\n\n<p><strong>Common errors<\/strong>\n&#8211; \u201cDomain already exists\u201d: The domain\/subdomain may already be bound to another Alibaba Cloud service\/account. Use a different subdomain or unbind it (if appropriate).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Configure DNS CNAME records<\/h3>\n\n\n\n<p><strong>What you do<\/strong>\nAt your DNS provider, create CNAME records for both subdomains to the targets shown in the ApsaraVideo Live console.<\/p>\n\n\n\n<p>Example (illustrative only\u2014use the CNAME targets provided by your console):\n| Record Type | Host | Value |\n|&#8212;|&#8212;|&#8212;|\n| CNAME | push | <code>push.example.com.w.kunlunsl.com<\/code> (example) |\n| CNAME | live | <code>live.example.com.w.kunlunsl.com<\/code> (example) |<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; DNS records are created.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\nUse <code>nslookup<\/code> or <code>dig<\/code> from your machine (replace with your domains):<\/p>\n\n\n\n<pre><code class=\"language-bash\">nslookup push.example.com\nnslookup live.example.com\n<\/code><\/pre>\n\n\n\n<p>Or:<\/p>\n\n\n\n<pre><code class=\"language-bash\">dig CNAME push.example.com +short\ndig CNAME live.example.com +short\n<\/code><\/pre>\n\n\n\n<p>You should see the CNAME values returned. DNS propagation can take minutes to hours depending on TTL.<\/p>\n\n\n\n<p><strong>Back in the console<\/strong>\n&#8211; Refresh the domain status. It should switch to \u201cenabled\/normal\/online\u201d (exact wording varies).<\/p>\n\n\n\n<p><strong>Common errors<\/strong>\n&#8211; CNAME conflicts: if an <code>A<\/code> record exists for the same host, DNS may not accept a CNAME. Remove conflicting records.\n&#8211; Propagation delay: wait and retry; reduce TTL ahead of time in planned changes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Create or confirm an AppName and StreamName convention<\/h3>\n\n\n\n<p>ApsaraVideo Live URLs usually include:\n&#8211; <strong>AppName<\/strong>: logical application namespace (e.g., <code>live<\/code>)\n&#8211; <strong>StreamName<\/strong>: the stream key\/name (e.g., <code>demo01<\/code>)<\/p>\n\n\n\n<p><strong>What you do<\/strong>\n&#8211; Choose:\n  &#8211; AppName: <code>live<\/code>\n  &#8211; StreamName: <code>demo01<\/code><\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You have stable identifiers to generate push and play URLs.<\/p>\n\n\n\n<p><strong>Best practice<\/strong>\n&#8211; Use naming that aligns with environments and ownership, for example:\n  &#8211; <code>prod\/event2026\/opening<\/code>\n  &#8211; <code>dev\/test\/alice<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Generate push and play URLs in the console<\/h3>\n\n\n\n<p>Most consoles provide URL generation tools (sometimes called \u201cURL Generator\u201d or \u201cIngest URL \/ Play URL\u201d).<\/p>\n\n\n\n<p><strong>What you do<\/strong>\n1. In ApsaraVideo Live console, locate the URL generation page\/tool.\n2. Enter:\n   &#8211; Push domain: <code>push.example.com<\/code>\n   &#8211; Play domain: <code>live.example.com<\/code>\n   &#8211; AppName: <code>live<\/code>\n   &#8211; StreamName: <code>demo01<\/code>\n3. Generate:\n   &#8211; <strong>RTMP push URL<\/strong>\n   &#8211; <strong>HLS play URL<\/strong> (often <code>.m3u8<\/code>)\n   &#8211; <strong>FLV play URL<\/strong> (often <code>.flv<\/code>)<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You have URLs to copy into OBS and VLC.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Double-check the push URL points to the <strong>push domain<\/strong> and the playback URLs point to the <strong>play domain<\/strong>.<\/p>\n\n\n\n<blockquote>\n<p>Important: Don\u2019t invent URL formats. Always use the console-generated format for your account.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Push a stream using OBS Studio<\/h3>\n\n\n\n<p><strong>What you do<\/strong>\n1. Install and open OBS Studio.\n2. Go to <strong>Settings \u2192 Stream<\/strong>.\n3. Set Service to <strong>Custom<\/strong>.\n4. Configure:\n   &#8211; <strong>Server<\/strong>: use the RTMP server portion from the generated push URL\n   &#8211; <strong>Stream Key<\/strong>: use the stream key portion (often includes <code>AppName\/StreamName<\/code> and possibly auth parameters)<\/p>\n\n\n\n<p>Because URL formats vary, the simplest approach is:\n&#8211; If OBS requires \u201cServer\u201d and \u201cStream Key\u201d separately, split the generated push URL accordingly.\n&#8211; If your OBS version supports a single RTMP URL, use the full push URL if supported.<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; OBS shows \u201cLIVE\u201d or indicates streaming has started.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; In ApsaraVideo Live console, look for a stream status page (often \u201cStream Management\u201d \/ \u201cOnline Streams\u201d).\n&#8211; You should see <code>live\/demo01<\/code> as <strong>online<\/strong> within a short time.<\/p>\n\n\n\n<p><strong>Common errors and fixes<\/strong>\n&#8211; OBS cannot connect:\n  &#8211; Check DNS CNAME status in the console.\n  &#8211; Ensure you used the <strong>push domain<\/strong>, not playback domain.\n  &#8211; Check local firewall outbound RTMP port (typically 1935) is allowed (ports vary by provider; verify).\n&#8211; Stream is online but no video:\n  &#8211; Confirm OBS has a video source and audio source.\n  &#8211; Check bitrate\/resolution settings; extremely high bitrates can fail on poor uplinks.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: Play the stream (VLC quick test)<\/h3>\n\n\n\n<p><strong>What you do<\/strong>\n1. Open VLC.\n2. Media \u2192 Open Network Stream.\n3. Paste the <strong>HLS play URL<\/strong> (recommended for compatibility) or FLV URL depending on your test.\n4. Click Play.<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; You see the live stream in VLC with some latency (HLS typically has higher latency than low-latency modes).<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Start\/stop OBS streaming and confirm VLC playback stops\/starts accordingly (with buffering delays).<\/p>\n\n\n\n<p><strong>Common errors and fixes<\/strong>\n&#8211; Black screen \/ buffering forever:\n  &#8211; Confirm the play URL uses the <strong>playback domain<\/strong>.\n  &#8211; Ensure the stream is actually online.\n  &#8211; Try the alternative playback protocol (HLS vs FLV) supported by your configuration.\n  &#8211; If URL auth is enabled, ensure you\u2019re using a signed URL.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 8 (Optional but recommended): Enable URL authentication for playback<\/h3>\n\n\n\n<p>Unprotected live URLs can be shared and hotlinked. URL auth is a common baseline control.<\/p>\n\n\n\n<p><strong>What you do<\/strong>\n1. In the ApsaraVideo Live console, find <strong>Access Control<\/strong>, <strong>URL Authentication<\/strong>, or \u201cAnti-leech\u201d settings for the playback domain.\n2. Enable URL auth for the playback domain.\n3. Configure:\n   &#8211; A <strong>shared secret key<\/strong>\n   &#8211; An authentication type\/mode (Alibaba Cloud supports multiple auth modes in some products; choose the recommended\/default for your use case)\n   &#8211; Expiration window (TTL)<\/p>\n\n\n\n<p><strong>Expected outcome<\/strong>\n&#8211; Unsigned playback URLs stop working; only signed URLs work.<\/p>\n\n\n\n<p><strong>Verification<\/strong>\n&#8211; Try the old (unsigned) URL in VLC; it should fail.\n&#8211; Generate or compute a signed URL and test again; it should succeed.<\/p>\n\n\n\n<p><strong>How to generate signed URLs<\/strong>\n&#8211; Use the console\u2019s URL generator if it supports signed URL generation.\n&#8211; If generating in your application, follow the exact signing algorithm described in official docs for ApsaraVideo Live URL auth. <strong>Do not guess the algorithm.<\/strong><br\/>\n  Verify in docs: https:\/\/www.alibabacloud.com\/help\/en\/apsaravideo-live<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Validation<\/h3>\n\n\n\n<p>Use this checklist:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\n<p><strong>Domain status<\/strong>\n   &#8211; Both <code>push.example.com<\/code> and <code>live.example.com<\/code> show \u201cenabled\/online\u201d in the console.<\/p>\n<\/li>\n<li>\n<p><strong>Ingest<\/strong>\n   &#8211; OBS can start streaming without errors.\n   &#8211; Stream appears as \u201conline\u201d in ApsaraVideo Live console.<\/p>\n<\/li>\n<li>\n<p><strong>Playback<\/strong>\n   &#8211; VLC plays the stream using HLS (or FLV if configured).\n   &#8211; Viewer sees video and audio.<\/p>\n<\/li>\n<li>\n<p><strong>Security (if enabled)<\/strong>\n   &#8211; Unsigned URLs fail.\n   &#8211; Signed URLs succeed.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Troubleshooting<\/h3>\n\n\n\n<p>Common problems and practical fixes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DNS not effective<\/strong><\/li>\n<li>Re-check CNAME values in DNS exactly match what the console provides.<\/li>\n<li>Confirm there is no conflicting A\/AAAA record.<\/li>\n<li>\n<p>Wait for TTL propagation; test from multiple resolvers.<\/p>\n<\/li>\n<li>\n<p><strong>Push works intermittently<\/strong><\/p>\n<\/li>\n<li>Check your uplink stability (packet loss is especially harmful for live).<\/li>\n<li>\n<p>Reduce OBS bitrate and resolution temporarily to confirm baseline connectivity.<\/p>\n<\/li>\n<li>\n<p><strong>Playback stutters<\/strong><\/p>\n<\/li>\n<li>Use transcoding ladder (lower bitrate rendition) if your audience has varied networks.<\/li>\n<li>\n<p>Ensure GOP\/keyframe interval is reasonable (commonly ~2 seconds; confirm player requirements).<\/p>\n<\/li>\n<li>\n<p><strong>High latency<\/strong><\/p>\n<\/li>\n<li>HLS naturally introduces latency due to segmentation.<\/li>\n<li>\n<p>If you require low latency, check whether your account supports lower-latency playback options and how they are configured. <strong>Verify in official docs<\/strong>.<\/p>\n<\/li>\n<li>\n<p><strong>Auth breaks playback<\/strong><\/p>\n<\/li>\n<li>Ensure your system clock is correct; token TTLs are time-sensitive.<\/li>\n<li>Confirm you are signing the correct URL path and parameters per the documented algorithm.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cleanup<\/h3>\n\n\n\n<p>To avoid ongoing costs and reduce risk:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Stop streaming<\/strong> in OBS.<\/li>\n<li>In ApsaraVideo Live console:\n   &#8211; Disable or delete test <strong>transcoding\/recording<\/strong> rules if you created any.\n   &#8211; (Optional) Disable URL auth if this was purely a test.<\/li>\n<li>Remove domains if you no longer need them:\n   &#8211; Delete <code>push.example.com<\/code> and <code>live.example.com<\/code> from ApsaraVideo Live domain management.<\/li>\n<li>Remove DNS records:\n   &#8211; Delete the CNAME records for <code>push<\/code> and <code>live<\/code>.<\/li>\n<li>If you enabled recording\/snapshots to OSS:\n   &#8211; Delete test files and apply lifecycle rules to prevent buildup.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">11. Best Practices<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Architecture best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Separate ingest and playback domains<\/strong> for clarity and security boundaries.<\/li>\n<li>Use <strong>multi-bitrate transcoding<\/strong> only when needed; start with a minimal ladder and expand based on analytics.<\/li>\n<li>Design a <strong>token\/signing service<\/strong> in your backend for protected playback, not in the client app.<\/li>\n<li>Plan for <strong>encoder redundancy<\/strong>:<\/li>\n<li>Primary encoder and backup encoder<\/li>\n<li>Operational procedure to switch streams during failure (verify relay\/switch features in docs)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">IAM\/security best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>RAM<\/strong> users\/roles, not the root account, for daily operations.<\/li>\n<li>Apply <strong>least privilege<\/strong>:<\/li>\n<li>Separate roles for domain management, monitoring access, and billing access.<\/li>\n<li>Enable <strong>MFA<\/strong> for privileged accounts.<\/li>\n<li>Log changes with <strong>ActionTrail<\/strong> and review regularly.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cost best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Protect playback with <strong>URL auth<\/strong> to prevent unauthorized traffic.<\/li>\n<li>Avoid recording everything by default; record only required streams.<\/li>\n<li>Use OSS <strong>lifecycle policies<\/strong>:<\/li>\n<li>Delete short-lived artifacts<\/li>\n<li>Transition older recordings to cheaper storage tiers if appropriate<\/li>\n<li>Monitor traffic and set <strong>alerts<\/strong> for anomalies.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Performance best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Choose sensible encoding settings:<\/li>\n<li>Stable bitrate (CBR or capped VBR depending on your requirements)<\/li>\n<li>Keyframe interval aligned with playback segmenting requirements<\/li>\n<li>Consider a transcoding ladder for heterogeneous networks.<\/li>\n<li>Validate playback in the geographies you target.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Reliability best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Create operational runbooks:<\/li>\n<li>Encoder restart<\/li>\n<li>DNS verification<\/li>\n<li>Auth key rotation<\/li>\n<li>Implement <strong>health checks<\/strong> via callbacks or periodic API queries to detect offline streams.<\/li>\n<li>Use short DNS TTLs for planned migrations (but not too short for stability).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Operations best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Establish naming conventions:<\/li>\n<li>Domains: <code>push-prod<\/code>, <code>live-prod<\/code>, <code>push-dev<\/code>, <code>live-dev<\/code><\/li>\n<li>Streams: include event IDs and owners<\/li>\n<li>Use tagging where supported for cost allocation and governance.<\/li>\n<li>Keep a <strong>change log<\/strong> for domain\/auth\/transcoding changes.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Governance best practices<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Maintain an inventory of:<\/li>\n<li>Domains<\/li>\n<li>Active streams<\/li>\n<li>Callback endpoints<\/li>\n<li>Secrets\/keys and rotation schedule<\/li>\n<li>Implement approvals for high-impact changes (auth disable, domain deletion).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">12. Security Considerations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Identity and access model<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Control plane access<\/strong> (console\/API) is governed by Alibaba Cloud identity:<\/li>\n<li>Root account (avoid for daily use)<\/li>\n<li>RAM users\/roles with scoped permissions<\/li>\n<li><strong>Data plane access<\/strong> (viewer playback) is controlled via domain settings:<\/li>\n<li>URL authentication (token signing)<\/li>\n<li>HTTPS<\/li>\n<li>Referer\/IP restrictions (depending on configuration)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Encryption<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use <strong>HTTPS<\/strong> for playback to encrypt traffic in transit.<\/li>\n<li>For recordings\/snapshots stored in OSS:<\/li>\n<li>Use OSS encryption features (server-side encryption) where required.<\/li>\n<li>Verify how recording writes objects and what encryption options apply.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Network exposure<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Live streaming endpoints are typically public.<\/li>\n<li>Reduce exposure by:<\/li>\n<li>Enforcing HTTPS<\/li>\n<li>Enabling URL auth<\/li>\n<li>Restricting referers (for web playback) if appropriate<\/li>\n<li>Using WAF (where applicable) for your playback domain<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secrets handling<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>URL auth secrets should be stored in a secure secrets manager (or at minimum encrypted storage).<\/li>\n<li>Rotate secrets periodically and support multiple active keys during rotation (pattern depends on feature support\u2014verify).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Audit\/logging<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Enable <strong>ActionTrail<\/strong> to track configuration and API changes.<\/li>\n<li>Keep an audit trail of:<\/li>\n<li>Domain changes<\/li>\n<li>Auth key changes<\/li>\n<li>Callback URL changes<\/li>\n<li>For incident response, correlate:<\/li>\n<li>Stream offline events<\/li>\n<li>Traffic spikes<\/li>\n<li>Domain configuration changes<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Compliance considerations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Content distribution often has regulatory requirements (copyright, personal data, geofencing).<\/li>\n<li>For Mainland China distribution, domain and ICP filing requirements may apply\u2014<strong>verify official Alibaba Cloud compliance guidance<\/strong>.<\/li>\n<li>Store recordings in appropriate regions and apply retention policies.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Common security mistakes<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Leaving playback URLs public with no auth, causing bandwidth theft.<\/li>\n<li>Reusing the same auth key across environments and never rotating it.<\/li>\n<li>Allowing broad RAM permissions to too many users.<\/li>\n<li>Exposing callback endpoints without validating signatures or source IPs.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Secure deployment recommendations<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Always enable <strong>HTTPS<\/strong> and <strong>URL auth<\/strong> for production playback.<\/li>\n<li>Keep ingest and playback domains separate; restrict who can view push URLs.<\/li>\n<li>Use a backend service to generate signed URLs with short TTL.<\/li>\n<li>Monitor for traffic anomalies and set alerts.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">13. Limitations and Gotchas<\/h2>\n\n\n\n<p>Because live streaming is sensitive to network and configuration details, plan for these common issues (exact limits vary\u2014verify in docs):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DNS dependency:<\/strong> Domain setup requires correct CNAME configuration and propagation time.<\/li>\n<li><strong>Protocol\/browser compatibility:<\/strong> HLS\/FLV support differs by browser and player; pick formats intentionally.<\/li>\n<li><strong>Latency tradeoffs:<\/strong> HLS is typically higher latency; low-latency options may be separate features or require special configuration\u2014<strong>verify<\/strong>.<\/li>\n<li><strong>Transcoding cost and latency:<\/strong> Adding more renditions increases both.<\/li>\n<li><strong>Recording explosion:<\/strong> Recording generates many segments; OSS storage and request costs can grow quickly.<\/li>\n<li><strong>Auth-related outages:<\/strong> Incorrect token signing can break playback instantly for all viewers.<\/li>\n<li><strong>Geo coverage differences:<\/strong> Delivery quality varies by region; validate where your audience is.<\/li>\n<li><strong>Quotas:<\/strong> Domain counts and template counts may require quota increases for large platforms.<\/li>\n<li><strong>Operational complexity:<\/strong> Live incidents need fast response; build runbooks and on-call readiness.<\/li>\n<li><strong>Migration challenges:<\/strong> Moving from one domain to another affects embedded players and cached links; plan DNS TTL and transition windows.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">14. Comparison with Alternatives<\/h2>\n\n\n\n<p>ApsaraVideo Live is part of Alibaba Cloud\u2019s Media Services, but you may also evaluate adjacent services and competitors.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Alternatives in Alibaba Cloud<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ApsaraVideo VOD:<\/strong> Better for on-demand hosting and playback; not a live ingest\/delivery replacement.<\/li>\n<li><strong>CDN (general):<\/strong> Useful for static and some media acceleration, but live streaming typically needs the specific live pipeline features (ingest, stream management).<\/li>\n<li><strong>Other ApsaraVideo\/Media tools:<\/strong> Media processing and AI features may exist as separate products; use them when you need advanced workflows beyond Live\u2019s built-ins (verify product boundaries).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Alternatives in other clouds<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>AWS:<\/strong> Amazon IVS (managed live) or MediaLive + MediaPackage + CloudFront (more control, more complexity).<\/li>\n<li><strong>Google Cloud:<\/strong> Live Stream API (managed live streaming) + CDN options.<\/li>\n<li><strong>Microsoft Azure:<\/strong> Azure Media Services is in retirement (announced previously). For new designs, use partner solutions or alternative Azure offerings\u2014<strong>verify current status<\/strong>.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Open-source \/ self-managed<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NGINX-RTMP + custom HLS packaging + CDN<\/li>\n<li>SRS (Simple Realtime Server) for RTMP\/HLS\/HTTP-FLV<\/li>\n<li>Wowza Streaming Engine (commercial self-managed)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Comparison table<\/h4>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Option<\/th>\n<th>Best For<\/th>\n<th>Strengths<\/th>\n<th>Weaknesses<\/th>\n<th>When to Choose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Alibaba Cloud ApsaraVideo Live<\/strong><\/td>\n<td>Managed live streaming on Alibaba Cloud<\/td>\n<td>Integrated domain workflow, managed delivery, common live features<\/td>\n<td>Domain\/DNS setup overhead, feature availability varies by region<\/td>\n<td>You want managed live at scale on Alibaba Cloud<\/td>\n<\/tr>\n<tr>\n<td><strong>Alibaba Cloud ApsaraVideo VOD<\/strong><\/td>\n<td>On-demand libraries<\/td>\n<td>VOD management, playback optimization, long-term hosting<\/td>\n<td>Not a live ingest service<\/td>\n<td>You primarily serve pre-recorded content<\/td>\n<\/tr>\n<tr>\n<td><strong>AWS IVS<\/strong><\/td>\n<td>Simple managed live (AWS-centric)<\/td>\n<td>Simple APIs, low ops<\/td>\n<td>AWS ecosystem lock-in, regional constraints<\/td>\n<td>You\u2019re already on AWS and want quick live<\/td>\n<\/tr>\n<tr>\n<td><strong>AWS MediaLive + MediaPackage<\/strong><\/td>\n<td>Broad control, broadcast-style pipelines<\/td>\n<td>Fine-grained control<\/td>\n<td>More components and ops complexity<\/td>\n<td>You need advanced live workflows and customization<\/td>\n<\/tr>\n<tr>\n<td><strong>Google Cloud Live Stream API<\/strong><\/td>\n<td>Managed live in GCP<\/td>\n<td>Managed pipeline<\/td>\n<td>Ecosystem differences, pricing\/coverage<\/td>\n<td>You\u2019re standardized on GCP<\/td>\n<\/tr>\n<tr>\n<td><strong>Self-managed (SRS\/NGINX-RTMP)<\/strong><\/td>\n<td>Full control, custom environments<\/td>\n<td>Maximum customization<\/td>\n<td>High ops burden, scaling &amp; security are hard<\/td>\n<td>You must run on-prem or need custom protocol control<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">15. Real-World Example<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Enterprise example: Global product keynote with secure playback<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> A global enterprise needs to live stream a keynote to employees and partners. The stream must be encrypted, access-controlled, and recorded for replay.<\/li>\n<li><strong>Proposed architecture:<\/strong><\/li>\n<li>Encoder (hardware + backup) pushes RTMP to <code>push.company.com<\/code><\/li>\n<li>ApsaraVideo Live transcodes into 1080p\/720p\/480p ladder (as required)<\/li>\n<li>Playback via <code>live.company.com<\/code> over HTTPS with URL auth<\/li>\n<li>Recording to OSS with lifecycle policy (retain 180 days)<\/li>\n<li>Backend token service (ECS\/ACK) generates signed playback URLs for authenticated portal users<\/li>\n<li>Monitoring + alerts for stream offline and traffic anomalies; ActionTrail for audits<\/li>\n<li><strong>Why ApsaraVideo Live was chosen:<\/strong><\/li>\n<li>Managed scalability for large concurrent audiences<\/li>\n<li>Domain-based security controls<\/li>\n<li>Built-in recording and monitoring reduce operational burden<\/li>\n<li><strong>Expected outcomes:<\/strong><\/li>\n<li>Stable playback under load<\/li>\n<li>Reduced unauthorized access via signed URLs<\/li>\n<li>Faster post-event replay publishing through recorded assets<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Startup\/small-team example: Weekly live commerce show<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Problem:<\/strong> A small team runs weekly live shows. They need simple operations, low cost, and protection against hotlinking.<\/li>\n<li><strong>Proposed architecture:<\/strong><\/li>\n<li>OBS on a producer laptop pushes to ApsaraVideo Live<\/li>\n<li>Minimal transcoding (single output) to keep costs down<\/li>\n<li>Playback embedded in a storefront page using HLS<\/li>\n<li>URL auth with short TTL, generated by a lightweight backend (Function Compute\/ECS\u2014verify preferred platform)<\/li>\n<li>Optional snapshots every 10 seconds for thumbnails\/moderation<\/li>\n<li><strong>Why ApsaraVideo Live was chosen:<\/strong><\/li>\n<li>Quick setup with domains and a standard workflow<\/li>\n<li>No need to run streaming servers<\/li>\n<li>Pay-as-you-go cost aligns with weekly schedule<\/li>\n<li><strong>Expected outcomes:<\/strong><\/li>\n<li>Predictable live operations for a small team<\/li>\n<li>Lower risk of bandwidth theft<\/li>\n<li>Recordings available for short-term replay<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">16. FAQ<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\n<p><strong>What is the difference between ApsaraVideo Live and ApsaraVideo VOD?<\/strong><br\/>\n   ApsaraVideo Live is for <strong>real-time live streaming<\/strong> (ingest + live delivery). ApsaraVideo VOD is for <strong>on-demand<\/strong> content storage, processing, and playback. Many platforms use both: Live for events, VOD for replays.<\/p>\n<\/li>\n<li>\n<p><strong>Do I need my own domain for ApsaraVideo Live?<\/strong><br\/>\n   In most production setups, yes. You typically bind your own ingest\/playback domains and configure DNS CNAME. Some accounts may have test domains or trial flows\u2014<strong>verify in official docs<\/strong>.<\/p>\n<\/li>\n<li>\n<p><strong>Which protocol should I use for ingest?<\/strong><br\/>\n   RTMP is commonly used because encoders like OBS support it. If you need other ingest protocols, check ApsaraVideo Live protocol support in your region\u2014<strong>verify<\/strong>.<\/p>\n<\/li>\n<li>\n<p><strong>Which playback format should I choose: HLS or FLV?<\/strong><br\/>\n   HLS is widely supported across devices (especially mobile). FLV can be useful in some web player setups. Choose based on your player stack and latency needs.<\/p>\n<\/li>\n<li>\n<p><strong>How do I protect my live stream from unauthorized sharing?<\/strong><br\/>\n   Enable <strong>URL authentication<\/strong> (signed URLs) on the playback domain and keep TTL short. Combine with HTTPS and referer restrictions for web playback.<\/p>\n<\/li>\n<li>\n<p><strong>Can I record live streams automatically?<\/strong><br\/>\n   Yes, recording is a common feature. You typically configure recording rules and store output in OSS. Verify recording formats and file segmentation options in docs.<\/p>\n<\/li>\n<li>\n<p><strong>How do I publish recorded live streams as VOD?<\/strong><br\/>\n   Store recordings in OSS, then ingest\/register them into ApsaraVideo VOD (workflow depends on your account and VOD configuration).<\/p>\n<\/li>\n<li>\n<p><strong>How do I monitor stream health?<\/strong><br\/>\n   Use ApsaraVideo Live console metrics (online streams, bitrate, traffic, errors where available). Add alerts through Alibaba Cloud monitoring tools if supported\u2014<strong>verify integrations<\/strong>.<\/p>\n<\/li>\n<li>\n<p><strong>Why is my stream online but playback fails?<\/strong><br\/>\n   Common causes: using the wrong domain, DNS not active, URL authentication enabled but URL not signed, or player\/protocol mismatch.<\/p>\n<\/li>\n<li>\n<p><strong>Does transcoding increase latency?<\/strong><br\/>\n   Yes. Transcoding adds processing time and can increase end-to-end latency. Balance viewer experience needs vs latency.<\/p>\n<\/li>\n<li>\n<p><strong>How do I estimate costs before a big event?<\/strong><br\/>\n   Estimate outbound traffic: <code>average bitrate \u00d7 watch time \u00d7 viewers<\/code>. Add transcoding\/recording costs if enabled. Validate with official pricing and, ideally, a small-scale rehearsal.<\/p>\n<\/li>\n<li>\n<p><strong>Can I restrict playback by region or IP?<\/strong><br\/>\n   IP allow\/deny lists are often supported. Region-based restrictions may require additional controls (application logic, CDN geo rules, or other services). <strong>Verify<\/strong> what ApsaraVideo Live supports directly.<\/p>\n<\/li>\n<li>\n<p><strong>Do I need HTTPS for live playback?<\/strong><br\/>\n   Strongly recommended for production. It protects viewers and avoids browser mixed-content issues.<\/p>\n<\/li>\n<li>\n<p><strong>What happens if the encoder disconnects?<\/strong><br\/>\n   The stream goes offline. Your player may retry. Use monitoring\/callbacks to detect and operational processes to restart or switch to backup encoder.<\/p>\n<\/li>\n<li>\n<p><strong>Can I run dev and prod on the same domains?<\/strong><br\/>\n   Avoid it. Use separate domains or at least separate AppName namespaces and stricter IAM separation to reduce blast radius.<\/p>\n<\/li>\n<li>\n<p><strong>Is ApsaraVideo Live suitable for internal-only streaming?<\/strong><br\/>\n   It is typically internet-facing. For internal-only, you still can secure via auth and network controls, but \u201cprivate-only\u201d delivery may require additional design. <strong>Verify<\/strong> private connectivity options.<\/p>\n<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">17. Top Online Resources to Learn ApsaraVideo Live<\/h2>\n\n\n\n<p>Use official sources first; Alibaba Cloud documentation structure may differ by locale.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Resource Type<\/th>\n<th>Name<\/th>\n<th>Why It Is Useful<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Official documentation<\/td>\n<td>ApsaraVideo Live Documentation<\/td>\n<td>Primary reference for domain setup, URL formats, auth, and APIs. https:\/\/www.alibabacloud.com\/help\/en\/apsaravideo-live<\/td>\n<\/tr>\n<tr>\n<td>Official product entry<\/td>\n<td>ApsaraVideo Live Product Page (Alibaba Cloud)<\/td>\n<td>High-level overview and links to docs\/pricing. https:\/\/www.alibabacloud.com (search \u201cApsaraVideo Live\u201d)<\/td>\n<\/tr>\n<tr>\n<td>Official pricing<\/td>\n<td>ApsaraVideo Live Pricing<\/td>\n<td>Current billing dimensions and regional pricing. Verify current page from Alibaba Cloud site navigation: https:\/\/www.alibabacloud.com<\/td>\n<\/tr>\n<tr>\n<td>Getting started<\/td>\n<td>ApsaraVideo Live Getting Started (Docs section)<\/td>\n<td>Step-by-step domain and streaming setup aligned with console. Start at: https:\/\/www.alibabacloud.com\/help\/en\/apsaravideo-live<\/td>\n<\/tr>\n<tr>\n<td>Security guidance<\/td>\n<td>URL Authentication \/ Anti-leech (Docs)<\/td>\n<td>Exact signing algorithms and configuration steps. https:\/\/www.alibabacloud.com\/help\/en\/apsaravideo-live<\/td>\n<\/tr>\n<tr>\n<td>Storage integration<\/td>\n<td>OSS Documentation<\/td>\n<td>Required for recording\/snapshot storage and lifecycle policies. https:\/\/www.alibabacloud.com\/help\/en\/oss<\/td>\n<\/tr>\n<tr>\n<td>Governance<\/td>\n<td>ActionTrail Documentation<\/td>\n<td>Audit changes to live configuration. https:\/\/www.alibabacloud.com\/help\/en\/actiontrail<\/td>\n<\/tr>\n<tr>\n<td>Monitoring<\/td>\n<td>CloudMonitor Documentation<\/td>\n<td>Alerts and monitoring patterns (where supported). https:\/\/www.alibabacloud.com\/help\/en\/cloudmonitor<\/td>\n<\/tr>\n<tr>\n<td>Videos\/webinars<\/td>\n<td>Alibaba Cloud official video channels<\/td>\n<td>Practical walkthroughs and feature demos (availability varies). https:\/\/www.youtube.com\/@AlibabaCloud<\/td>\n<\/tr>\n<tr>\n<td>SDK\/API reference<\/td>\n<td>Alibaba Cloud OpenAPI Explorer<\/td>\n<td>Explore ApsaraVideo Live APIs (search for Live service). https:\/\/api.alibabacloud.com\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">18. Training and Certification Providers<\/h2>\n\n\n\n<p>The following are external training providers. Verify course outlines, Alibaba Cloud alignment, and instructor credentials on their websites.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Institute<\/th>\n<th>Suitable Audience<\/th>\n<th>Likely Learning Focus<\/th>\n<th>Mode<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>DevOps engineers, SREs, platform teams<\/td>\n<td>Cloud operations, CI\/CD, reliability concepts; may include cloud media pipelines as part of cloud training<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>ScmGalaxy.com<\/td>\n<td>Beginners to intermediate engineers<\/td>\n<td>DevOps fundamentals, tooling, automation<\/td>\n<td>Check website<\/td>\n<td>https:\/\/www.scmgalaxy.com\/<\/td>\n<\/tr>\n<tr>\n<td>CLoudOpsNow.in<\/td>\n<td>Cloud engineers, operations teams<\/td>\n<td>Cloud operations, monitoring, automation<\/td>\n<td>Check website<\/td>\n<td>https:\/\/cloudopsnow.in\/<\/td>\n<\/tr>\n<tr>\n<td>SreSchool.com<\/td>\n<td>SREs, production ops<\/td>\n<td>Reliability engineering, incident response, observability<\/td>\n<td>Check website<\/td>\n<td>https:\/\/sreschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>AiOpsSchool.com<\/td>\n<td>Ops + automation engineers<\/td>\n<td>AIOps concepts, monitoring automation<\/td>\n<td>Check website<\/td>\n<td>https:\/\/aiopsschool.com\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">19. Top Trainers<\/h2>\n\n\n\n<p>These are trainer-related platforms\/sites to explore for coaching or advisory (verify specialization and Alibaba Cloud coverage directly).<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Platform\/Site<\/th>\n<th>Likely Specialization<\/th>\n<th>Suitable Audience<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>RajeshKumar.xyz<\/td>\n<td>DevOps\/cloud training and guidance (verify specifics)<\/td>\n<td>Students, engineers seeking mentorship<\/td>\n<td>https:\/\/rajeshkumar.xyz\/<\/td>\n<\/tr>\n<tr>\n<td>devopstrainer.in<\/td>\n<td>DevOps training<\/td>\n<td>Beginners to intermediate DevOps engineers<\/td>\n<td>https:\/\/www.devopstrainer.in\/<\/td>\n<\/tr>\n<tr>\n<td>devopsfreelancer.com<\/td>\n<td>Freelance DevOps\/services marketplace style (verify)<\/td>\n<td>Teams needing short-term expert help<\/td>\n<td>https:\/\/www.devopsfreelancer.com\/<\/td>\n<\/tr>\n<tr>\n<td>devopssupport.in<\/td>\n<td>DevOps support and training (verify)<\/td>\n<td>Operations teams, small businesses<\/td>\n<td>https:\/\/www.devopssupport.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">20. Top Consulting Companies<\/h2>\n\n\n\n<p>These are consulting providers to evaluate. Confirm scope, references, and Alibaba Cloud experience directly with each company.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Company<\/th>\n<th>Likely Service Area<\/th>\n<th>Where They May Help<\/th>\n<th>Consulting Use Case Examples<\/th>\n<th>Website URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>cotocus.com<\/td>\n<td>Cloud\/DevOps consulting (verify exact offerings)<\/td>\n<td>Architecture reviews, DevOps enablement<\/td>\n<td>Live streaming platform deployment checklist, observability integration planning<\/td>\n<td>https:\/\/cotocus.com\/<\/td>\n<\/tr>\n<tr>\n<td>DevOpsSchool.com<\/td>\n<td>DevOps and cloud consulting\/training<\/td>\n<td>Implementation support, audits, coaching<\/td>\n<td>Secure domain\/auth rollout, CI\/CD for streaming portal backend<\/td>\n<td>https:\/\/www.devopsschool.com\/<\/td>\n<\/tr>\n<tr>\n<td>DEVOPSCONSULTING.IN<\/td>\n<td>DevOps consulting (verify exact offerings)<\/td>\n<td>Operations maturity, automation<\/td>\n<td>Runbook creation, alerting strategy for live event operations<\/td>\n<td>https:\/\/devopsconsulting.in\/<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">21. Career and Learning Roadmap<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn before ApsaraVideo Live<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Streaming fundamentals:<\/li>\n<li>RTMP ingest basics<\/li>\n<li>HLS basics (segments, playlists)<\/li>\n<li>Bitrate, resolution, GOP\/keyframes, audio codecs<\/li>\n<li>Web\/app delivery basics:<\/li>\n<li>DNS and CNAME<\/li>\n<li>HTTPS\/TLS and certificates<\/li>\n<li>Alibaba Cloud basics:<\/li>\n<li>RAM users\/roles and least privilege<\/li>\n<li>OSS fundamentals (buckets, lifecycle, permissions)<\/li>\n<li>Basic monitoring and audit tooling (CloudMonitor\/ActionTrail)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">What to learn after ApsaraVideo Live<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Multi-bitrate encoding strategy and QoE analytics<\/li>\n<li>Live-to-VOD pipelines with ApsaraVideo VOD<\/li>\n<li>Advanced security:<\/li>\n<li>Token services, key rotation, anti-abuse patterns<\/li>\n<li>Observability engineering:<\/li>\n<li>SLOs for live streaming (startup time, buffering ratio, error rate)<\/li>\n<li>Cost engineering:<\/li>\n<li>Traffic forecasting and anomaly detection<\/li>\n<li>Storage lifecycle optimization<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Job roles that use it<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Cloud Solutions Architect (media)<\/li>\n<li>Media\/Video Platform Engineer<\/li>\n<li>DevOps Engineer \/ SRE for media platforms<\/li>\n<li>Backend Engineer building streaming portals and auth services<\/li>\n<li>Technical Product Manager (streaming products)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Certification path (if available)<\/h3>\n\n\n\n<p>Alibaba Cloud certifications and learning paths change. Look for Alibaba Cloud official certification pages and training that cover Media Services and streaming workflows. <strong>Verify current certifications in official Alibaba Cloud training portals.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Project ideas for practice<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Build a \u201clive event portal\u201d:<\/li>\n<li>Backend generates signed playback URLs<\/li>\n<li>Admin dashboard shows stream status and viewer metrics<\/li>\n<li>Implement live recording \u2192 OSS \u2192 VOD publishing automation<\/li>\n<li>Create an incident-response simulation:<\/li>\n<li>Encoder failure drill<\/li>\n<li>Auth key rotation drill<\/li>\n<li>DNS rollback drill<\/li>\n<li>Build a cost dashboard:<\/li>\n<li>Estimate traffic from bitrate and concurrency<\/li>\n<li>Alert on unusual traffic spikes (possible hotlinking)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">22. Glossary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>ApsaraVideo Live:<\/strong> Alibaba Cloud managed live streaming service.<\/li>\n<li><strong>Ingest (Push):<\/strong> Sending a live stream from an encoder to the streaming service.<\/li>\n<li><strong>Playback (Play):<\/strong> Viewing the live stream from the service on client devices.<\/li>\n<li><strong>RTMP:<\/strong> Real-Time Messaging Protocol, commonly used for live ingest.<\/li>\n<li><strong>HLS:<\/strong> HTTP Live Streaming, segment-based streaming format commonly used for playback.<\/li>\n<li><strong>FLV:<\/strong> Flash Video container; sometimes used in HTTP-FLV playback workflows.<\/li>\n<li><strong>Transcoding:<\/strong> Converting media into different bitrates\/resolutions\/codecs.<\/li>\n<li><strong>Bitrate ladder:<\/strong> A set of encoded renditions (1080p\/720p\/480p\u2026) enabling adaptive streaming.<\/li>\n<li><strong>GOP:<\/strong> Group of Pictures; defines distance between keyframes and affects latency\/seek behavior.<\/li>\n<li><strong>CNAME:<\/strong> DNS record type that maps a name to another canonical name; used to bind custom domains to cloud services.<\/li>\n<li><strong>URL authentication \/ token signing:<\/strong> Adding a signature and expiry to URLs to prevent unauthorized access.<\/li>\n<li><strong>OSS:<\/strong> Alibaba Cloud Object Storage Service, used for storing recordings and snapshots.<\/li>\n<li><strong>ActionTrail:<\/strong> Alibaba Cloud audit logging for API and console actions.<\/li>\n<li><strong>CloudMonitor:<\/strong> Alibaba Cloud monitoring and alerting service (integration depends on product support).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">23. Summary<\/h2>\n\n\n\n<p>ApsaraVideo Live is Alibaba Cloud\u2019s managed live streaming service in the <strong>Media Services<\/strong> category. It provides a domain-based workflow to ingest live streams (commonly RTMP), optionally process them (transcoding\/recording\/snapshots\/time shifting), and deliver playback (commonly HLS\/FLV) to viewers at scale.<\/p>\n\n\n\n<p>It matters because live streaming is operationally hard: scaling, latency, security, and cost control all become critical during real events. ApsaraVideo Live reduces infrastructure burden, but you still must design carefully around <strong>domain\/DNS management<\/strong>, <strong>access control (signed URLs)<\/strong>, and <strong>cost drivers<\/strong> (especially outbound traffic and transcoding).<\/p>\n\n\n\n<p>Use it when you want a managed live pipeline on Alibaba Cloud with production features and monitoring. Avoid it when you need full custom control or strictly private-only delivery without internet exposure (unless supported and verified for your case).<\/p>\n\n\n\n<p>Next step: follow the official ApsaraVideo Live docs for your region, then extend this lab into a production-ready setup with <strong>HTTPS + URL auth<\/strong>, <strong>recording to OSS with lifecycle<\/strong>, and <strong>alerting\/runbooks<\/strong> for live operations.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Media Services<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,13],"tags":[],"class_list":["post-88","post","type-post","status-publish","format-standard","hentry","category-alibaba-cloud","category-media-services"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/88","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/comments?post=88"}],"version-history":[{"count":0,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/posts\/88\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/media?parent=88"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/categories?post=88"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/tutorials\/wp-json\/wp\/v2\/tags?post=88"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}