Thực hiện cơ chế Cache atom header cho dịch vụ truyền video trên nền tảng hệ thống nhúng (Khóa luận tốt nghiệp)Thực hiện cơ chế Cache atom header cho dịch vụ truyền video trên nền tảng hệ thống nhúng (Khóa luận tốt nghiệp)Thực hiện cơ chế Cache atom header cho dịch vụ truyền video trên nền tảng hệ thống nhúng (Khóa luận tốt nghiệp)Thực hiện cơ chế Cache atom header cho dịch vụ truyền video trên nền tảng hệ thống nhúng (Khóa luận tốt nghiệp)Thực hiện cơ chế Cache atom header cho dịch vụ truyền video trên nền tảng hệ thống nhúng (Khóa luận tốt nghiệp)Thực hiện cơ chế Cache atom header cho dịch vụ truyền video trên nền tảng hệ thống nhúng (Khóa luận tốt nghiệp)Thực hiện cơ chế Cache atom header cho dịch vụ truyền video trên nền tảng hệ thống nhúng (Khóa luận tốt nghiệp)Thực hiện cơ chế Cache atom header cho dịch vụ truyền video trên nền tảng hệ thống nhúng (Khóa luận tốt nghiệp)
Trang 1I H C QU C GIA HÀ N I
I H C CÔNG NGH
Nguy n Ti n Thành
KHÓA LU N T T NGHI I H C H CHÍNH QUY
Ngành: Công ngh thông tin
HÀ N I - 2015
Trang 2I H C QU C GIA HÀ N I
I H C CÔNG NGH
Nguy n Ti n Thành
KHÓA LU N T T NGHI I H C H CHÍNH QUY
Ngành: Công ngh thông tin
Cán b ng d n: TS Hoàng Xuân Tùng
HÀ N I - 2015
Trang 3VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY
Nguyen Tien Thanh
AN IMPLEMENTATION OF ATOM HEADER CACHING FOR VIDEO STREAMING APPLICATIONS ON EMBEDDED DEVICES
Major: Information Technology
Supervisor: Dr Hoang Xuan Tung
HA NOI - 2015
Trang 4TÓM T T Tóm t t: Ngày nay, các d ch v xem video tr c tuy n qua m ng internet ngày càng tr
qu n lý các t p tin video phía máy ch , h tr trên các thi t b khác nhau… Atom
các máy tính cá nhân truy n th ng Chính vì v y khóa lu n này s th c hi
streaming
T khóa: Video streaming, nh d ng mp4, Atom Header Caching, Blackberry 10.
Trang 5ABSTRACT Abstract: Today, video streaming services have become more popular to everybody
We can easily watch a movie and music video… only in a browser or an application that support varies video streaming methods Every video streaming method is developed for particular properties and purposes Atom Header Caching (AHC) [12] is one of such methods It is created in order to reduce start-up time when watching video over the Internet However, this new method only support for personal computer as desktop or laptop that runs Linux operating system With the tremendous increasing number of handset devices, this thesis will inplement AHC on Blackberry 10 operating system, an operating system for smarthphone devices Together, this thesis also tries to present an overview of video streaming, mp4 file format used in internet video streaming
Key words: Video streaming, mp4 file format, Atom Header Caching, Blackberry 10
Trang 6L I C
n tình ch b ng d n tôi trong su t quá trình th c hi n khóa lu n này
trong su t quá trình h c t p, rèn luy n t ng
Hà N i, ngày 08 tháng 05
Sinh viên
Nguy n Ti n Thành
Trang 7Hoàng Xuân Tùng
rõ ràng t danh m c tài li u tham kh o trong khóa lu n Trong khóa lu n, không có vi c sao chép tài li u, công trình nghiên c u c i khác mà không ch rõ v tài li u tham
kh o
Sinh viên
Nguy n Ti n Thành
Trang 8M C L C
bi n1.1 Internet video streaming
1.2 Ki n trúc chung c a video streaming
tr video streaming hi n nay
3.2 Biên d n mã ngu n m
n mã ngu n m3.2.2 Biên d n mã ngu n m
4.2 K t qu th c nghi m
K T LU N
Trang 9DANH SÁCH KÝ HI U, CH VI T T T
Trang 10DANH SÁCH HÌNH V , B NG BI U
Hình 1 Ki n trúc chung c a video streaming [12] 3
Hình 2 S ph bi n c nh d ng mp4 [16] 7
Hình 3 C u trúc t p tin MP4 8
Hình 4 C u trúc bên trong h p moov 9
Hình 5 C u trúc t c s d ng trong Microsoft Smooth Streaming [12] 12 Hình 6 C u trúc t c s d ng trong MPEG-DASH [12] 12
Hình 7 c u trúc t p tin mp4 b phân m nh trong Microsoft Smooth Streaming [2] 15
Hình 8 Quá trình th c hi n c 16
Hình 9 Quá trình th c hi n c 18
Hình 10 Quá trình th c hi n c a -DASH [15] 21
Hình 11 Quá trình th c hi n c 22
Hình 12 T c khi b c t b i Proc 1 23
Hình 13 Hai t p tin m c t o ra t t p tin Video.mp4 sau khi c t 23
Hình 14 H tr AHC trên thi t b ng 25
Hình 15 Ki 26
ho ng c 33
Hình 17 H p tho i nh p li u 35
th c hi cache atom header c 36
hi n th hình nh c trình AtomPlayer - 1 39
hi n th hình nh c - 2 42
phát âm thanh c 43
Hình 22 B ng thông s c s d th c nghi m 47
Hình 23 B ng thông s c c a các t p tin atom header 48
Hình 24 Bi so sánh th i gian b u ng v i t 48
Hình 25 Bi so sánh th i gian b u ng v i t 49
Hình 26 Bi so sánh th i gian b u ng v i t 49
Trang 11M U
ng và gi i pháp công ngh Akamai [4] c a M công b
Streaming [2], Apple HTTP Live Streaming [1], MPEG Dynamic Adaptive Streaming
v i các t p tin video MP4
nh d ng c s d ng trong video streaming
N i dung c a khóa lu n c chia làm b n ph
Trang 12bi n 1.1 Internet video streaming
phát l i và hi n th c a các chuy ng hình nh và âm thanh c ghi l i [18] Ngay
có th xem n i dung c a t p tin video sau khi t i toàn b video
ta có th xem thông qua các giao th c video streaming mà không c n ph i t i toàn b
t p tin video v máy
i ngh tr c tuy n Video streaming c chia thành hai lo i chính
nh và âm thanh sau khi c thu vào t m t máy quay camera, microphone,
theo th i gian th c
- u bên nh n s l y v m t ph n chia nh c a d li u video và hi n th nh ng
Có th k n m t lo t các nhà cung c p d ch v có tên tu i trên th gi
Trang 13Hulu, Youku, Youtube… M t vài th ng kê trên trang web chia s video l n nh t th
t
1.2 Ki n trúc chung c a video streaming.
c mô t b i hình v
Hình 1 Ki n trúc chung c a video streaming [12]
âm thanh thì s s d ng b codec AAC ho i v i hình nh thì s d ng b codec
chung l i trong m t h p container duy nh t, g i là các m t t p tin video Các b
(wmv), MPEG-4 part 12 (mp4, m4v), …
th ng máy ch streaming server này có th g m m t ho c nhi u máy ch Ví d
lý các t
Trang 14Trên phía máy ch l i có m t l p ng d ng u khi n ch ng d ch v (QoS), l p
ch u t i… c a máy ch và c máy khách
th s d ng thông qua các giao th c t ng ng d
th s d ng TCP ho c UDP t ng giao v n trong các tình hu ng khác nhau
pháp streaming truy n th ng, progressive download và adaptive streaming (chuy n
Trong các ph n 1.3.1 và 1.3.2 ti p theo, khóa lu n s trình bày t ng quan v
pháp trên
ví d v giao th c streaming truy n th ng
t, nó l t các giao th c truy n tin không tin c y và truy n tin tin c y Do
Trang 15chú ý là máy ch ch g d li phía máy khách m Thông
video T c là n u phía máy khách g i l nh “PAUSE” thì dù cho ta có ch 10 phút hay
video trên máy khách
1.3.2 pháp d a trên HTTP
1.3.2.1 Progressive Download
Progressive Download [2] c phát tri n d a trên giao th c HTTP và c h tr
flash, Silverlight, Window Media Player, ffplay
p tin video ph i có ph n moov (movie metadata box) ch a thông tin v t p
yêu c u m t t p tin video không h tr progessive download thì máy khách bu c ph i
m thi u các chi phí khi v n hành m t h th ng các máy ch streaming
M c dù v y, khi so sánh th i gian ch i v i vi c ph i t i v toàn b t p tin video và
M t s trang web h tr Progressive Download hi n nay bao g m Youtube, Vimeo,…
c a ngành công nghi p video treaming
1.3.2.2 HTTP-based Adaptive Streaming
Adaptive streaming [2] c phát tri n d a trên progessive download và giao th c
d ng xml, khi phía máy khách có yêu c u thì s g i v u tiên
Trang 16ng, d li u hình nh và âm thanh ngu c c t thành nhi u segment nh
Khi hình nh, âm thanh ngu c mã hóa các bitrate khác nhau thì s có nhi u
lu ng thích ng (adaptive streaming) Có th k tên m t s
streaming d a trên k thu t chuy n lu ng thích
[2], Apple HLS [1] và MPEG-DASH [15]…
video streaming truy n th
bi n mà không c n ph i có các máy ch c bi t rành riêng cho nó
thu h p l i khi không c n quá nhi u máy ch
d ng
Trang 17MP4 và c pháp video streaming d a trên HTTP-based adaptive streaming
Hình 2 S ph bi n c nh d ng mp4 [16]
ch c, c u trúc c a m t t p tin mp4 c xây d ng d a trên các h p atom D a vào c u
2.1.2 C u trúc MP4
Trang 18thanh và hình nh s thành m t k thu t nén âm thanh và hình
nh ph bi n nh t vì nó không ch là m t tiêu chu n riêng bi t mà tu thu c vào yêu c u
nguyên lý th ng nh t
MPEG-4 là m t b tiêu chu n g m 28 ph n mô t ch ti t v âm thanh, hình nh và các
Coding) và Ph n 10 mô t AVC (Advanced Video Coding) Ph n 12 mô t ISO base media file format s d ng các h p (box hay còn g i là atom) v i các thông tin chi ti t
v i nhau theo th t th i gian
Hình 3 C u trúc t p tin MP4
c a video, bao g m âm thanh, hình nh, ph
li u
g i là “Movie Box” (moov) H p moov có th t u ho c cu i t p tin mp4, phthu c vào vi c có mu n h tr video streaming hay không Ví d v i các t p tin mp4 h
cho vi c phát video
Trang 19Có th s d ng m t s công c ti mp4creator, atomicparsley ho c mp4box
mp4box -info sugar.mp4
* Movie Info *
Timescale 600 - Duration 00:02:35.433
2 track(s)
Fragmented File: no
File suitable for progressive download (moov before mdat)
File Brand mp42 - version 0
Created: GMT Wed Nov 26 06:45:30 2014
Modified: GMT Wed Nov 26 06:45:30 2014
tin video có tên là sugar.mp4, nó ch ra r ng t p tin này thích h
th y, t p tin video này không ph i là m t t p tin b phân m nh fmp4 Fmp4 hay còn g i
fmp4 là m t c p metadata/d li c l p v i các fmp4 khác
Hình 4 C u trúc bên trong h p moov
Tùy thu c vào t p tin mp4 mà có th t m t s h p tùy ý trong t p tin video Tuy nhiên
Trang 20unsigned int(64) creation_time;
unsigned int(64) modification_time;
unsigned int(32) timescale;
unsigned int(64) duration;
} else { // version==0
unsigned int(32) creation_time;
unsigned int(32) modification_time;
unsigned int(32) timescale;
unsigned int(32) duration;
}
}
phiên b n mpeg-4 mà t p tin video mp4 tuân theo Theo phiên
b n ISO/IEC 14496 m i nh t ch p nh n 2 phiên b n là 0 ho c 1 Các phiên b n này ch
i gian kh i t o và th i gian ch nh s a là m t s nguyên
M t h p quan tr ng n a n m trong moov là h p trak Có th có m t ho c nhi u h p trak
ph thu c vào m t t p tin mp4 có m t ho c nhi u kênh âm thanh, hình nh Các trak là
c l p v i nhau Trong m i trak l i ch a các h p metadata khác nhau
N m trong h p trak là h p tkhd (track header) M i trak s có duy nh t m t h p tkhd
M i h p tkhd s có m t giá tr s nguyên cho c (flags) là t ng c a các giá tr
track_in_movie=7, track_in_preview=7 Ngoài ra còn m t s
creation_time, modification_time…
c a track 1 (là track hình nh): g m các thành ph n flags có giá tr 15, các c t
Trang 21type: Audio
duration: 155433 ms
language: und
quan tr ng khác là m t s nh danh (track_ID) S nh danh này là c n thi t vì nó
thanh, hình nh trong t p tin video
nh
cho d li u hình nh Qua ph n trình bày trên, ta th y rõ r ng, v i m t t p tin mp4, nó
s g m hai ph n chính là moov và mdat Khi th c hi n streaming các t p tin video thì
video thì ph i l y v moov, ta có th cache ph n d li u moov này trên thi t b gi m
th i gian tr khi b u video
Trang 22Hình 5 C u trúc t c s d ng trong Microsoft Smooth Streaming [12]
Hình 6 C u trúc t c s d ng trong MPEG-DASH [12]
i v i m i lo i video streaming, MPEG-DASH và Microsoft Smooth Streaming, m t
tùy bi n cao, m t t p tin phân m nh mp4 có th ch a các h p tùy ch nh khác nhau V i
ví d trên, trong track phân m nh c a mpeg-dash s d ng h p tfdt thay cho h p sdtp c a Microsoft Smooth Streaming Tuy nhiên gi a chúng luôn bao g m các h
moof, mfhd và mdat
m chung c a m t t p tin phân m nh mp4 là s g m nhi u các fmp4, m i fmp4
moof ch a d li u metadata cung c p thông tin cho vi c truy c c n i dung d li u trong h p mdat
Trang 23Mfhd hay còn g i là “movie fragment header”, ch a s th t (sequence number)
H p tfhd (track fragment header) ch a thông tin v Track ID, Trong m i t p tin
n n Khi ta th c hi n phân m nh t p tin mp4 (s d ng công c mp4fragment trong b
H p tfdt (track fragment decode time) n m trong h p Track fragment (traf) Cung
c p v trí chính xác c a m u (s u tiên theo timeline c a h p fragment trong track âm thanh ho c hình nh Thay vì ta c n ph i tính t ng th i gian c a các fmp4 c
nh s ng các m u có trong m t t p tin fmp4 và data offset Ho
default sample flags = 4001
[trun] size=12+492, flags=305
sample count = 60
data offset = 636
first sample flags = 4002
Trang 24[sdtp] size=8+64
[mdat] size=8+63438
rõ các thông tin v t p tin fmp4 này bao g m s sequence number, kích
c, track id mà nó thu c v , s ng m u có trong t p tin…
2.2 Các video streaming d a trên HTTP-base adaptive streaming 2.2.1 Microsoft Smooth Streaming
c phát tri n b i nhóm
d ng trên trang web c a NBC ph c v video streaming cho th v n h i Olympic mùa
hè 2008 di n ra t i B c Kinh Th ng kê c a NBC cho th c hi n streaming kho ng 3.4 petabytes [4] d li u video d a trên Microsoft Smooth Streaming Microsoft Smooth Streaming có th coi là m t trong nh ng k thu t tiên phong cho các
pháp video streaming d a trên HTTP-based adaptive streaming
Microsoft Smooth Streaming s d ng chu n nh d ng MPEG-4 part 14 (ISO/IEC
nhiên t i m i segment trong t p tin MP4 [2] Tùy thu c vào s ng các bitrate mà máy
bitrate c a video Khi máy khách g i yêu c u xem video t i m t v trí th i gian c th
v i v trí th i gian mà máy khách yêu c u d a trên kho ng byte d li u yêu c u trong
t
a T ch
n c a m t tâp tin video MP4 g i là h p Các h p có th ch a c d
Trang 25Metadata càng nh thì th ng s
ISO Base Media File Format [9] c thi t k cho phép các h p metadata
c t ch c trong các t p tin fmp4, m i t p tin fmp4 s g m 1 c p metadata/d
Hình 7 c u trúc t p tin mp4 b phân m nh trong Microsoft Smooth Streaming [2]
c các t p tin ch a MP4 s khác nhau Bitrate càng cao thì kích
c t p tin ch a MP4 càng l n
b nh d ng t p tin
Khi máy khách yêu c u m t video t i m t th i gian c th t máy ch Web IIS,
(ch a c hình nh và âm thanh) và isma (ch ch a d li u âm thanh) [2]
n MPEG-4 part 14 (ISO/IEC 14496-12) [9]
c p m t d ch v video streaming t t t i dùng thì m i m t t p tin video s
thích ng (adaptive switching) gi a các bitrate th p và cao c a cùng m t video
Trang 26ng các track, bitrate, m i quan h gi a chúng… T p tin
*.ismc
c c n thi t cho máy khách x lý t p tin video khi th c hi n streaming
Hình 8 Quá trình th c hi n c [2]
là nh d ng H264, âm thanh AAC, … cùng v i các t p tin khác
t thêm d ch v IIS Media Services h tr cho Smooth Streaming
Trang 27Hi n t i thì Smooth c h tr trên IIS 7.0 tr lên Tuy nhiên nó ch c
t thêm IIS Media Services 4 Trong IIS Media Services l i bao g m Live Smooth Streaming (ph c v cho streaming video tr c tuy n) và Smooth Streaming (ph c v cho streaming video theo yêu c u) IIS Media Servcies là m t d ch v cunng c p tính an
c h tr trên các phiên b n Windows Server 2008, Windows 7, Windows Vista SP2, Windows 8.1 tr lên
c bitrate, phân gi i thích h p Vi c chuy n này có th di n ra liên t c
M t ví d v yêu c u máy khách g i cho máy ch :
http://192.168.206.137:8800/Wildlife.ism/QualityLevels(230000)/Fragments(video=20020000)
2.2.2 Apple HLS
cung c p gi i pháp streaming video t i các thi t b c a hãng các t
ph i là MPEG-4
HTTP Live Streaming cho phép g i d li u audio và video qua giao th c HTTP t m t
bao g m iPhone, iPad, iPod touch và Apple TV cùng v i các máy tính ch y h u
c HLS h tr c 2 d ng truy n video tr c tuy n và video theo yêu c u V i d ng truy n video tr c tuy n thì chúng ta có th truy n tr c ti p hình nh, âm thanh t m t
ch c các h i ngh tr c tuy n v i s tham gia c a nhi u bên
Trang 28Hình 9 Quá trình th c hi n c [1]
thanh
phân gi i/bitrate khác nhau ph c v cho vi c streaming Ví d m t video có bitrate 6134
ki n m ng khi s d ng thông qua m ng 3G, Wifi, hay Ethernet…
kho ng 2-10 giây Cùng v i vi c chia nh các t p tin video là t o ra các t p tin ch m c
Trang 29ng h p m t t c h tr nhi u bitrate khác nhau thì ngoài vi c
video phù h p
M t ví d v n i dung c a t p tin ch m c
Wildlife_Apple_HLS_h264_SF_16x9_720p_001.m3u8 c a m t video g m có mô t
bitrates n u video có h tr nhi u bitrate
N i dung c a t p tin index.m3u8 g dài m i t p tin *.ts và tên c a các t p tin này
Trang 30frag-3.ts
…
#EXT-X-ENDLIST
c u ph i có các c u hình hay thành ph n c bi t Các máy ch có th bao g m: IIS,
ph bi n phía máy khách bao g m Safari, VLC, Flash player, JW player…
2.2.3 MPEG-DASH
Dynamic Adaptive Streaming over HTTP vi t t t là DASH (MPEG-DASH ISO/IEC
Các thành ph n trong DASH bao g m:
Các thành ph n phía máy khách
Trang 31Các thành ph n phía máy ch
chu n RFC 2616 [7]
Description (MPD) [15] và Segments [15] MPD th c ch t là m t t p tin xml ch a các
thông tin v các bitrate s n có c a video, thông tin các b codec âm thanh, hình nh
gi i mã d li u a ch ngu n url,… và các thông tin khác có liên quan
Trong các segment là các fmp4 c trình bày chi ti t ph n 2 c a khóa lu n, v i
MPEG DASH s d ng ISO Base Media File Format [9] ho c MPEG-2 Transport
Hình 10 Quá trình th c hi n c -DASH [15]
hành nào mà không yêu c u ph i có thi t b c bi t hay các c u hình ph c t p