-->
Save your FREE seat for 流媒体 Connect this August. 现在注册!

Dispatches from 多路分配器2023, Part 1: Updating Ad Delivery

文章特色图片

多路分配器2023该事件发生在10月11日. 24–25 in San Francisco, is the premier peer-organized and peer-approved video developer conference. There’s supposed to be no marketing at the event. Although the first person I ran into was a sales rep, much of the time I spent there was listening or talking with technical contacts. The most interesting presentation for me was from 冥王星.

Server-Initiated Client-Side Just-In-Time Stitching in ABR Streaming

Spencer Shanson, SVP Streaming Architecture at Paramount, introduced the presentation. 冥王星’s 2000 linear channels on their FAST service are powered by a proprietary stitcher to generate manifests for HLS and DASH. Ads are inserted dynamically for virtual linear live (playlists) and VOD content. They started off a research project to see about improving their ad delivery.

Previously in virtual linear live stream delivery, 60 seconds before the ad break, a request for ads for the upcoming pod was stitched in. 与此同时, VOD assets would request the entire manifest in advance, and this often could delay time to first frame. The goal of their research project was to create a complete manifest with ad pod placeholders (not real ads) and enables ad pods to be filled just in time (JIT).

您正在Hosur, 主要架构师, 派拉蒙的视频服务, 继续演讲, speaking about how the client requests a manifest and the stitcher collects content manifest and inserts placeholders without requesting or waiting for ads. 广告系统(广告, 广告代码转换器, and packager) will make decisions offline before the next placeholder appears. The decisions are provided to the ad manifest server ahead of time. The client requests the ad pod manifest JIT, requesting only the next upcoming pod (rather than all ad pods in the entire clip). After this ad pod manifest is received, client side stitching is done.

对于HLS, player one plays content and player two plays the ad pod, and then player one resumes control. 代码如下:

派拉蒙HLS代码

Start date is the scheduling of the placeholder. JSON file is the placeholder that contains the ad URL’s. 这些都是下载的JIT.

DASH period file is the placeholder for ad pod. 代码如下:

松下DASH码

In either HLS or DASH there is no mention of the number of ads or the pod duration. The backend services can make those choices dynamically.

Client work was described by Kevin Yu, Video Architect, Streaming Services at Paramount. First he covered HLS using AVPlayer Interstitials APIs, event controller, and event. The pink boxes in the photo below are custom work. The JSON file is used first as the placeholder and then later replaced by the m3u8 ad file.

AVPlayer enhancement for HLS out-of-band interstitials

For MPEG-DASH, the focus was on DASH.js (4.7.2), which they consider the most standard compliant open-source player. Brown boxes represent player modules, pink is the project’s enhancements. They are extending the onRequest capability of DASH.js. Brown shows Fragment model taking MP4 segments from the CDN. PlayBackController and ScheduleController work with BufferController to initiate manage source buffer and eventually the MSE is played back.

Xlink 'onRequest' Enhancement with DASH.js

They designed a dynamic event trigger to trigger the manifest updater identified in the rounded box in diagram to update dynamically. It’s triggered by an event provided by the stream controller. This starts the manifest loader and refreshing process. XlinkController is used next to start resolving and parse original MPD to look for any periods, and it updates the original manifest.

流媒体覆盖
免费的
合资格订户
现在就订阅 最新一期 过去的问题
相关文章

Dispatches from 多路分配器2023, Part 2: Low-Latency Ad Insertion

2023年(10月. 24-25, San Francisco), is the premier peer-organized and peer-approved video developer conference. This two-day conference covered a lot of topics. Here's my summary of a presentation on dynamic, low-latency ad insertion.