Content in digital classes -- a loosely defined aggregation of audiovideo, screen capture, slides, notes and complimentary files -- needs a standard format for storage and replay. The closest to this objective is SMIL -- a language which can describe the timeline of complex multimedia sessions. The format presented in this paper is part of the larger YALMS educational software and goes one step further than SMIL. The proposed format supports realtime recording, partial updates of content, and finally replay of the entire class. Recording and updates require a server as backend but the class can be replayed directly from storage by a web application.
AWS Community Day CPH - Three problems of Terraform
YALMS: A Data Structure for Storage and Replay of Multimedia Content in Digital Classes
1.
2. .
.
YALMS Basics
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
2 /21
2/21
3. .
.
YALMS Basics
.
YALMS...
.
... stands for
Yet Another Lecture Management System
• a new generaction -- HTML5- and cloud-based LMS 06
•
•
•
one function: video annotation robot 07
another function: Group Drive -- a P2P version of cloud storage 08
high-performance multimedia system based on multicore, SSD, etc. 09
06 M.Zhanikeev+1 "YALMS: Yet Another Lecture Management System" IEICE ET研究会 (2013)
07 M.Zhanikeev+1 "...Automatic Slicing of Screen Capture Video using Slide PDFs" IEICE ET研究会 (2013)
08 M.Zhanikeev+1 "YALMS: A Group Drive API for Cloud-Based Classrooms" IEICE IN研究会 (2013)
09 M.Zhanikeev+1 "...Solid State Drives in Rich Multimedia Content Processing, Storage and Streaming" ITE-MMS研究会 (2013)
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
3 /21
3/21
4. .
.
YALMS Roadmap
2013.07・ET研
YALMS: Intro
2013.11・IN研
YALMS.cloud
clouds groupdrive
sync
2013.09・ET研
YALMS.annotation
2014.1・LOIS研
PDF video annotation
YALMS.format
2014.01・ET研
recording
replay storage
multimedia
YALMS.streaming
DASH Adaptive
HTML5
2013.10・ITE-MMS研
YALMS.hiperf
SSD
multicore
YALMS.done!
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
4 /21
4/21
5. .
.
YALMS.format : Objectives
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
5 /21
5/21
6. .
.
YALMS.format Objectives
single .yalms file
◦ official components: AV for audiovideo, S for slides or screen capture video, C is
1. pack all the contents of a lecture into a
◦ audiovideo, slides, files and versioning, etc.
for files and versioning
2.
replay .yalms files in a browser in standalone mode
◦ directly from .yalms file -- no backend system
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
6 /21
6/21
7. .
.
Objectives ... Visuallly
HTML5
Step 1: Record
A
V
YALMS
Robot
Lecturer
Files
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
Viewers
C
S
Step 2: Add PDF
Long-Term
Storage
YALMS
Robot
S
Lecturer
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
7 /21
7/21
8. .
.
YALMS vs... : Related Works
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
8 /21
8/21
9. .
.
YALMS.format vs Multimedia System
.
Traditional Multimedia System
.
• powerfull back-end
• HTTP streaming in realtime
.
.
YALMS.format
.
• .yalms file is a binary file -- can be stored anywhere
◦ like in cloud storage
•
.
no streaming, the file is simply traversed using exiting APIs
◦ any RESTful API, cloud storage, local filesystem
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
9 /21
9/21
10. .
.
YALMS.format vs SMIL
5:
6:<par>
7:
<video src="joe-video"/>
8:
<text src="http://www.example.com/joe-text"/>
9:
<seq>
10:
<audio src="rtsp://www.example.com/joe-audio"/>
11:
<audio src="tim-audio"/>
12:
</seq>
13:</par>
14:
15:
jow-audio
• close but not enough
• need to pack actual
content into the file
tim-audio
joe-text
joe-video
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
10 /21
10/21
11. .
.
YALMS.format in Browser
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
11 /21
11/21
13. .
.
HTML5: the SaveAs Function
•
NOTE: JS now natively can save binary chunks to local filesystem
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
13 /21
13/21
14. .
.
YALMS.format : Design
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
14 /21
14/21
15. .
.
YALMS.format : Design
YALMS
Robot
Step 1: Record
A
V
A
V
•
Step 2: Add PDF
C
S
Watch
Watch
scene
filesystem change
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
• events are specific to each
content type
X
SE SE
Lecturer
even-driven packing
• events are used to
CE
Lecturer
PE
cut
.YALMS files into
blocks
S
YALMS.format
Annotation
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
15 /21
15/21
16. .
.
YALMS.format : Events
1.
SE : screen capture events
◦ screen capture is video, so -- scene changes
2.
CE : binary file diffs
◦ there are
3.
LibXDiff 15 and Xdelta 16, the latter is preferred
PE : page events -- replaces SE
◦ blocks based on page changes
15
"LibXDiff" http://www.xmailserver.org/xdiff.html (2013)
16
"Xdelta Project Page" http://xdelta.org/ (2013)
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
16 /21
16/21
17. .
.
1
2
3
4
5
Block border types
Fixed minimal size
Scene change (I-Frame)
Page change
New File(s)
New File Diff(s)
Block
border
Head
Bytes
.YALMS File Design
0
4
8
12
offset
Bits
8
16
24
Block Header Design
seqno
flags
Offset
Block length in bytes
Block 1: type(3) + offset(29)
... (the same for all blocks)
Block 1 (binary data) ...
…
Tail
The First Lecture.yalms
Time
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
The entire file
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
17 /21
17/21
18. .
.
YALMS.format Robot and Screen
Browser
A
V
Get binary
YALMS
Robot
HTML5
File API
CE
SE PE
or
Auto “download file”
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
Screen
A V
VIDEO
PNG
S
C MISC.
“download” on click
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
18 /21
18/21
19. .
.
Wrapup
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
19 /21
19/21
20. .
.
Wrapup
working version at 02
• release plan: end of March
•
◦ the entire package will be offered as open source
02 myself "Homepage of the YALMS.format Subproject" https://github.com/maratishe/yalms.format (2013)
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
20 /21
20/21
21. .
.
That’s all, thank you ...
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
21 /21
21/21
22. .
.
[01] MEXT (2013)
The enPiT Project
http://www.enpit.jp
[02] myself (2013)
Homepage of the YALMS.format Subproject
https://github.com/maratishe/yalms.format
[03] W3C (2013)
Synchronized Multimedia Integration Language (SMIL 3.0)
http://www.w3.org/TR/SMIL/
[04] W3C (2013)
HTML5: W3C Working Draft
http://www.w3.org/TR/html5/
[05] W3C (2013)
File API: W3C Working Draft
www.w3.org/TR/FileAPI
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
21 /21
21/21
23. .
.
[06] M.Zhanikeev+1 (2013)
YALMS: Yet Another Lecture Management System
IEICE ET研究会
[07] M.Zhanikeev+1 (2013)
...Automatic Slicing of Screen Capture Video using Slide PDFs
IEICE ET研究会
[08] M.Zhanikeev+1 (2013)
YALMS: A Group Drive API for Cloud-Based Classrooms
IEICE IN研究会
[09] M.Zhanikeev+1 (2013)
...Solid State Drives in Rich Multimedia Content Processing, Storage and Streaming
ITE-MMS研究会
[10] M.Zhanikeev+0 (2013)
...Content Aggregation in Browsers using Recent Advances in HTML5
COMPSAC
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
21 /21
21/21
24. .
.
[11] M.Zhanikeev+0 (2013)
Experiments with application throughput in a browser with full HTML5 support
IEICE ComEx
[12] H.Pucha+3 (2008)
Adaptive File Transfers for Diverse Environments
USENIX
[13] D.Frey+2 (2012)
Probabilistic Deduplication for Cluster-Based Storage Systems
3rd ACM SoCC
[14] D.Meyer+1 (2012)
A Study of Practical Deduplication
ACM Transactions on Storage (TOS)
[15]
(2013)
LibXDiff
http://www.xmailserver.org/xdiff.html
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
21 /21
21/21
25. .
.
[16]
(2013)
Xdelta Project Page
http://xdelta.org/
[17] IETF (2002)
The VCDIFF Generic Differencing and Compression Data Format
RFC3284
M.Zhanikeev, H.Koide -- maratishe@gmail.com --
YALMS: A Data Structure for Storage and Replay of Multimedia Content -- http://tinyurl.com/marat140116 --
21 /21
21/21