Sau khi đã tải về và xử lý atom header, player phía máy khách sẽ tiếp tục yêu cầu lấy phần atom mdat, là phần chứa các dữ liệu về khung hình video và âm thanh thực sự của tệp tin video. Khi đã „đệm‟ đủ trong bộ đệm của player, video sẽ bắt đầu đƣợc hiển thị cho ngƣời dùng.
Nhƣ vậy, thời gian bắt đầu khi streaming video định dạng MP4 phụ thuộc rất lớn vào độ lớn của atom header. Nhƣ trong bảng 1.4, độ lớn của atom header phụ thuộc vào thời lƣợng video. Đối với các video thời lƣợng dài, độ lớn atom header sẽ là đáng kể. Chính vì vậy thời gian bắt đầu của các video này cũng sẽ khá lớn. Hiện nay, các phƣơng pháp đang đƣợc áp dụng trong thực tế có thể giúp giảm thời gian bắt đầu khi streaming video định dạng MP4 dựa chủ yếu trên hai kỹ thuật:
+ Kỹ thuật caching: atom header đƣợc lƣu trữ ở nơi gần ngƣời dùng hơn so với máy chủ streaming. Với kỹ thuật này, atom header sẽ nhanh chóng đƣợc truyền tải đến máy khách.
+ Kỹ thuật chia nhỏ: video sẽ đƣợc chia thành các đoạn nhỏ hơn. Mỗi đoạn video nhỏ này có thời gian ngắn nên sẽ có thời gian bắt đầu nhỏ hơn.
2.1 Phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP
Phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP [12] (HTTP progressive download) cho phép máy khách lấy tập tin video từ máy chủ web sử dụng giao thức HTTP và tập tin video đó sẽ có thể đƣợc play trƣớc khi toàn bộ tập tin đƣợc tải về.
Hiện nay, hầu hết các phần mềm play video nhƣ: Adobe Flash, Windows Media Player, Apple Quicktime,…đều hỗ trợ tải về tiến bộ sử dụng giao thức HTTP. Rất nhiều trang web cung cấp dịch vụ video streaming cũng sử dụng phƣơng pháp này.
Đối với việc truyền tải video MP4 theo phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP, các player bắt buộc phải tiến hành tải về và đọc nội dung atom header của video đó trƣớc khi trình chiếu nội dung video cho ngƣời dùng.
Khi ngƣời dùng muốn di chuyển đến một vị trí nào đó của tập tin video (tua), player sẽ tiến hành gửi các gói tin yêu cầu phạm vi byte (HTTP GET byte ranges [13]) của tập tin video đó đến máy chủ web. Do việc gửi và nhận các gói tin yêu cầu phạm vi byte chỉ đƣợc hỗ trợ trong HTTP 1.1 nên muốn hỗ trợ tua video thì các ứng dụng tại máy chủ web cung cấp dịch vụ streaming video và ứng dụng tại máy khách phải hỗ trợ HTTP 1.1.
Do sử dụng giao thức HTTP làm giao thức truyền tải nên phƣơng pháp tải về tiến bộ sử dụng HTTP mang lại khá nhiều lợi ích nhƣ:
Các gói tin video truyền đi trên mạng dễ dàng vƣợt qua các tƣờng lửa, các bộ định tuyến (do các thiết bị này thông thƣờng mặc định cho phép các gói tin HTTP đi qua).
Dễ dàng triển khai kết hợp với các mạng lƣới phân phối nội dung (Content delivery network- CDN), việc kết hợp này giúp giảm tải cho các máy chủ streaming, làm cho nội dung video sẵn sàng hơn,….
Tuy nhiên khi sử dụng phƣơng pháp tải về tiến bộ sử dụng giao thức HTTP cũng gặp một số vấn đề:
Sử dụng tải về tiến bộ sử dụng giao thức HTTP sẽ không truyền tải đƣợc các video trực tuyến, phƣơng pháp này chỉ truyền tải đƣợc các video đã đƣợc lƣu trữ trên máy chủ đến máy khách.
Tải về tiến bộ sử dụng giao thức HTTP không có khả năng tự động điều chỉnh tốc độ truyền dữ liệu khi băng thông của khách hàng thay đổi.
2 CHƢƠNG II - Một số phƣơng pháp video streaming sử dụng video định dạng MP4
Băng thông của ngƣời dùng bị lãng phí khi họ dừng xem các nội dung sau khi tải về tiến bộ sử dụng HTTP đã bắt đầu.
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.
2.2.1 Streaming thích ứng tốc độ bit
Streaming thích ứng tốc độ bit (Adaptive bitrate streaming) là một kỹ thuật đƣợc sử dụng trong việc truyền tải dữ liệu đa phƣơng tiện qua mạng máy tính dựa trên giao thức HTTP.
Kỹ thuật này hoạt động dựa trên việc phát hiện sự thay đổi băng thông và khả năng cung cấp tài nguyên tại máy khách trong thời gian thực và điều chỉnh chất lƣợng video cho phù hợp. Khả năng cung cấp tài nguyên tại máy khách trong thời gian thực có thể là năng lực xử lý của CPU, khả năng hiển thị hình ảnh (độ phân giải) của màn hình thiết bị tại máy khách, …..
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
Hoạt động của phương pháp streaming thích ứng tốc độ bit:
Ban đầu, dữ liệu video trên máy chủ sẽ đƣợc encode thành nhiều dòng với tốc độ bít khác nhau. Mỗi dòng này sau đó sẽ đƣợc tách thành nhiều đoạn nhỏ đƣợc gọi là các „chunk‟ hoặc các „segment‟ (theo đơn vị thời gian), kích thƣớc mỗi đoạn thƣờng từ khoảng 2 đến 10 giây. Phía máy khách sẽ biết trƣớc đặc điểm của các dòng này (tốc độ bit, thời gian bắt đầu và kết thúc của các đoạn nhỏ trong mỗi dòng) nhờ việc tải về trƣớc một tập tin chỉ mục (tệp tin này còn đƣợc gọi là tập tin index hoặc tập tin manifest).
Sau khi tải về và phân tích tập tin chỉ mục này, máy khách sẽ gửi yêu cầu (HTTP GET) để lấy về các đoạn từ dòng có tốc độ bit thấp nhất. Trong quá trình nhận và xử lý các luồng video từ máy chủ, nếu nhận thấy tài nguyên trên thực tế của mình có thể play video ở tốc độ bit lớn hơn, máy khách sẽ yêu cầu các đoạn ở các dòng có tốc độ bit cao hơn và ngƣợc lại.
Việc tính toán để yêu cầu dòng tiếp theo có tốc độ phù hợp với băng thông thực hiện nhƣ sau:
+ Sau khi nhận về 1 đoạn video, phần mềm phía máy khách sẽ tiến hành so sánh thời gian tải về của đoạn đó với thời gian thực tế của đoạn (thời gian thực tế của đoạn đã đƣợc biết trƣớc khi phân tích tập tin chỉ mục). Nếu thời gian tải về của đoạn đó nhanh hơn thời gian thực tế của đoạn đƣợc lƣu trong tập tin chỉ mục thì phía máy khách sẽ yêu cầu đoạn tiếp theo với tốc độ bit cao hơn tốc độ bit của đoạn vừa tải. Và ngƣợc lại, nếu thời gian tải về của đoạn đó chậm hơn thời gian của đoạn đƣợc lƣu trong tập tin chỉ mục thì máy khách sẽ yêu cầu đoạn tiếp theo với tốc độ bit thấp hơn tốc độ bit của đoạn vừa tải.
Ngoài ra, ngay sau khi phân tích tập tin chỉ mục, máy khách cũng có thể lựa chọn đƣợc ngay các dòng phù hợp với độ phân giải màn hình của mình.
Kỹ thuật streaming thích ứng tốc độ bit dựa trên giao thức HTTP có một số ƣu điểm:
- Truyền thông dựa trên giao thức HTTP, giao thức này giúp cho các gói tin video truyền đi trên mạng không bị cản trở bởi các bộ định tuyến và các tƣờng lửa bởi thông thƣờng các bộ định tuyến và các tƣờng lửa đều đƣợc thiết lập để cho phép các gói tin HTTP đi qua. Điều là lợi thế rất lớn so với các kỹ thuật streaming video sử dụng các giao thức khác nhƣ RTP, RTMP.
- Các ứng dụng phía máy khách tự kiểm tra đƣợc tốc độ bit, độ phân giải màn hình của thiết bị, codec, năng lực của CPU,… sau đó lựa chọn dòng phù hợp thông qua việc xử lý tập tin chỉ mục đã tải về mà không cần phải gửi những yêu cầu này tới máy chủ streaming.
- Chức năng điều khiển phát lại đƣợc hỗ trợ bằng việc tại thời điểm bắt đầu máy khách sẽ sử dụng dòng video có tốc độ bit thấp nhất, sau đó chuyển sang các dòng khác có tốc độ bit cao hơn. Điều này làm tăng tốc thời gian khởi động (start-up time) của video và giảm thời gian chờ khi tua lại (seek time).
- Có thể sử dụng kết hợp với các HTTP proxy, cache và các dịch vụ phân phối nội dụng trên mạng đang sử dụng cho các truy cập web.
2.2.2 Phƣơng pháp MPEG DASH
MPEG DASH hay DASH [14] là phƣơng pháp streaming tự động thích ứng dựa trên giao thức HTTP (Dynamic Adaptive Streaming over HTTP) đƣợc phát triển bởi MPEG (Moving Picture Experts Group). MPEG DASH đƣợc đề xuất lần đầu tiên vào năm 2009, sau đó trở thành dự thảo tiêu chuẩn quốc tế vào tháng 1-2011 và đã đƣợc công bố theo tiêu chuẩn ISO/IEC 23.009-1:2012 vào tháng 4-2012.
Theo mô tả ISO/ IEC 23.009-1, MPEG DASH có thể đƣợc xem là sự hợp nhất của 3 giao thức tự động thích ứng: HDS (HTTP dynamic streaming Adobe), HLS (HTTP Live Streaming Apple), Microsoft IIS smooth streaming. Tuy vậy DASH không phải là một hệ thống, một giao thức, một codec, hoặc một đặc tả cho máy khách mà là một kỹ thuật bao gồm một loạt các đặc tả.
2.2.2.1 Hoạt động của DASH
Theo [14], hoạt động của DASH dựa trên streaming thích nghi năng động sử dụng HTTP, dữ liệu đa phƣơng tiện cũng đƣợc chia thành các đoạn nhỏ với các tốc độ bit khác nhau và đƣợc lƣu trữ trên máy chủ DASH. Các đoạn nhỏ này sẽ đƣợc phân phối tới các máy khách thông qua giao thức HTTP.