1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN TIẾN NAM
GIẢM THIỂU THỜI GIAN BẮT ĐẦU CHO CÁC ỨNG DỤNG
TRUYỀN TẢI VIDEO ĐỊNH DẠNG MP4 SỬ DỤNG KỸ THUẬT
LẤY TRƢỚC VÀ CACHE THÔNG TIN HEADER
(Reducing Startup Time for MP4 Video Streaming Applications using Atom
Header Prefetching)
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – 2014
2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN TIẾN NAM
GIẢM THIỂU THỜI GIAN BẮT ĐẦU CHO CÁC ỨNG DỤNG
TRUYỀN TẢI VIDEO ĐỊNH DẠNG MP4 SỬ DỤNG KỸ THUẬT
LẤY TRƢỚC VÀ CACHE THÔNG TIN HEADER
(Reducing Startup Time for MP4 Video Streaming Applications using Atom
Header Prefetching)
Ngành
: Công nghệ thông tin
Chuyên ngành : Truyền dữ liệu và Mạng máy tính
Mã số
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. HOÀNG XUÂN TÙNG
Hà Nội – 2014
3
LỜI CAM ĐOAN
Tôi xin cam đoan, đây là công trình nghiên cứu của bản thân. Các số liệu,
kết quả trình bày trong luận văn là trung thực và chƣa từng đƣợc ai công bố
trong bất kỳ công trình luận văn nào trƣớc đây.
.Hà nội, ngày 30 tháng 10 năm 2014
Nguyễn Tiến Nam
4
MỤC LỤC
Lời cam đoan
Mục lục
Danh mục các ký hiệu, các chữ viết tắt
Danh mục các bảng
Danh mục các hình vẽ, đồ thị
MỞ ĐẦU
1
CHƢƠNG I: Video streaming trên mạng Internet
12
1.1 Tổng quan về video streaming trên mạng Internet.
12
1.2 Kiến trúc hệ thống video streaming
13
1.2.1
Kiến trúc chung và chức năng các thành phần
13
1.2.2
Một số giao thức thƣờng dùng cho video streaming
15
1.2.3
Video Cache
17
1.2.4
Các định dạng tệp tin video thƣờng dùng cho video streaming
19
1.3 Định dạng MP4
20
1.3.1
Sự phổ biến của định dạng MP4
20
1.3.2
Cấu trúc của tập tin MP4
21
1.4 Quá trình streaming video định dạng MP4
30
2
CHƢƠNG II - Một số phƣơng pháp video streaming sử dụng video định
dạng MP4
32
2.1 Phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP
32
2.2 Các phƣơng pháp, giao thức video streaming sử dụng giao thức HTTP
dựa trên streaming thích ứng tốc độ bit.
33
3
2.2.1
Streaming thích ứng tốc độ bit
33
2.2.2
Phƣơng pháp MPEG DASH
35
2.2.3
Giao thức Microsoft Smooth Streaming
39
2.2.4
Giao thức HLS
41
CHƢƠNG III: Phƣơng pháp Atom Caching.
44
3.1 Động cơ của đề xuất
44
3.2 Mô hình hoạt động của Atom Caching
45
5
3.3 Các thành phần trên máy chủ MP4_atom_caching
46
Hoạt động của máy chủ MP4_atom_caching
47
3.3.1
3.4 Các thành phần trên máy khách MP4_atom_caching
3.4.1
Ứng dụng Media player
52
3.4.2
Thƣ viện xử lý video
52
3.5 Triển khai
4
52
54
3.5.1
Giao thức truyền tải giữa máy chủ và máy khách
54
3.5.2
Triển khai máy chủ MP4_atom_caching
54
3.5.3
Triển khai máy khách MP4_atom_caching
55
CHƢƠNG IV: Đánh giá hiệu năng của phƣơng pháp Atom Caching
4.1 Kết quả thí nghiệm
58
59
4.2 So sánh Atom Caching và phƣơng pháp tải về tiến bộ sử dụng giao thức
HTTP.
61
4.2.1
Kbps.
Trƣờng hợp 1: Băng thông giữa máy chủ và máy khách là 512
61
4.2.2
Trƣờng hợp 2: Băng thông giữa máy chủ và máy khách là 2 Mbps.
62
4.3 So sánh Atom Caching với HLS.
64
4.3.1
Kbps.
Trƣờng hợp 1: Băng thông giữa máy chủ và máy khách là 512
64
4.3.2
Trƣờng hợp 2: Băng thông giữa máy chủ và máy khách là 2 Mbps.
65
4.4 Đánh giá kết quả mô phỏng.
KẾT LUẬN
TÀI LIỆU THAM KHẢO
66
6
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Viết tắt
Tiếng Anh
Tiếng Việt
DASH
Dynamic Adaptive
Streaming over
HTTP
Streaming tự động
thích ứng dựa trên giao
thức truyền tải siêu văn
bản
FTP
File Transfer
Protocol
Giao thức truyền tập tin
HLS
Hypertext Transfer
Protocol Live
Streaming
Truyền dòng dữ liệu
trực tiếp sử dụng giao
thức truyền tải siêu văn
bản
HTTP
Hypertext Transfer
Protocol
Giao thức truyền tải
siêu văn bản
IEC
International
Electrotechnical
Commission
Ủy ban kỹ thuật điện
quốc tế
ISO
International
Organization for
Standardization
Tổ chức tiêu chuẩn hóa
quốc tế
MDAT
Media data
Dữ liệu truyền thông đa
phƣơng tiện
MOOV
Movie metadata
Siêu dữ liệu video
MPEG
Moving Picture
Experts Group
Nhóm các chuyên gia
hình ảnh động
RTCP
Real-Time Control
Protocol
Giao thức quản lý thời
gian thực
RTP
Real-time Transport
Protocol
Giao thức truyền thông
thời gian thực
RTSP
Real-Time
Streaming Protocol
Giao thức truyền dòng
dữ liệu thời gian thực
7
DANH MỤC CÁC BẢNG
Bảng 1.1: Một số định dạng tập tin thƣờng dùng cho video streaming .............. 19
Bảng 1.2: Thông tin một số phần của chuẩn MPEG-4 ....................................... 22
Bảng 1.3: Một số kiểu atom của định dạng MP4 ................................................ 27
Bảng 1.4: Một số thông số của 4 tập tin video MP4 mẫu ................................... 28
Bảng 4.1: Thông số 3 tệp tin video sử dụng để đo đạc ....................................... 59
Bảng 4.2: Kết quả đo thời gian bắt đầu trung bình khi sử dụng phƣơng pháp
Atom Caching và sử dụng phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP
trong trƣờng hợp thiết lập tốc độ tối đa của kết nối HTTP giữa máy chủ và máy
khách bằng 512 Kbps ......................................................................................... 62
Bảng 4.3: Kết quả đo thời gian bắt đầu trung bình khi sử dụng phƣơng pháp
Atom Caching và sử dụng phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP
trong trƣờng hợp tốc độ tối đa của kết nối HTTP giữa máy chủ và máy khách
bằng 2 Mbps ........................................................................................................ 63
Bảng 4.4: Kết quả đo thời gian bắt đầu trung bình khi sử dụng phƣơng pháp
Atom Caching và sử dụng HLS trong trƣờng hợp thiết lập tốc độ tối đa của kết
nối HTTP giữa máy chủ và máy khách là 512 Kbps .......................................... 64
Bảng 4.5: Kết quả đo thời gian bắt đầu trung bình khi sử dụng phƣơng pháp
Atom Caching và sử dụng HLS trong trƣờng hợp thiết lập tốc độ tối đa của kết
nối HTTP giữa máy chủ và máy khách bằng 2 Mbps ......................................... 66
8
DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ
Hình 1.1:Kiến trúc của hệ thống video streaming .............................................. 13
Hình 1.2 :Cấu trúc bộ mã hóa và giải mã video MPEG-4 .................................. 23
Hình 1.3: Định dạng MP4 là mở rộng của định dạng tệp tin ISO (ISO base
media file format, MPEG-4 Part 12) ................................................................... 24
Hình 1.4:Cấu trúc định đạng ISO Base Media Format MPEG-4 part 12 ........... 26
Hình 1.5: Ví dụ một đoạn nhỏ của tệp tin MP4 .................................................. 26
Hình 1.6: Một vài atom của một tập tin MP4 mẫu ............................................. 27
Hình 1.7: Tập tin MP4 trƣớc khi sử dụng kỹ thuật MP4 fast start ..................... 30
Hình 1.8: Tập tin MP4 sau khi sử dụng kỹ thuật fast start ................................. 31
Hình 2.1: Tổng quan về kỹ thuật streaming thích ứng tốc độ bit dựa trên giao
thức HTTP ........................................................................................................... 33
Hình 2.2: Ví dụ đơn giản về hoạt động của DASH ............................................ 35
Hình 2.3: Kiến trúc DASH .................................................................................. 37
Hình 2.4: Cấu trúc tệp tin trình bày phƣơng tiện truyền thông của DASH ........ 38
Hình 2.5: Cấu trúc định dạng tệp tin MP4 dùng cho Microsoft Smooth
Streaming............................................................................................................. 40
Hình 2.6: Cấu trúc từng „chunk‟ của Microsoft Smooth Streaming ................... 40
Hình 2.7: Các thành phần và hoạt động của HLS ............................................... 42
Hình 2.8 : Định dạng tập tin chỉ mục của HLS ................................................... 43
Hình 3.1: Mô hình hoạt động của phƣơng pháp đề xuất..................................... 45
Hình 3.2: Các thành phần trên máy chủ MP4_atom_caching ............................ 46
Hình 3.3 : Hoạt động của dịch vụ upload video.................................................. 47
Hình 3.4 :M_process và S_process thao tác với Q_ring ..................................... 48
Hình 3.5: Cấu trúc hàng đợi Q_ring.................................................................... 49
Hình 3.6: Hoạt động của M_process ................................................................... 50
Hình 3.7: Hoạt động của S_process .................................................................... 51
Hình 3.8: Hoạt động của dịch vụ phân phối video.............................................. 51
Hình 3.9: Các thành phần trên máy khách MP4_atom_caching ......................... 52
Hình 3.10: Lƣu đồ hoạt động của plugin atom header caching ở máy khách .... 53
Hình 4.1: Thông tin cài đặt hệ thống đánh giá hiệu năng ................................... 58
Hình 4.2: Cấu trúc tệp tin emulator.txt ............................................................... 61
Hình 4.3 :Kết quả đo đạc trong trƣờng hợp thiết lập tốc độ tối đa của kết nối
HTTP giữa máy chủ và máy khách bằng 512 Kbps. .......................................... 62
Hình 4.4 :Kết quả đo đạc trong trƣờng hợp thiết lập tốc độ tối đa của kết nối
HTTP giữa máy chủ và máy khách bằng 2Mbps ................................................ 63
9
Hình 4.5: Kết quả đo đạc trong trƣờng hợp thiết lập tốc độ tối đa của kết nối
HTTP giữa máy chủ và máy khách bằng 512 Kbps ........................................... 65
10
LỜI MỞ ĐẦU
Khoảng những năm nửa cuối thập niên 90, việc xem một video trên mạng
là rất khó khăn. Tuy nhiên, sau khi Internet bùng nổ vào năm 1993, ngƣời ta đã
bắt đầu thử nghiệm việc truyền video trên Internet. Ngày nay, với sự phát triển
nhanh chóng của mạng Internet, các ứng dụng đa phƣơng tiện trong đó có video
streaming đã trở thành nhu cầu không thể thiếu của ngƣời dùng.
Đối với các định dạng tệp tin video truyền thống, dữ liệu chỉ có thể hiển
thị khi đã đƣợc tải về toàn bộ tệp tin. Với các tệp tin video chất lƣợng cao có
dung lƣợng lớn thì công việc này sẽ tiêu tốn rất nhiều thời gian. Một tập tin
video có thể mất thời gian thực tế để tải về lớn hơn chiều dài của video.
Streaming video cho phép ngƣời sử dụng bắt đầu xem các video đƣợc lƣu
trữ trên máy chủ streaming mà không cần tải về trƣớc tập tin.
Mục tiêu chính của luận văn là cung cấp cái nhìn tổng thể về video
streaming trên mạng Internet, một số mô hình video streaming trên mạng
Internet và đề xuất phƣơng pháp mới giúp giảm thiểu thời gian bắt đầu cho các
ứng dụng truyền tải video định dạng MP4. Phƣơng pháp đề xuất, Atom caching,
sử dụng kỹ thuật lấy trƣớc và cache thông tin header của file video nhằm rút
ngắn thời gian trễ khởi động của một phiên xem video. Tác giả cũng tiến hành
phân tích, đo đạc, và đánh giá ƣu, nhƣợc điểm của các mô hình video streaming
đang đƣợc áp dụng trên thực tế so với phƣơng pháp đƣợc đề xuất.
Bố cục luận văn đƣợc tuân thủ chặt chẽ theo mẫu ban hành của trƣờng
Đại Học Công Nghệ - ĐHQGHN gồm 4 chƣơng chính, ngoài ra còn có các phần
mở đầu, kết luận và tài liệu tham khảo. Phần kết luận nêu tóm tắt các vấn đề đã
trình bày trong các chƣơng, đánh giá các kết quả đã đạt đƣợc, đồng thời đƣa ra
các định hƣớng nghiên cứu, phát triển tiếp theo. Nội dung các chƣơng đƣợc tóm
tắt nhƣ sau:
Chƣơng 1: Video streaming trên mạng Internet.
Chƣơng 2: Một số phƣơng pháp video streaming sử dụng video định dạng
MP4.
Chƣơng 3: Phƣơng pháp Atom Caching
Chƣơng 4: Đánh giá hiệu năng của phƣơng pháp Atom Caching.
Trong quá trình hoàn thành luận văn của mình, tác giả đã hết sức cố gắng,
song luận văn còn những hạn chế nhất định, tác giả rất mong nhận đƣợc những
góp ý để vấn đề nghiên cứu này ngày càng đƣợc hoàn thiện hơn. Qua đây, tác
giả xin chân thành cảm ơn TS. Hoàng Xuân Tùng, thầy đã gợi ý về đề tài, thầy
11
đã hƣớng dẫn, chỉ bảo tận tình và cung cấp nhiều tài liệu quý liên quan trong quá
trình tác giả thực hiện luận văn này. Tác giả cũng xin chân thành cảm ơn các
Thầy, Cô đã dạy, giúp đỡ và truyền cảm hứng học tập, nghiên cứu trong suốt
quá trình học tập tại Trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội.
Xin trân trọng cảm ơn!
Tác giả: Nguyễn Tiến Nam
12
1
CHƢƠNG I: Video streaming trên mạng Internet
1.1 Tổng quan về video streaming trên mạng Internet.
Video là một loại dữ liệu đa phƣơng tiện rất quan trọng phục vụ cho
truyền thông hoặc cho nhu cầu giải trí của con ngƣời trong nhiều thập niên. Thời
kỳ đầu, video đƣợc xử lý và truyền dƣới dạng tín hiệu tƣơng tự. Tuy nhiên, với
sự phát triển và phổ biến của Internet vào giữa những năm 90 đã định hƣớng
việc truyền tải video qua mạng chuyển mạch gói. Ngày nay, với sự phát triển
không ngừng của vi mạch điện tử và mạng máy tính dẫn đến số hóa video và
đang mở ra một cuộc cách mạng về nén và truyền tải video trên mạng Internet.
Video Streaming đƣợc định nghĩa là một “dòng chảy” video, nghĩa là dữ
liệu video đƣợc truyền liên tục từ nguồn đến một đích nào đó thông qua Internet.
Video Streaming thƣờng đƣợc sử dụng trong lĩnh vực giải trí hoặc dạy học,
dùng để truyền tải các tập tin video hoặc các bài học, cung cấp cho ngƣời sử
dụng các tiện ích nhƣ tìm kiếm, liệt kê, khả năng hiển thị hoặc hiển thị lại các dữ
liệu video theo yêu cầu.
Với các định dạng tập tin video truyền thống, dữ liệu chỉ có thể hiển thị
khi đã đƣợc tải về (download) toàn bộ, vì vậy đối với các tập tin video chất
lƣợng cao có dung lƣợng lớn thì công việc này sẽ tiêu tốn rất nhiều thời gian.
Một tập tin video có thể mất thời gian thực tế để tải về lớn hơn chiều dài của
video đó. Streaming video tiết kiệm thời gian cho ngƣời sử dụng bằng cách sử
dụng các công nghệ giải nén kết hợp với khả năng hiển thị dữ liệu đồng thời
trong lúc vẫn tiếp tục tải về tệp tin video của các ứng dụng trình diễn dữ liệu đa
phƣơng tiện (player). Quá trình này của các player còn đƣợc gọi là quá trình
“đệm” (buffering).
Theo nhu cầu sử dụng video streaming đƣợc thể hiện dƣới hai dạng:
- Video theo yêu cầu (Video on demand): là các dữ liệu video đƣợc lƣu
trữ trên máy chủ đa phƣơng tiện và sẽ đƣợc truyền đến ngƣời dùng khi có yêu
cầu, ngƣời dùng có toàn quyền để hiển thị cũng nhƣ thực hiện các thao tác (tua,
dừng, quay lại…) với các đoạn dữ liệu này.
- Video thời gian thực (Live streaming) là các dữ liệu video đƣợc chuyển
đổi trực tiếp từ các nguồn cung cấp dữ liệu theo thời gian thực nhƣ: camera,
microphone, các thiết bị phát dữ liệu video .... Các dữ liệu này sẽ đƣợc phát
quảng bá thành các kênh và ngƣời dùng sẽ có quyền truy nhập bất kỳ kênh nào
lấy về dữ liệu video nhƣng sẽ không thực hiện đƣợc các thao tác tua, dừng,...
trên các dữ liệu video đó.
13
Theo [1], nếu phân chia theo các cách thức truyền tải, video streaming
đƣợc thể hiện dƣới hai dạng:
- True Streaming: tín hiệu video đến theo thời gian thực và nội dung
video chỉ cần một vài giây để đệm trƣớc khi play và máy chủ sẽ không lƣu các
tập tin vào đĩa cứng. Video thời gian thực thƣờng đƣợc phân phối theo cách này
và mỗi tệp tin video cũng chỉ có sẵn trong một khoảng thời gian nhất định.
- Progressive Download hoặc Progressive Streaming: Phƣơng pháp này
lƣu tập tin vào đĩa cứng sau đó play từ đó. Video theo yêu cầu thƣờng đƣợc
phân phối theo cách này và video sẽ đƣợc lƣu vào ổ cứng và máy chủ trong
khoảng thời gian tùy theo quy định của phần mềm phía máy chủ và máy khách.
Việc streaming video qua mạng Internet mang lại rất nhiều lợi ích, tuy
nhiên dữ liệu video khi streaming qua mạng lại gặp phải rất nhiều yếu tố bất lợi
nhƣ băng thông, độ trễ và mất gói tin. Các yếu tố bất lợi đó trực tiếp làm tăng
thời gian bắt đầu của quá trình streaming video.
Thời gian bắt đầu khi streaming video là thời gian ngƣời dùng phải chờ kể
từ khi gửi yêu cầu video đến máy chủ cung cấp video cho đến khi khung hình
đầu tiên của video đó hiện thị trên thiết bị của ngƣời dùng.
Thời gian bắt đầu lớn là vấn đề gây ảnh hƣởng trực tiếp và đầu tiên ngƣời
dùng có thể cảm nhận đƣợc khi sử dụng các dịch vụ streaming video. Đã có rất
nhiều giải pháp đƣợc nghiên cứu và phát triển nhằm khắc phục vấn đề này.
1.2 Kiến trúc hệ thống video streaming
1.2.1 Kiến trúc chung và chức năng các thành phần
Hình 1.1:Kiến trúc của hệ thống video streaming
14
Theo [2], một hệ thống video streaming bao gồm 6 thành phần nhƣ hình
vẽ 1.1.
Hoạt động:
Đầu tiên video và âm thanh thô đƣợc nén bằng cách sử dụng các thuật toán
nén video và âm thanh rồi sau đó đƣợc lƣu vào trong thiết bị lƣu trữ .
Khi có yêu cầu từ khách hàng, máy chủ streaming sẽ lấy video và âm
thanh đã đƣợc nén và lƣu trong các thiết bị lƣu trữ sau đó cùng với phần mềm
quản lý chất lƣợng dịch vụ QoS (Quality of Service) tầng ứng dụng điều chỉnh
video và âm thanh thành các luồng bit tùy theo tình trạng mạng và các yêu cầu
QoS. Tiếp theo sử dụng các giao thức truyền tải nén các chuỗi bit rồi gửi các gói
tin video và âm thanh qua mạng Internet. Các gói tin truyền tải trong mạng
Internet có thể sẽ bị trễ quá mức do tắc nghẽn, hoặc cũng có thể sẽ bị hƣ hỏng
do bị lỗi bit. Để nâng cao chất lƣợng truyền video và âm thanh đƣợc truyền liên
tục, hệ thống phân phối phƣơng tiện truyền thông liên tục sẽ đƣợc triển khai trên
mạng và chuyển tiếp các gói tin đƣợc gửi đến nơi nhận. Sau khi nhận đƣợc các
luồng bit từ máy chủ streaming, máy khách sẽ tiến hành giải mã thành video và
âm thanh thực sự để trình chiếu cho ngƣời dùng. Để đồng bộ hóa giữa video và
âm thanh , các cơ chế đồng bộ truyền thông đƣợc yêu cầu ở phía máy khách.
Từ hình vẽ 1.1, có thể thấy đƣợc các thành phần trong kiến trúc video
streaming có sự liên quan rất chặt chẽ với nhau.
Các thành phần của hệ thống video streaming:
- Nén video: Dữ liệu video nguyên gốc cần phải đƣợc nén trƣớc khi đƣợc
truyền đi trên mạng nhằm để đạt đƣợc hiệu quả tốt nhất và tiết kiệm băng thông.
Các chƣơng trình nén video có thể chia làm hai loại:
+ Khả năng mở rộng nén video (scalable video coding)
+ Không có khả năng mở rộng nén video (nonscalable video coding).
Khả năng mở rộng nén video là tính năng cho phép các ứng dụng quan sát
sự biến động băng thông trên đƣờng truyền để từ đó sử dụng phƣơng pháp nén
thích hợp.
Không mở rộng khả năng nén video sẽ không làm đƣợc điều này, video sẽ
đƣợc nén ngay từ đầu và không quan tâm tới biến động băng thông trên đƣờng
truyền.
- Cơ chế điều khiển chất lượng dịch vụ tầng ứng dụng: Để đối phó với sự
biến thiên của tài nguyên mạng hoặc để cung cấp chất lƣợng hình ảnh nhằm đáp
ứng theo yêu cầu của từng ngƣời sử dụng, nhiều kỹ thuật điều khiển chất lƣợng
dịch vụ tầng ứng dụng đã đƣợc đƣa ra. Có 2 kỹ thuật thƣờng đƣợc dùng ở đây:
15
+ Kỹ thuật điều khiển tắc nghẽn
+ Kỹ thuật kiểm soát lỗi.
Kỹ thuật điều khiển tắc nghẽn đƣợc sử dụng để ngăn ngừa mất gói dữ liệu
và giảm trễ nhằm kiểm soát lỗi.
Kỹ thuật kiểm soát lỗi nhằm phát hiện và sửa đổi khi các gói tin bị lỗi bit
trong quá trình truyền tải trên mạng.
- Dịch vụ phân phát video trên đường truyền: Để cung cấp các dịch vụ đa
phƣơng tiện có chất lƣợng tốt, sự hỗ trợ của mạng rất quan trọng. Sự hỗ trợ của
mạng sẽ giúp giảm trễ khi truyền tải và giảm tỷ lệ mất gói tin. Đƣợc xây dựng
trên nền của Internet (giao thức IP), dịch vụ phân phối video trên đƣờng truyền
cho phép sử dụng QoS (kiểm soát chất lƣợng dịch vụ) mang lại hiệu quả cao cho
việc phân phát video qua mạng Internet.
- Máy chủ Streaming: máy chủ streaming đóng vai trò quan trọng trong
việc cung cấp dịch vụ truyền thông dữ liệu đa phƣơng tiện trực tuyến. Để cung
cấp các dịch vụ truyền thông dữ liệu đa phƣơng tiện trực tuyến chất lƣợng cao,
các máy chủ streaming đƣợc yêu cầu phải xử lý dữ liệu video với sự ràng buộc
về thời gian, hạn chế thời gian trễ và hỗ trợ các hoạt động tƣơng tác của ngƣời
dùng với video nhƣ tạm dừng (pause), tua (fast forward), tiếp tục, nhanh chóng
chuyển tiếp và nhanh chóng quay lại. Một máy chủ streaming thƣờng bao gồm
ba hệ thống con: một hệ thống giao tiếp kết nối (ví dụ, giao thức vận chuyển),
một hệ điều hành, và một hệ thống lƣu trữ.
- Cơ chế đồng bộ dữ liệu phương tiện truyền thông: với cơ chế đồng bộ
dữ liệu phƣơng tiện truyền thông, ứng dụng tại bên nhận có thể hiển thị video
gần giống nhƣ khi đƣợc khởi tạo tại bên gửi. Một ví dụ về tác dụng của cơ chế
đồng bộ dữ liệu phƣơng tiện truyền thông là cử động môi của ngƣời nói phải
phù hợp với tiếng nói họ phát ra.
- Các giao thức cho truyền thông dữ liệu đa phương tiện: các giao thức
đƣợc thiết kế và chuẩn hóa cho việc truyền tải video streaming giữa máy chủ và
máy khách. Các giao thức sẽ cung cấp các dịch vụ nhƣ địa chỉ mạng, vận
chuyển và kiểm soát phiên.
1.2.2 Một số giao thức thƣờng dùng cho video streaming
Giao thức sử dụng cho video streaming có thể đƣợc chia làm 3 loại:
- Giao thức tầng mạng : Internet Protocol (IP)
- Giao thức tầng giao vận:
+ Lớp thấp sử dụng Use Datagram Protocol (UDP) và Giao thức điều
khiển truyền vận (Transmission Control Protocol TCP).
16
+ Lớp cao sử dụng Real-time Transport Protocol (RTP) hoặc RealTime Control Protocol (RTCP), Hypertext Transfer Protocol
(HTTP).
- Giao thức điều khiển phiên nhƣ Real-Time Streaming Protocol (RTSP),
Session Initiation Protocol (SIP).
a) Họ giao thức RTP (Real Time Transport Protocol) :
RTP [3] là một giao thức đã từng đƣợc sử dụng cho việc truyền tải video
trong một thời gian dài. RTP dựa trên UDP (có thể sử dụng TCP), đƣợc coi là
một phần của lớp vận chuyển và có liên quan chặt chẽ với giao thức điều khiển
thời gian thực RTCP (hoạt động ở tầng phiên). Chức năng chính của RTCP là
cung cấp thông tin phản hồi về chất lƣợng dịch vụ của RTP từ đó đƣa ra các
hành động điều chỉnh tốc độ truyền của dữ liệu.
Một số giao thức khác cũng thƣờng đƣợc dùng với RTP nhƣ RTSP (Real
Time Streaming Protocol). Giao thức này hỗ trợ thêm các yêu cầu phản hồi nhƣ
play, tạm dừng, và ghi âm. RTP, RTCP, RTSP hoạt động trên các cổng khác
nhau, thông thƣờng khi cổng của giao thức RTP là n thì RTCP sẽ là trên cổng
n+1.
Có nhiều player đã hỗ trợ RTP nhƣ: RealPlayer, Windows media player,
Quicktime player. Các trình duyệt có sử dụng Flash cũng cho phép play luồng
dữ liệu RTP/UDP.
b) RTMP ( Real Time Messaging Protocol):
RTMP [4] là một giao thức độc quyền sử dụng chủ yếu bởi Flash, nhƣng
cũng đƣợc sử dụng cho một vài ứng dụng khác. RTMP sử dụng TCP, hoạt động
ở trong ứng dụng thông qua lớp phiên.
Sự phát triển của RTMP phụ thuộc vào sự phát triển của Flash. Do đó một
số thiết bị của Apple sẽ không chấp nhận dòng RTMP nếu không sử dụng các
ứng dụng của bên thứ ba ngoài Adobe.
RTMP có thể tạo đƣờng hầm thông qua HTTP (RTMPT) cho phép vƣợt
tƣờng lửa khi RTMP bị chặn. RTMP có một số biến thể nhƣ RTMPE (RTMP
với mã hóa đơn giản ), RTMPTE (đƣờng hầm với mã hóa đơn giản), RTMPS
(mã hóa sử dụng SSL).
c) HTTP:
Cùng với sự tăng lên nhanh chóng của số lƣợng các website chia sẻ video
trên mạng hiện nay, sử dụng giao thức HTTP cho việc truyền tải video trên
mạng đang trở thành một xu hƣớng mới. Các gói tin khi truyền theo giao thức
HTTP thƣờng mặc định đƣợc các bộ định tuyến, tƣờng lửa,… cho phép đi qua,
17
đồng thời việc xây dựng một hệ thống video streaming sử dụng giao thức HTTP
dễ dàng hơn so với các giao thức khác. Các lý do này làm cho việc streaming sử
dụng giao thức HTTP ngày càng trở nên phổ biến.
d) Các giao thức dựa trên BitTorrent
Có khá nhiều đề xuất sử dụng BitTorrent cho streaming video nhƣ [5] và
[6]. Trong đó BitTorrent Live [6] đƣợc phát triển nhƣ là một phần của dự án mã
nguồn mở BitTorrent. Đây là một giao thức peer-to-peer có thể mở rộng tới rất
nhiều ngƣời dùng. Mỗi ngƣời dùng sẽ đóng vai trò một nguồn phát video
(broadcaster) và tốc độ streaming sẽ phụ thuộc vào số lƣợng ngƣời dùng upload
tại cùng một thời điểm.
1.2.3 Video Cache
Với các hệ thống trình chiếu video trực truyến hoặc các hệ thống cung cấp
các video bằng việc tải về theo yêu cầu ngƣời dùng đang đƣợc sử dụng hiện nay,
mỗi yêu cầu của ngƣời dùng đến máy chủ đều phải đƣợc xử lý để đảm bảo yêu
cầu đó là hợp lệ. Tiếp sau đó, máy chủ sẽ truy xuất đến ổ cứng (hoặc thiết bị lƣu
trữ cục bộ) để lấy tập tin đƣợc yêu cầu đó và gửi về cho ngƣời dùng.
Tuy nhiên, tốc độ truy xuất ổ cứng thƣờng khá chậm. Bên cạnh đó, có
những tập tin video đƣợc nhiều ngƣời dùng cùng quan tâm trong một thời điểm
và chỉ sai khác nhỏ về thời gian, việc truy xuất ổ cứng liên tục để lấy cùng một
tập tin video nhƣ cách làm thông thƣờng rất lãng phí và tốn kém năng lực xử lý
của máy chủ. Để giải quyết vấn đề này, giải pháp sử dụng video Cache đã đƣợc
đề xuất.
Video Cache là phƣơng pháp lƣu trữ sẵn dữ liệu video để chờ xử lý.
Video Cache có thể là một vùng của bộ nhớ chính hoặc một thiết bị lƣu trữ tốc
độ cao độc lập. Video Cache có thể đƣợc lƣu trữ rất nhiều nơi nhƣ: Cache của
CPU, Cache trong RAM, Cache của trình duyệt phía máy khách, …
Video Cache đƣợc chia thành 3 loại: video Cache tại máy chủ, video
Cache tại các đối tƣợng trung gian trong mạng và video Cache tại máy khách.
Việc đầu tƣ cho thiết bị video Cache kết hợp với một giải pháp quản lý video
Cache hiệu quả sẽ giảm tải cho máy chủ và cũng tăng tốc độ truyền tải video
streaming lên rất nhiều.
Cách thức hoạt động của video Cache trên máy chủ:
- Dữ liệu đƣợc truy xuất từ ổ cứng đƣợc đẩy lên video Cache.
- Với mỗi yêu cầu từ ngƣời nhận gửi tới, máy chủ sẽ tìm kiếm dữ liệu đã
tồn tại trên video Cache chƣa, nếu dữ liệu tồn tại đã tồn tại trên video Cache thì
18
dữ liệu đó sẽ đƣợc truyền trực tiếp đến ngƣời dùng và bỏ qua giai đoạn truy xuất
từ ổ cứng.
- Cơ chế để quản lý dữ liệu trên video Cache sẽ quyết định dữ liệu nào
đƣợc đƣa vào hoặc loại bỏ ra khỏi video Cache. Để xây dựng cơ chế quản lý dữ
liệu của video Cache thƣờng phải thông qua việc phân tích thông tin truy xuất
dữ liệu của máy khách để đƣa ra một giải thuật quản lý video Cache hợp lý.
Cách thức hoạt động của video Cache tại các đối tƣợng trung gian trong
mạng:
- Đầu tiên, việc triển khai hệ thống video Cache tại các đối tƣợng trung
gian trong mạng yêu cầu việc tạo ra các đối tƣợng trung gian giữa máy chủ và
máy khách, các đối tƣợng này sẽ lƣu trữ một phần hoặc tất các video có trên
máy chủ.
- Với mỗi yêu cầu của ngƣời dùng, máy chủ sẽ trả về một phần dữ liệu
đang có hoặc chuyển tiếp yêu cầu đó đến các đối tƣợng trung gian gần với ngƣời
dùng hơn. Sau khi nhận đƣợc yêu cầu, các đối tƣợng trung gian lại tiếp tục
truyền tải phần dữ liệu đang có trong video Cache của chúng. Khi yêu cầu của
ngƣời dùng nằm ngoài khoảng dữ liệu các đối tƣợng trung gian đang có, các yêu
cầu đó sẽ đƣợc chuyển tiếp đến các đối tƣợng khác trong mạng đang chứa dữ
liệu đó.
- Cơ chế quản lý dữ liệu: cơ chế quản lý dữ liệu sẽ quyết định dữ liệu nào
đƣợc lƣu trữ trên máy chủ (có thể là thông tin header, dữ liệu gốc, thông tin về
các đối tƣợng caching trung gian trong mạng). Ngoài ra cơ chế này còn quyết
định dữ liệu nào sẽ lƣu trữ tại các đối tƣợng trung gian, thời gian lƣu trữ các dữ
liệu này và thời điểm đồng bộ dữ liệu với máy chủ.
Cách thức hoạt động của video Cache tại máy khách.
- Đối với phƣơng pháp này, dữ liệu video sẽ đƣợc lƣu trữ một tại máy
khách. Khi có yêu cầu của ngƣời dùng, phần mềm play dữ liệu đa phƣơng tiện
phía máy khách sẽ tìm nội dung video trong video Cache của máy khách trƣớc
sau đó mới gửi tiếp những yêu cầu về phần dữ liệu còn thiếu lên máy chủ chứa
video. Phƣơng pháp này cũng có tác dụng giảm thời gian bắt đầu khi streaming
video cho ngƣời dùng.
- Cơ chế quản lý dữ liệu: cơ chế quản lý dữ liệu sẽ quyết định phần dữ
liệu nào sẽ đƣợc lƣu trữ trƣớc tại máy khách (thƣờng là các thông tin về header
của video), dữ liệu nào sẽ lƣu trữ trên máy chủ.
19
1.2.4 Các định dạng tệp tin video thƣờng dùng cho video streaming
Các tệp tin video thƣơng đƣợc chia thành 2 loại: tệp tin video codec và
tệp tin video không codec. Một số định dạng tập tin video, khi nhìn vào phần mở
rộng của tập tin video có thể xác định đƣợc loại codec mà video đó sử dụng nhƣ:
WMV, MOV… Tuy nhiên, một số loại tập tin không chỉ định chính xác loại
codec nào khi nhìn vào phần mở rộng của tập tin nhƣ: MP4, AVI, MKV… Các
loại tập tin trên là các hộp đựng (container) để chứa nội dung video thực sự
(luồng âm thanh, hình ảnh, phụ đề) đã đƣợc encode. Bảng 1.1 là ví dụ về một số
loại định dạng tập tin video hiện nay các website chia sẻ video trên mạng thƣờng
sử dụng:
Bảng 1.1: Một số định dạng tập tin thường dùng cho video streaming
Định dạng
Giới thiệu
3GP – 3GPP Multimedia
Định dạng 3GP là định dạng video đƣợc phát
triển bởi dự án 3rd Generation Partnership dựa
trên chuẩn MPEG-4. 3GP đƣợc sử dụng cho các
tập tin đa phƣơng tiện trên mạng không dây 3G
tốc độ cao, sử dụng phổ biến trên điện thoại có
hỗ trợ quay phim.
ASF – Advanced Systems Định dạng ASF đƣợc Microsoft phát triển. ASF
Format
đƣợc dùng để truyền tải các tập tin đa phƣơng
tiện chứa văn bản, đồ họa, âm thanh, video. Tập
tin ASF chủ yếu là tập tin Windows Media
Audio (wma) và Windows Media Video (wmv).
AVI
–
Interleave
Audio
Video Định dạng AVI cũng đƣợc phát triển bởi
Microsoft và chứa dữ liệu đƣợc mã hóa theo các
codec khác nhau (có thể dùng các codec nhƣ
DivX để mã hóa tập tin AVI). AVI bao gồm hai
loại định dạng chính DivX, Xvid. AVI cũng là
một định dạng rất phổ biển hiện nay.
Dữ liệu của tập tin AVI đƣợc chia trong các
khối, mỗi khối đƣợc xác định bởi một nhãn.
Khối đầu tiên chứa dữ liệu về video, những
thông tin về chiều dài, chiều rộng, tỷ lệ khung.
Khối thứ 2 chứa dữ liệu thật sự của tập tin AVI.
Khối thứ 3 chứa các chỉ mục của các khối dữ
20
Định dạng
Giới thiệu
liệu trong tập tin video.
FLV – Flash Video
Flash Video là một định dạng video thƣờng
đƣợc dùng cho những website chia sẻ nhƣ
Youtube hoặc những website chiếu phim trực
tuyến, đƣợc phát triển bởi Adobe System
(Macromedia).
Định dạng này có chất lƣợng chấp nhận đƣợc,
trong khi kích thƣớc tập tin nhỏ, nên rất hiệu
quả trong môi trƣờng Internet. FLV phù hợp
với các hệ thống trình chiếu video trực tuyến và
hệ thống dạy học bằng video.
MP4 – MPEG-4 Video
Hiện nay, MP4 đang là định dạng phổ biến nhất
của video trên các website. MP4 đƣợc phát triển
bởi Moving Picture Experts Group, đƣợc sử
dụng trên rất nhiều điện thoại và các thiết bị
play video. Hiện tại, với việc các trình duyệt hỗ
trợ HTML5 có thể play trực tiếp tập tin MP4
của các website sử dụng HTML 5.
MOV – Apple QuickTime QuickTime Movie là định dạng đƣợc Apple
Movie
phát triển. Cũng là một định dạng thƣờng đƣợc
sử dụng trên Internet.
1.3 Định dạng MP4
1.3.1 Sự phổ biến của định dạng MP4
Theo khảo sát của Sorenson Media [7], định dạng MP4 đã trở thành định
dạng video phổ biến nhất sử dụng bởi các website. MP4 chiếm tới 69% định
dạng video sử dụng trên các website, và 58% định dạng video sử dụng trên các
thiết bị di động.
MP4 tƣơng thích với hầu hết các máy tính, điện thoại di động, máy tính
bảng , đồng thời MP4 cũng đƣợc sử dụng bởi hầu hết các dịch vụ lƣu trữ video
và các website hiện nay.
Trƣớc kia, muốn play các video thông qua trình duyệt web thì trình duyệt
web phải cài sẵn flash plugin, và định dạng của những video đó phải đƣợc flash
hỗ trợ. Tuy nhiên hiện nay, video MP4 có thể đƣợc nhúng trực tiếp vào mã
HTML5 thông qua thẻ
- Xem thêm -