Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Streaming Segment Parser
Search
Yiqi Yan
October 14, 2019
Programming
0
150
Streaming Segment Parser
Internship project at Amazon Prime Video
Yiqi Yan
October 14, 2019
Tweet
Share
More Decks by Yiqi Yan
See All by Yiqi Yan
master_thesis_defense
saoyan
0
260
Bachelor's Thesis - Oral Defense
saoyan
0
440
Deep Learning for Object Detection
saoyan
0
180
Surveillance Video Analysis
saoyan
0
740
Other Decks in Programming
See All in Programming
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
110
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
350
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.4k
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
190
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
160
How to stabilize UI tests using XCTest
akkeylab
0
130
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
300
守る「だけ」の優しいEMを抜けて、 事業とチームを両方見る視点を身につけた話
maroon8021
3
1.1k
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
170
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
730
車輪の再発明をしよう!PHP で実装して学ぶ、Web サーバーの仕組みと HTTP の正体
h1r0
2
200
AHC061解説
shun_pi
0
410
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
180
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.4k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
80
RailsConf 2023
tenderlove
30
1.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Into the Great Unknown - MozCon
thekraken
40
2.3k
We Have a Design System, Now What?
morganepeng
55
8k
The Cult of Friendly URLs
andyhume
79
6.8k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
480
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
200
Code Review Best Practice
trishagee
74
20k
Transcript
STREAMING SEGMENT PARSER PRESENTED BY YIQI YAN XP PLAYER INTERN
PRESENTATION
CONTENTS ▸ ISO-BMFF Parser ▸ Current Design ▸ Proposed Design
▸ Implementation ▸ Demo & Analysis
ISO-BMFF PARSER bytes box segment box parser segment parser
ISO-BMFF PARSER bytes box segment box parser segment parser
ISO-BMFF PARSER bytes box segment box parser segment parser
ISO-BMFF PARSER bytes box segment box parser segment parser MEDIA
DATA
CURRENT DESIGN ▸ Fully synchronous process ▸ Unnecessary latency ▸
Each stage relies on the completeness of the previous one ▸ The decoder has to wait for the entire segment while it is able to perform on separate media samples
PROPOSED DESIGN ▸ Asynchronous process ▸ Whenever some data is
downloaded, pass it to the parser. ▸ Whenever some media sample is available, send it to the decoder.
CURRENT DESIGN
CURRENT DESIGN bytes box segment box parser segment parser
CURRENT DESIGN bytes box segment box parser segment parser
CURRENT DESIGN bytes box segment box parser segment parser
CURRENT DESIGN bytes box box parser segment parser segment
PROPOSED DESIGN bytes box box parser segment parser segment
PROPOSED DESIGN bytes box box parser segment parser segment
PROPOSED DESIGN bytes box box parser segment parser segment
PROPOSED DESIGN bytes box box parser segment parser segment
PROPOSED DESIGN bytes box box parser segment parser segment
PROPOSED DESIGN bytes box box parser segment parser segment
PROPOSED DESIGN bytes box box parser segment parser segment
PROPOSED DESIGN bytes box box parser segment parser segment
IMPLEMENTATION STREAM-BASED IMPLEMENTATION ▸ Third-party stream processing library ▸ Doesn’t
have control of implementation details - potential performance problem ▸ Relies on primitive Node modules - not supported on Roku
IMPLEMENTATION EVENT-BASED IMPLEMENTATION
DEMO & ANALYSIS Audio Segment Video Segment (encrypted) Trailer Segment
(non-encrypted) number of media samples 47 109 69 size of segment (kB) ~17 ~744 ~1485 metrics ▸ time to first sample (tFirst, ms) ▸ time to last sample (tLast, ms) environment ▸ 2.5GHz Intel i7 processor ▸ 16GB memory (2133 MHz LPDDR3) ▸ macOS Mojave ▸ node.js 10
DEMO & ANALYSIS AUDIO SEGMENT (500 RUNS)
DEMO & ANALYSIS VIDEO SEGMENT (ENCRYPTED, 500 RUNS)
DEMO & ANALYSIS TRAILER SEGMENT (NON-ENCRYPTED, 500 RUNS)
TO DO ▸ Integration to XP player framework ▸ Event-based
decoder ▸ Error handling ▸ Performance measurement in real case ▸ With pre-buffer ▸ Counting decoding time
Q&A Q & A