2.6.8 Mô hình cân bằng tải hệ thống
Mô hình cân băng tải hệ thống được xây dựng nhằm mục đích chia sẻ tải cho các mô đun trong hệ thống và giúp cho hệ thống chạy ổn định nhất trong các điều kiện gặp lỗi máy chủ có thể xảy ra.
Hệ thông streaming sử dụng công cụ LVS-keepalived để cấu hình cân bằng tải cho hệ thống. Với mô hình này khi 2 hay nhiều máy chủ cùng loại được cầu hình sẽ có một ip ảo định danh cho các máy chủ đó. Các yêu cầu đến các máy chủ này sẽ phải thông qua IP ảo.Với cơ chế này sẽ giúp phát hiện các máy chủ gặp lôi và gửi gói tin đến các máy chủ khác trong cụm.
Note:
external internal internet
Tv-Sign
Giải pháp cân bằng tải WAP/DATABASE
Service
SAN storage
Database
3. Load thông tin cho request
4.Load thông tin cho request
5.Láy thông tin từ DB Đọc thông tin VOD
1 2 .L u ồ n g t ín h iệ u V id e o g ử i c h o c lie n t Wap
Gửi request tới DB Lấy trả về thông tin request từ WAP Xử lý các thao tác với DB. Chứa DB, VOD các file do CP uploads 10.C lic k X em VO D /LIVE 11.G ửi yê u cầu xem VOD /LIV E 1.Request Live Encode T ín h iệ u L iv e 192.168.1.70 192.168.1.76 192.168.1.76 192.168.1.71 Database 192.168.1.60 10.0.0.60 192.168.1.61 10.0.0.61 Wap HA proxy HA proxy Master Master MTV service Billing service Apache tomcat LB
Giải pháp cân bằng tải streaming
Streaming Streaming Streaming Streaming
...
Live Encode
...
LB1 LB2
LVS+Keepalived
Hình1-22: Mô hình cân bằng tải
2.6.9 Mô hình triển khai hệ thống
Mô hình triển khai hệ thông là mô hình cuối cùng được đưa ra trước khi hệ thống được triển khai.Cung cấp cái nhìn về toàn bộ máy chủ, các cấu hình, các dải ip của hệ thống.Ngoài ra mô hình này là cơ sở để định cỡ phần cứng đối với từng yêu cầu bài toán cụ thể.
Với hệ thông streaming cho MobileTV, các máy chủ streaming tín hiệu truyền hình được gom nhóm lại vào được cài đăt trên 3 máy chủ vật lý (mỗi máy ảo hóa thành 4 máy ảo). Các máy chủ mã hóa video, streaming file video được cài đặt trên các máy ảo trên cùng một máy chủ vật lý.Các máy chủ mã hóa tín hiệu truyền hình chạy trên các máy chủ vậy lý.
Cụm server DB + Mount Point
Cụm server Streaming VOD Encoding VOD, IStory
Cụm server DB + Mount Point
Cụm server Streaming Live
SAN storage
SAN
Cụm server LB
Cụm server Live encode
mobitv.vn VLAN 2 EXTERNAL 48 ports VLAN 4 Network3G 24 ports VAS Charging VLAN 6 TV-Signal 24 ports 10.58.42.119 192.168.5.154 10.58.5.154 192.168.5.152 10.58.5.152 192.168.5.153 10.58.5.153 192.168.5.151 10.58.5.151 10.58.42.118 192.168.5.148 10.58.5.148 192.168.5.146 10.58.5.146 192.168.5.147 10.58.5.147 192.168.5.149 10.58.5.149 10.58.42.113 192.168.5.158 10.58.5.158 192.168.5.156 10.58.5.156 192.168.5.157 10.58.5.157 192.168.5.159 10.58.5.159 10.58.42.120 192.168.5.143 10.58.42.143 192.168.5.139 10.58.42.139 192.168.5.144 10.58.42.144 192.168.5.121 10.58.42.121 10.58.42.117 192.168.5.138 10.58.42.138 192.168.5.135 10.58.42.135 192.168.5.141 10.58.42.141 192.168.5.142 10.58.42.142 10.58.42.123 192.168.5.123 10.58.42.115 192.168.5.115 Cụm server WAP/WEB + LB 10.58.42.122 192.168.5.103 10.58.42.103 192.168.5.100 10.58.42.100 Cụm server WAP/WEB + LB 10.58.42.116 192.168.5.101 IP Internet 192.168.5.110 10.58.42.110 192.168.5.105 10.58.42.105 10.58.42.102 192.168.5.102 10.58.42.124 192.168.5.124 10.244.224.124 10.58.42.125 192.168.5.125 10.244.224.125 10.58.42.126 192.168.5.126 10.244.224.126 10.58.42.127 192.168.5.127 10.244.224.127 10.58.42.129 192.168.5.129 10.244.224.129 10.58.42.130 192.168.5.130 10.244.224.130 10.58.42.132 192.168.5.132 10.244.224.132 10.58.42.133 192.168.5.133 10.244.224.133 NFSV4 10.58.42.104 192.168.5.104 16 CPUs, 8 GB RAM 16 CPUs, 16 GB RAM 16 CPUs, 16 GB RAM
16 CPUs, 16 GB RAM 16 CPUs, 16 GB RAM
16 CPUs, 16 GB RAM 16 CPUs, 16 GB RAM 16 CPUs, 16 GB RAM gfs2 INTERNET VIETTEL DCN IPCORE SW-VAS Internet FW-VAS FW-VAS HA firewall
CHƢƠNG 3.
ÁP DỤNG HỆ THỐNG STREAMING CHO THIẾT BỊ DI ĐỘNG SỬ DỤNG HỆ ĐIỀU HÀNH ANDROID
3.1 Giới thiệu hệ thống Streaming Server
Một Video được đặt trên máy chủ web truyền thống, nó vẫn cho phép người dùng xem qua internet bằng một phần mềm xem Video hoặc thông qua trình duyệt cài Plugin adobe flash player... Nhưng nhược điểm khi xem Video qua web Server (tức là qua giao thức http) hệ thống không có khả năng giới hạn số lượng người xem trong cùng một thời điểm, không có khả năng điều chỉnh độ phân giải Video dựa vào tốc độ mạng phía Client... Khi số lượng người dùng lớn cùng vào xem trên một Server thì khả năng dẫn đến Server không thể phục vụ được là rất cao. Hệ thống Streaming Server ngày nay cung cấp rất nhiều giao thức tốt, tương thích với đa nền tảng như đối với hệ điều hành Android thì giao thức được hỗ trợ mạnh nhất là RTSP, với hệ điều hành của Apple là HLS, với công nghệ của Adobe là RTMP và HDS, với Microsoft là Microsoft Smooth Streaming...
Hình 3-1: Khả năng tự điều chỉnh chất lượng video dựa theo tốc độ mạng và theo thiết bị đầu cuối
Bên cạnh các giao thức Streaming mạnh như trên, hệ thống Streaming Server còn hỗ trợ công nghệ mã hóa có khả năng nén dữ liệu rất cao mà không làm ảnh
hưởng nhiều đến chất lượng Video. Thuật toán mã hóa hình ảnh hiện đang được dùng phổ biến nhất là H264, nó tiết kiệm dung lượng bộ nhớ bằng cách sử dụng nền chung cho các khung hình tiếp theo, và chỉ ghi lại các chuyển động mới, nhưng việc ghi lại chuyển động mới cũng rất linh hoạt.
Với một máy chủ có khả năng chia sẻ video theo cách truyền thống như Webserver, nó không thể cung cấp hình ảnh và âm thanh theo thời gian thực. Vì thế các ứng dụng truyền hình trực tiếp như thể thao, live show ca nhạc...sẽ không thể cung cấp cho người dùng được. Video Streaming Server ngày nay mang lại khả năng cung cấp nhiều chương trình TV trực tiếp, cung cấp dịch vụ giám sát trực tuyến bằng cách truyền tải hình ảnh từ camera đến người dùng ở nhiều nơi...
3.2 Các hệ thống Server Streaming phổ biến
Wowza Media Server cùng với Adobe Flash Media Server (FMS) và Red5 là ba phần mềm Streaming Server tốt nhất hiện nay.Trong khi Red5 miễn phí nhưng phải tùy biến thêm, FMS thì quá mắc (phiên bản FMIS tới 4.500$), Wowza lại là một lựa chọn khá tốt với giá phù hợp (1.000$).Trong luận văn này em sử dụng hệ thống Wowza Media Server với bản quyền 6 tháng để xây dựng các chức năng streaming.Wowza Streaming là một hệ thống khá mạnh, dễ tùy biến và đang được sử dụng để live streaming các camera giao thông về trung tâm dữ liệu của VOV.
Hai chức năng quan trọng của hệ thống Wowza là Vod (streaming video có sẵn trên máy chủ Wowza) và Live (truyền hình trực tiếp hình ảnh từ camera và âm thanh đến người dùng).Em sẽ đi trình bày lần lượt 2 tính năng trên.
Hình 3-2: Hai chức năng chính của Wowza Streaming là Live và Vod
3.3 Phân tích yêu cầu
Yêu cầu 1 (YC1):Có thể xem được các video từ trên internet dưới dạng streaming mà không phải tải toàn bộ đoạn video về máy trước khi chạy.
Yêu cầu 2 (YC2): Hệ thống phải cung cấp cho người sử dụng tìm kiếm một tên video nào đó nhanh chóng, có thời lượng độ dài video đi cùng.
Yêu cầu 3 (YC3):Video được cập nhập thường xuyên, phong phú.
Yêu cầu 4 (YC4):Người dùng có thể cập nhập các video mới có trên server.
Yêu cầu 5 (YC5):Người dùng có thể thực hiện các thao tác đối với chương trình chạy video ở thiết bị như có thể tua, tạm dừng, tắt hay chạy lại video từ đầu (đối với Vod).
Yêu cầu 6(YC6): Thuận tiện, dễ sử dụng đối với người sử dụng.
3.3.2 Yêu cầu hệ thống
Đối với hệ thống xem video trực tuyến dưới dạng streaming thì nó đòi hỏi một số yêu cầu sau để có thể phát triển và trở lên phổ biến:
Yêu cầu 7 (YC7): Công nghệ xử lý kĩ thuật ở hệ thống: cho phép phát video dưới dạng streaming để thiết bị có thể tải về và chạy video dưới dạng streaming. Đây là điều kiện cần để các nhà phát triển, cho dù không cùng kĩ thuật nhưng cũng có thể sử dụng hệ thống để phát triển phần mềm cho riêng mình.
Yêu cầu 8 (YC8): Công nghệ xử lý kĩ thuật ở trên thiết bị chạy hệ điều hành mã nguồn mở Android: phần mềm phải tự động kết nối đến server, tải video về phát video dưới dạng streaming. Đòi hỏi kĩ thuật phải hạn chế tối đa độ trễ để không gây ra hiện tượng video đang xem bị giật hoặc phải chờ quá lâu.
Yêu cầu 9 (YC9): Đường truyền sử dụng công nghệ 3G hoặc Wifi, hạn chế độ trễ để khi xem video không bị giật, bị trễ.
Yêu cầu 10 (YC10): Giao diện trên thiết bị di động phải thân thiện, đơn giản, dễ sử dụng cho nhiều lứa tuổi.
3.4 Những khó khăn
Hệ điều hành trên điện thoại hầu như không hỗ trợ các kết nối trực tiếp đến cơ sở dữ liệu, và Android cũng vậy, nó cũng không cung cấp các kết nối trực tiếp đến cơ sở dữ liệu.
Không có thiết bị đúng thông số kỹ thuật, không có đường truyền tĩnh riêng, sử dụng máy PC đôi khi không phù hợp với thực tế hay có lỗi, giá thành phần mềm Server quá đắt.
3.5.1 Module Vod của Wowza Streaming
3.5.1.1 Mô hình Module
Vod là viết tắt của cụm từ Video On Demand, tức là streaming video theo yêu cầu của người dùng. Trên hệ thống Wowza, mặc định các video được tải lên thư mục Content (nằm trong thư mục cài đặt Wowza). Ở Việt Nam hiện nay, chức năng Vod được sử dụng rất nhiều. Vod cung cấp video cho các dịch vụ học tập qua internet, giải trí qua điện thoại thông minh...Để thử nghiệm chức năng Vod của Wowza em đi xây dựng một ứng dụng học tiếng Anh qua điện thoại chạy trên hệ điều hành Android. Ứng dụng này lấy nguồn video bài giảng từ server Wowza.
Hình 3-3: Mô hình hoạt động của phần mềm
3.5.1.2 Phần mềm mô phỏng học tiếng Anh bằng Video trên điện thoại di động
Adroid tạm gọi là Demo Vod.
Mô hình hoạt động của phần mềm như sau:
các file video này được quản lý bởi module Vod. Vod hỗ trợ nhiều định dạng video như mp4, 3gp, flv...nhưng được khuyến nghị lưu ở định dạng mp4 với công nghệ mã hóa H264.
Phần quản lý nội dung hiển thị trên phần mềm Demo Vod: Phần này thực chất là một website có chức năng quản lý bài học (quản lý link kết nối đến file video trong thư mục content, quản lý tiêu đề bài học...). Phần mềm DemoVod sẽ kết nối đến website này để lấy nội dung.
Phần mềm Demo Vod: Đây là một ứng dụng chạy trên Android, nó lấy nội dung bài học từ websitethông qua một API. Nội dung lấy về bao gồm tiêu đề bài học và link video theo giao thức RTSP đến server Wowza. Khi người dùng bấm vào bài học cần xem, DemoVod sẽ kết nối đến module Vod và tải dữ liệu video về hiển thị cho người dùng.
Hình 3-6: xem Video được streaming từ module Vod của Wowza server
3.5.1.4 Đoạn Code cấu hình kết nối đến Website để lấy nội dung:
Sau khi có được link Video, ứng dụng trên Android có thể streaming nội dung từ server Wowza về điện thoại
3.5.1.6 Quản lý Module Vod trên Wowza
Đầu tiên chúng ta đăng nhập vào hệ thống quản trị Wowza theo đường link:
http://ip-wowza:8088/enginemanager. Tiếp theo để vào module Vode chúng ta vào
Hình 3-9: Cấu hình bảo mật
Ngoài ra chúng ta có thể cấu hình nâng cao hơn các chức năng của Vod trong file:[install-dir]/conf/vod/Application.xml
Ví dụ về cấu hình độ mượt khi streaming:
<HTTPStreamers>cupertinostreaming,smoothstreaming,sanjosestreaming,mpegdash streaming</HTTPStreamers>
3.5.2 Module Live của Wowza Streaming
3.5.2.1 Chức năng Live của Wowza Streaming
Đây là module hỗ trợ Streaming Video theo thời gian thực, nguồn Video có thể được lấy từ các Camera IP, camera điện thoại, kênh Tivi...
Trong phần demo chức năng Live, em đi xây dựng một ứng dụng Android tạm gọi là DemoLive. Ứng dụng này lấy hình ảnh từ camera trên điện thoại để streaming lên server Wowza theo giao thức RTSP (đây là giao thức được hỗ trợ mạnh nhất trên Android). Sau đó module Live của Wowza sẽ tiếp nhận và xử lý để luồng video truyền lên có thể xem trên nhiều thiết bị client khác nhau như: PC, Mobile, Smart TV...Module Live có khả năng truyền hình ảnh nhận được theo nhiều giao thức như RTSP, RTMP, HLS...Nó cũng hỗ trợ ghi lại các video được truyền lên để có thể xem lại về sau.
Hình 3-10: mô hình hoạt động của phần mềm DemoLive
Phía máy khách có thể xem Video trực tuyến thông qua trình duyệt (giao thức RTMP), thông qua phần mềm VLC (rtsp, rtp, mms).
3.5.2.2 Tạo tài khoản trên Wowza Server
Để điện thoại có thể truyền được hình ảnh lên server Wowza ta vào menu
Hình 3-11: Đăng ký tài khoản
Sau khi đã có tài khoản kết nối đến module Live của Wowza ta đi xây dựng ứng dụng DemoLive trên Android để truyền hình ảnh lên server. Mở eclipse để tạo một dự án Android, dự án này sử dụng thư viện libstreamingđể mã hóa và truyền Video đi theo giao thức RTSP.
Hình 3-12: Thư viên Video Streaming
3.5.2.3 Code tạo giao diện và kết nối đến Server Wowwza
Trong fileAndroidManifest.xmlcủa dự án DemoLive ta thêm các quyền truy cập Camera, kết nối internet, lấy âm thanh, ghi dữ liệu lên bộ nhớ cho ứng dụng.
Tạo một giao diện hiển thị hình ảnh cho ứng dụng DemoLive:
Cấu hình kết nối đến server Wowza:
Sau khi đã xong phần ứng dụng trên Android chúng ta đi tạo một trang web có khả năng xem video theo giao thức RTMP được streaming từ module Live của server Wowza.
Hình 3-13: Xem hình ảnh được truyền từ camera lên Wowza thông qua trình duyệt.
Hình 3-15: lựa chọn chất lượng Video truyền lên server
Hình 3-16: Xem hình ảnh Live camera thông qua phần mềm VLC player
3.6 Chạy thử và đối chiếu với một số yêu cầu đề ra
3.6.1 Tìm kiếm
Khi ta muốn tìm kiếm trên hệ thống một video có tên bất kỳ, ta sẽ duyệt trên màn hình tất cả các Video cần xem sau đó chọn nó (đối với phần mềm học tiếng anh).
Hình 3-17: Tìm kiếm Video.
Còn nếu dữ liệu có về trên hệ thống sẽ trả về màn hỉnh hiên thị của thiết bị và hiển thị ra ở vị trí đầu tiên của danh sách, còn nếu không có thì danh sách các video ban đầu vẫn được giữ nguyên không thay đổi.
Thử nghiệm khi dùng chức năng này tìm kiếm một video theo tên : thành công.(YC2).
3.6.2 Cập nhật
Người có thể copy Video vào trong thư viện Media Library hoặc có thể dung Live để truyền trực tiếp trên. Trường hợp nếu danh sách video hiển thị trên thiết bị đã là mới nhất thì giao diện sẽ được giữ nguyên, còn nếu có video mới cập nhập trên hệ thống, thì thông tin tên và độ dài của video này sẽ được hiển thị trên đầu danh sách video hiện đang hiển thị trên thiết bị.
Thử nghiệm khi dùng chức năng này cập nhập các video mới : thành công.(YC3, YC4).
3.6.3 Streaming
Sau khi đã lựa chọn được video người dùng muốn xem, họ bấm vào Video cần xem, hiển thị sẽ chuyển sang một giao diện mới điều khiển các hoạt động của video.
Để kiểm thử các chức năng của chức năng Streaming, ta thử tiến hành streaming một số video:
Mô tả video thứ nhất: Tên : Module1. Độ dài: 7 phút 58 giấy. Dung lƣợng: 27.6Mb. Định dạng H263, .3GP. Rtsp://192.168.0.50:1935/vod/module1.mp4
Kết quả streaming : đã streaming và chạy video thành công. Thời gian chờ đến khi vieo bắt đầu chạy: 1giây(YC1)
Tốc độ streaming: 428kbps
Đánh giá các chức năng: Pause, Play, Stop, Reset, Seek, Back: thành công.(YC6). Mô tả video thứ 2: Tên : Module2 Độ dài: 10phút 30 giây. Dung lƣợng: 41.6Mb. Định dạng H264, .3GP. Rtsp://192.168.0.50:1935/vod/module2.mp4
Kết quả streaming : đã streaming và chạy video thành công. Thời gian chờ đến khi vieo bắt đầu chạy: 1giây(YC1)
Tốc độ streaming: 471kbps
Đánh giá các chức năng: Pause, Play, Stop, Reset, Seek, Back: thành công.(YC6). Mô tả video thứ 3