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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
450
Deep Learning for Object Detection
saoyan
0
180
Surveillance Video Analysis
saoyan
0
750
Other Decks in Programming
See All in Programming
実践CRDT
tamadeveloper
0
610
「話せることがない」を乗り越える 〜日常業務から登壇テーマをつくる思考法〜
shoheimitani
4
920
SREに優しいTerraform構成 modulesとstateの組み方
hiyanger
2
150
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
290
From Formal Specification to Property Based Test
ohbarye
0
520
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
380
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
150
🦞OpenClaw works with AWS
licux
1
310
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
16k
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
0
110
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
910
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
280
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
330
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
780
The Cult of Friendly URLs
andyhume
79
6.9k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
550
How to Think Like a Performance Engineer
csswizardry
28
2.6k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
200
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
530
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
230
Design in an AI World
tapps
1
200
Java REST API Framework Comparison - PWX 2021
mraible
34
9.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
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