1.Giới thiệu chung về công nghệ StreamingVideo là một loại dữ liệu đa phương tiện, chủ yếu phục vụ cho truyềnthông hoặc cho nhu cầu giải trí của con người trong nhiều thập niên.Trong thờ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO BÀI TẬP LỚNỨNG DỤNG VIDEO STREAMING
Môn học: Truyền thông đa phương tiện
Học viên thực hiện1) Cao Minh Sơn2) Nguyễn Trường Thành
Giảng viên hướng dẫn: PGS.TS Nguyễn Thị Hoàng Lan
Trang 2HÀ NỘI, 07/2022
MỤC LỤC
1 Giới thiệu chung về công nghệ Streaming 3
2 Quá trình video streaming 6
3 Các loại tệp định dạng Video Streaming và phần mềm xem Video 10
3.1 Các loại tệp định dạng Video Streaming 10
3.2 Phần mềm xem Video của một số hãng 13
3.3 Các hệ thống Server Streaming phổ biến 16
Trang 3Danh Mục Hình Ản
Hình 1: Mô hình Streaming 5Hình 2: Hệ thống Video Streaming 7Hình 3: Hai chức năng chính của Wowza Streaming là Live và Vod 16
Trang 41.Giới thiệu chung về công nghệ Streaming
Video là một loại dữ liệu đa phương tiện, chủ yếu phục vụ cho truyềnthông hoặc cho nhu cầu giải trí của con người trong nhiều thập niên.Trong thờikỳ đầu video được xử lý và truyền dưới dạng tín hiệu tương tự (analog).Với sựphát triển không ngừng của mạch điện tử và máy tính dẫn đến số hóa Video vàmở ra một cuộc cách mạng về nén và truyền thông Video.Sự phát triển và phổbiến của Internet giữa những năm 90 đã định hướng truyền thông Video quamạng chuyển mạch gói best – effort Video qua mạng Internet gặp phải rấtnhiều yếu tố bất lợi về băng thông, độ trễ và mất gói tin, cùng với một số vấnđề như làm thế nào để chia sẻ tài nguyên mạng giữa các luồng hay làm thế nàocó thể triển khai hiệu quả phương thức truyền thông một – nhiều Từ đó đã 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 những vấnđề này 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ừ một nguồn đến một đích nào đó thông quaInternet.
Video Streaming thường được sử dụng trong lĩnh vực giải trí hoặc dạyhọc, dùng để lưu trữ các tập tin Video hoặc các bài học, cung cấp cho ngườidùng các tiện ích như tìm kiếm, liệt kê và khả năng hiển thị hoặc hiển thị lại cácdữ 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ớicá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ốnrất nhiều thời gian Video Streaming tiết kiệm thời gian cho người dùng bằngcách sử dụng các công nghệ giải nén kết hợp với hiển thị dữ liệu đồng thờitrong lúc vẫn tiếp tục tải Video về.
Quá trình này được gọi là kỹ thuật đệm (buffering):
Thay vì được gửi một lần duy nhất, dữ liệu Video Streaming sẽ đượcchiathành từng gói nhỏ, sau đó liên tục truyền những phần được chia ra.
Ban đầ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 phần Video đã nhận được, đồng thời trong lúc hiển thị các gói dữ liệucòn lại sẽ lần lượt được lấy về để kịp cho việc hiển thị tiếp theo.
Trang 5Video Streaming được thể hiện dưới hai dạng:
Video theo yêu cầu (on demand): là các dữ liệu Video được lưu trữ trênmáy chủ đa phương tiện và được truyền đến người dùng khi có yêu cầu,ngườidù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 event): là các dữ liệu Video được biến đổi trựctiếp từ các nguồn cung cấp dữ liệu theo thời gian thực (máy camera,microphone,thiết bị phát dữ liệu Video…).
Streaming Video tiết kiệm thời gian cho người dùng bằng cách sử dụng cáccông nghệ giải nén kết hợp với “phần mềm đa phương tiện” hiển thị dữ liệu đồngthời với quá trình download (diễn ra song song) Quá trình này được gọi làbuffering và có thể được diễn giải là thay vì được gửi một lần duy nhất dữ liệuStreaming sẽ được truyền đi thành các gói nhỏ Ban đầu “phần mềm đa phươngtiện” sẽ lấy về một phần chia nhỏ đó của dữ liệu video trước khi hiển thị, đồngthời trong lúc hiển thị các gói dữ liệu còn lại sẽ lần lượt được lấy về để kịp choviệc hiển thị tiếp theo.
Việc truyền các Streaming Video, Audio qua mạng internet sẽ phụ thuộcrất nhiều vào các sản phẩm phần mềm dành cho máy chủ Video/Audio Streamingvà máy người dùng Streaming Trong những năm gần đây có rất nhiều các chuẩncông nghệ Streaming được phát triển với các “phần mềm đa phương tiện”:Emblaze, Liquid Audio, Macromedia Shockwave, Microsoft Windows Media,
Hình 1: Mô hình Streaming
Trang 6RealNetworks RealMedia, VDOLive, Vosiac, Audioactive, Apple QuickTime.Một vấn đề lớn được đặt ra cùng với sự phát triển của các công nghệ streaminglà sự gia tăng của các định dạng dữ liệu riêng và sự không tương thích củachúng Hiện tại các định dạng Video/Audio Streaming chỉ giới hạn bởi ba công tyđược coi là dẫn đầu trong công nghệ Streaming với các sản phẩm: Apple vớiQuickTime, RealNetworks với RealMedia, và Microsoft với Windows Media.Các hãng này đều cung cấp các bộ công cụ trọn gói gồm máy chủ Streaming (lưutrữ, truyền phát dữ liệu theo các giao thức hỗ trợ ), “phần mềm đa phương tiện”(hiển thị dữ liệu tại phía người dùng), và công cụ kiến tạo dữ liệu với các chuẩnnén.
Công nghệ Streaming sử dụng các giao thức RTP, MMS, HTTP… đểtruyền dữ liệu qua mạng Internet, đồng thời sử dụng các chuẩn nén để giảm dunglượng dữ liệu, cung cấp khả năng nén dữ liệu tại nhiều mức nén, nhiều kích thướchiển thị để có thể phù hợp với độ rộng băng thông của nhiều mạng truyền dẫn đểtối ưu hoá việc truyền dữ liệu qua mạng.
2 Quá trình video streaming
Với Video Streaming máy tính của người sử dụng không phải tải toàn bộVideo
về cùng một lúc Để thực hiện tăng tốc độ lần tải về, tại bất kỳ thời điểm nào máytính chỉ cần tải về một phần thông tin của Video Với kỹ thuật này, chúng ta cầnmột máy chủ đặc biệt kiểm soát việc cung cấp các nội dung Video, để bất kỳ phầnnào của đoạn Video được lưu trữ trên máy chủ đều có thể được truy cập bất kỳ lúcnào.
Khi các dữ liệu đa phương tiện như Audio, Video ngày càng phổ biến trênmạng, đặc điểm dữ liệu đa phương tiện là có dung lượng lớn nhưng tốc độ mạngInternet hiện nay còn hạn chế, do đó phương thức và vấn đề truyền tải dữ liệu đếnngười dùng đóng vai trò quan trọng trong sự thành công trong việc kinh doanhcác nội dung này Có rất nhiều nghiên cứu nhằm tối ưu hóa phương thức truyềndữ liệu đa phương tiện nhưng hiện tại chỉ có hai cách thức cơ bản để xem Mediatrên mạng Internet là Downloading và Streaming:
- Downloading: khi Download một tệp tin (file) thì toàn bộ file được lưu
Trang 7trên máy tính của người dùng,những file này người dùng có thể mở và xem sauđó Phương thức này có ưu điểm như là truy xuất nhanh đến các đoạn khác nhautrong file nhưng có một nhược điểm lớn đó là người dùng phải chờ cho toàn bộfile được Download về trước khi có thể xem được Nếu như file có dung lượngnhỏ thì điều này không có quá nhiều bất tiện, nhưng với file có dung lượng lớnhoặc bài trình diễn dài thì nó có thể gây ra nhiều khó chịu Ngoài ra, hiện nay, vớisự bùng nổ của Internet thì số lượng dữ liệu trên mạng Internet là rất lớn nên việclưu trữ các file này vào máy tính của mình cũng có những hạn chế nhất định.- Streaming: phương thức Streaming làm việc có một chút khác biệt Người sử
dụng có thể bắt đầu xem file ngay khi nó bắt đầu được Download File đượcgửi đến người sử dụng trong các chuỗi liên tiếp và người sử dụng xem nội dungngay khi nó đến mà không phải chờ đợi Phương thức này cũng có ưu điểm là cóthể được sử dụng để truyền tải các sự kiện trực tiếp Với các định dạng file Video,Audio truyền thống, dữ liệu chỉ có thể hiển thị khi đã được Download toàn bộ, vìvậy đối với các file 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.
- Progressive Download and Play: Đây là công nghệ lai giữa hai công nghệ trên.Trong công nghệ này, Video sẽ được chia nhỏ ra thành nhiều frame, chươngtrình phát Video (player) sẽ hiện thị ngay những gói vừa được tải về và lưu trữdữ liệu đó ở bộ nhớ đệm của máy Khi tua lại những đoạn Video mà đã tải về,Player sẽ lấy dữ liệu từ bộ nhớ đệm để tải lên.
Video Streaming sử dụng các giao thức RTSP, MMS, HTTP… để truyền dữliệu theo dạng luồng qua mạng Internet, đồng thời sử dụng các chuẩn nén để
Trang 8giảm
dung lượng dữ liệu, cung cấp khả năng nén dữ liệu tại nhiều mức nén, nhiềukích thước hiển thị để có thể phù hợp với độ rộng băng thông của nhiều mạngtruyền dẫn để tối ưu hoá việc truyền dữ liệu qua mạng Cũng chính vì vậyviệc truyền các Video Streaming qua mạng sẽ phụ thuộc rất nhiều vào các sảnphẩm phần mềm máy chủ luồng Video Hiện nay, có rất nhiều chuẩn côngnghệ Video streaming Cũng như có nhiều định dạng dữ liệu riêng với cácchuẩn cộng nghệ đó Các định dạng Video streaming chỉ giới hạn bởi cáccông ty dẫn đầu trong công nghệ streaming: Các hãng này đều cung cấp cácbộ công cụ trọn gói gồm máy chủ luồng Video (lưu trữ, truyền phát dữ liệutheo các giao thức hỗ trợ .), Video Player (hiển thị dữ liệu tại phía ngườidùng), và công cụ kiến tạo dữ liệu với các chuẩn nén Một hệ thống videothường bao gồm 6 khối, như minh họa trong hình.Trong hình trên Video và âmthanh gọi là dữ liệu thô được nén bằng cách sử dụng các thuật toán nén videovà âm thanh rồi sau đó được lưu trong thiết bị lưu trữ Theo yêu cầu từ kháchhàng, một máy chủ Streaming sẽ lấy Video và âm thanh nén dữ liệu trong cácthiết bị lưu trữ và sau đó cùng với lớp ứng dụng QoS là Modul kiểm soát điềuchỉnh các Video và âm thanh thành các luồng bit theo tình trạng mạng lưới vàcác yêu cầu QoS Sau đó sử dụng các giao thức truyền tải nén các chuỗi bit rồigửi các gói tin Video và âm thanh qua mạng Internet Gói có thể bị giảm hoặchoặc bị trễ quá mức trong mạng Internet do tắc nghẽn, các gói tin có thể bị hưhỏng do bị lỗi bit Để nâng cao chất lượng truyền Video và âm thanh đượctruyền liên tục, dịch vụ phân phối được triển khai trên mạng Internet cho cácgói tin được gửi đến người nhận, sử dụng giao thức RSTP đi qua các lớp vậnchuyển và sau đó được xử lý bởi lớp ứng dụng trước khi được giải mã ở các bộgiải mã Video và âm thanh Để đồ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 Từ hình trên ta có thể thấy 6 khối nàyliên quan rất chặt chẽ với nhau và chúng là thành phần thống nhất của kiến trúcVideo Streaming.
- Cơ chế nén Video: Dữ liệu Video nguyên gốc cần phải được nén trước
Hình 2: Hệ thống Video Streaming
Trang 9khi được truyền nhằm để đạt được hiệu quả tốt nhất về tiết kiệm băng thông.- Cơ chế điều khiển chất lượng dịch vụ tầng ứng dụng: Để đối phó vớisự 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ấtlượng dịch vụ tầng ứng dụng đã được đưa ra Kỹ thuật bao gồm điều khiển tắcnghẽn và kiểm soát lỗi Điều khiển tắc nghẽn được sử dụng để ngăn ngừa mấtgói dữ liệu và giảm trễ để kiểm soát lỗi, mặt khác còn nhằm để cải thiện chấtlượng trình chiếu Video khi không có phần dữ liệu của gói tin bị mất.
- 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 là quan trọng Điều nàycho thấy do có sự hỗ trợ của mạng mà từ đó có thể 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ịchvụ phân phối Video trên đường truyền cho phép đạt được QoS (chất lượng dịchvụ) và 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 một vai trò quan trọngtrong việc cung cấp các dịch vụ trực tuyến Để cung cấp các dịch vụ trực tuyếnchất lượng, các máy chủ Streaming được yêu cầu phải xử một dữ liệu video vớisự ràng buộc về thời gian, hạn chế thời gian trễ và hỗ trợ hoạt động kiểm soáttương tác như tạm dừng (pause), tua (fast forword) tiếp tục, nhanh chóng chuyểntiế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 kết nối giao tiếp (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: Với cơ chế đồng bộ, ứng dụng tại bên nhận cóthể hiển thị Video gần giống như khi nó được khởi tạo tại bên gửi Một ví dụcủa cơ chế đồng bộ 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.
- Giao thức cho Video Streaming: Giao thức được thiết kế và chuẩn hóacho truyền thông giữa khách hàng và các máy chủ streaming Giao thức có thểđược chia làm 3 loại: giao thức tầng mạng như Internet Protocol (IP), giao thứctầng giao vận như Use Datagram Protocol (UDP) và giao thức điều khiển phiênnhư Real – time Streaming Protocol (RTSP).
Với những hệ thống máy chủ trình chiếu Video trực truyến hoặc cung
Trang 10cấp cho việc tải về theo yêu cầu người dùng đang được sử dụng hiện nay, thìvới mỗi yêu cầu của người dùng đến – sẽ được máy chủ xử lý thông tin đảmbảo yêu cầu tải đó là hợp lệ để thiết lập kết nối Tiếp sau đó, nó sẽ truy xuất đếnổ cứng (hoặc thiết bị lưu trữ cục bộ) để truy xuất tập tin yêu cầu đó và gửi vềcho người dùng.Như chúng ta đều biết tốc độ truy xuất ổ cứng thường kháchậm.Bên cạnh đó, có những tập tin được nhiều người dùng cùng quan tâmtrong một thời điểm (sai khác nhỏ về thời gian), việc truy xuất ổ cứng liên tụcđể truy xuất cùng một tập tin như cách làm việc hiện tại là rất lãng phí và tốnkém cho máy chủ.
Để giải quyết vấn đề này, ta đưa ra giải pháp sử dụng Cache Cache đượchiểu theo nghĩa thường là nơi lưu trữ dữ liệu nằm chờ phần cứng xử lý, nhằmmục đích tăng tốc độ xử lý Cache có thể là một vùng lưu trữ của bộ nhớ chínhhoặc một thiết bị lưu trữ tốc độ cao độc lập Có rất nhiều loại Cache được biếtđến hiện nay với những chức năng khác nhau như: Cache của CPU, Cachingcủa Internet Browser, Caching của Oracle…Cụ thể ở đây ta quan tâm đến mộtcơ chế xử lý Video Caching ngay trên máy chủ thay thế cho Web Caching quátải hiện nay Việc đầu tư cho thiết bị Cache cộng với việc có một giải pháp quảnlý Cache hiệu quả sẽ giảm tải rất nhiều cho máy chủ.
Cách thức hoạt động thông qua Cache:
• Dữ liệu được truy xuất từ ổ cứng được đẩy lên 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 Cache chưa, để thực hiện đẩy dữ liệu đó lên Cache, nếu tồntại thì dữ liệu từ Cache thông qua quá trình xử lý dữ liệu sẽ đượctruyền trực tiếp đến người dùng thông qua một luồng tin (bỏ qua giaiđoạn truy xuất từ ổ cứng).
• Cơ chế để quản lý dữ liệu trên Cache, quyết định dữ liệu nào được đưavào Cache hoặc loại bỏ ra khỏi Cache, chúng ta phải thông qua việc phântích thông tin truy xuất dữ liệu, cùng với thử nghiệm những số liệu thực tếđể đưa ra một giải thuật quản lý Cache hợp lý.
3 Các loại tệp định dạng Video Streaming và phần mềm xem Video3.1 Các loại tệp định dạng Video Streaming
Các tập tin Video thường thuộc 2 loại: codec và không codec Một số
Trang 11định dạng tập tin, chỉ cần nhìn vào đuôi tập tin ta biết được loại codec mà tập tinđó sử dụng như: WMV, RM, MOV… Hoặc các loại đuôi tập tin không chỉ địnhchính xác loại codec nào như: MP4, AVI, MKV… Các loại tập tin trên đều là cáchộp đựng (container) để chứa nội dung, chúng ta thường phải sử dụng các trìnhmedia player để mở và đọc các tập tin đó Để biết tập tin đó sử dụng loại codecnào để mã hóa Ta xem xét một số loại định dạng tập tin mà các Website và cácnhà cung cấp lớn thường hỗ trợ:
Định dạngGiới thiệu
3GP –3GPPMultimedia
- Định dạng 3GP là định dạng Video được phát triểnbởi dự án 3 Generation Partnership dựa trên chuẩnrdMPEG-4 Được sử dụng cho các tập tin đa phương tiệntrên mạng không dây 3G tốc độ cao, sử dụng phổ biếntrên điện thoại
có hỗ trợ quay phim.ASF –
Advanced Systems Format
- Định dạng ASF được Microsoft phát triển Định dạngnày được dùng để truyền tải các tập tin đa phương tiệnchứa văn bản, đồ họa, âm thanh, Video Tập tin ASF chủyếu là tập tin Windows Media Audiovà WindowsMediaVideo.
- Tập tin ASF chỉ đặc tả cấu trúc của tập tin video hayâm thanh được truyển tải mà không chỉ rõ phương pháp mãhóa.
AVI –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ể
Interleave dùng các codec như DivX để mã hóa tập tin AVI) Địnhdạng AVI bao gồm hai loại định dạng chính DivX, Xvid.Đây là một định dạng rất phổ biển hiện nay.
- AVI là một sản phẩm của RIFF Dữ liệu của tập tinđược chia trong các khối, mỗi khối được xác định bởi mộtnhãn Khối đầu tiên chứa dữ liệu về Video, những thông tinvề 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ụccủa các khối
dữ liệu trong tập tin.