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
150
0
Share
Streaming Segment Parser
Internship project at Amazon Prime Video
Yiqi Yan
October 14, 2019
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
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
970
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
560
Rethinking API Platform Filters
vinceamstoutz
0
9.9k
Spec Driven Development: The End Of Vibe Coding | DevLand 2026
danielsogl
PRO
0
110
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
250
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.2k
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
160
Strategy for Finding a Problem for OSS: With Real Examples
kibitan
0
140
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
飯MCP
yusukebe
0
480
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
340
Don't Prompt Harder, Structure Better
kitasuke
0
260
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
260
Visualization
eitanlees
150
17k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.4k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
430
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
220
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
190
How to build a perfect <img>
jonoalderson
1
5.3k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
Facilitating Awesome Meetings
lara
57
6.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
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