TRUYỀN HÌNH TRỰC TIẾP ĐA ĐIỂM
Trong những năm qua, công nghệ streaming thời gian thực được nghiên cứu và phát triển bởi doanh nghiệp và cộng đồng Internet. Mỗi doanh nghiệp đưa giải pháp phát triển riêng cho mình như Microsoft phát triển MMS, Adobe phát triển RTMP, hay Sun Microsystems phát triển Java và các SDK. Bởi vậy, nhiều môi trường lập trình xây dựng và phát triển ứng dụng streaming thời gian thực được công bố cho cộng đồng.
Trong phạm vi nghiên cứu của đề tài chủ yếu nghiên cứu và ứng dụng môi trường lập trình của Adobe, ngôn ngữ sử dụng là ActionScript để phát triển phân hệ truyền thông đa phương tiện thời gian thực. ActionScript là ngôn ngữ lập trình được sử dụng cho các công nghệ dựa trên nền Flash như Flash, Flash Media Server, AIR. Ngôn ngữ ActionScript cung cấp nhiều thư viện, lớp để phát triển ứng dụng đa phương tiện, cũng như truyền thông qua mạng IP như NetConnection, Camera, Microphone, Netstream. Tuy nhiên, để truyền dữ liệu đa phương tiện thời gian thực bằng công nghệ streaming, Adobe đã phát triển giao thức RTMP. Giao thức RTMP là giải pháp mà Adobe dùng để truyền tải dữ liệu âm thanh, video với hiệu xuất cao qua mạng Ip Giao thức RTMP cũng thực hiện việc chia nhỏ gói tin đa phương tiện của mình và sử dụng giao thức TCP gửi các gói tin này thông qua mạng IP để tới nơi nhận.
Hiện nay, môi trường Flash Media Server 2.0 (FMS) [10] là một nền tảng mạnh mẽ cho phép lập trình viên tạo các ứng dụng truyền thông phong phú như streaming âm thanh, streaming video qua mạng IP. FMS cho phép chúng ta có xây dựng ứng dụng hội thảo trực tuyến thời gian thực với các dữ liệu truyền thông đa đạng như văn bản, audio, video hay các tập tin. Qua đó, người dùng có thể phát triển nhiều ứng dụng đa dạng cho riêng mình.
Minh họa dưới đây việc xây dựng chương trình đơn giản video streaming với yêu cầu là ghi hình ảnh thời gian thực của webcam trên máy tính người dùng và gửi về máy chủ streaming qua mạng IP.
nc.Connect(―rtmp:/Video_app/Class1‖); nc.OnStatus = function(info:Object) { if (info.Code == ―NetConnection.Connect.Success‖){ ns = new NetStream(nc); ns.AttachVideo(Camera.Get()); ns.AttachAudio(Microphone.Get()); ns.Publish(―recordedvideo‖, ―record‖); } }
Với đoạn mã trên, thì đầu tiên chương trình tạo ra một kết nối mới. Tiếp theo, nó sẽ thực hiện kết nối tới máy chủ streaming (server) thông qua giao thức RTMP. Nếu kết nối thành công, chương trình sẽ tạo một đối tượng NetStream trên kết nối đó và thực hiện việc các hình ảnh thu được từ webcam của người dùng về server. Bên cạnh đó, quá trình khi dữ liệu âm thanh cũng được thực hiện. Các thông tin này sẽ được ghi vào file trên máy chủ có tên là recordvideo và nằm tại thư mục:
video_app/streams/Class1/recordedvideo.Flv trong thư mục applications của Flash Media Server.
Nhằm làm rõ hơn quá trình xây dựng hệ thống truyền thông đa phương tiện thời gian thực sử dụng công nghệ streaming trong ActionScript của Adobe, dưới đây minh họa việc xây dựng chương trình truyền hình trực tuyến đơn giản với giao diện được thiết kế như sau:
Hình 24: Giao diện chương trình truyền thông đa phương tiện thời gian thực đơn giản sử dụng công nghệ streaming trong ActionScript của Adobe
Tiếp theo, đoạn code dưới đây được dùng để thiết lập luồng kết nối, ban đầu thiết lập tham số này bằng null, và xóa bộ đệm dữ liệu
//onStatus thiết lập và nút bấm khi thay đổi kết nối NetConnection.prototype.onStatus = function(info) { if (info.code == ―NetConnection.Connect.Success‖) { connect_pb.setLabel(―Disconnect‖) } else if (! this.isConnected) { if (out_ns) out_ns.close(); if (in_ns) in_ns.close(); connect_pb.setLabel(―Connect‖); publish_pb.setLabel(―Publish‖); local_video.attachVideo(null); local_video.clear() } }
Tiếp theo, đoạn lệnh thực hiện việc kết nối đến server bằng tài khoản đã được xác định trước với địa chỉ của server xác định, giả sử là 127.0.0.1. Đoạn code được minh họa như sau
function.doConnect(pb) {
if (pb.getLabel() == ―Connect‖) { userName = userName_txt.text;
remoteUserName = remoteUserName_txt.text;
nc.connect (‗rtmp://127.0.0.1/Sample/tuanld‘ , username); publish_pb.setEnabled(true); } else { nc.close(); publish_pb.setEnabled(false); // local_video.clear(); } }
Sau khi kết nối tới server (streaming server) thì phía máy người dùng (clients) sẽ phải gửi dữ liệu đa phương tiện của mình lên trên server. Dữ liệu đa phương tiện này là dữ liệu thời gian thực thu được từ webcam và microphone của phía người dùng này. Đoạn mã dưới đây minh họa chức năng này
// Hàm doSubscrib được gọi khi ấn nút Subscrib function.doSubscrib(pb) {
if (pb.getLabel() == ―Subscrib‖ && nc.isConnected) { pb.setLabel(―Stop Subscrib‖);
in_ns = new NetStream(nc); remote_video.attachVideo(in_ns);
in_ns.play(‗public/‘ + remoteUserName); trace(―Dang lay du lieu‖);
} else{
pb.setLabel(―Subscrib‖); in_ns.close();
}
nc = new NetConnection(); publish_pb.setEnabled(false);
Tại phía nhận, cần phải lập trình để nhận dữ liệu mà phía người người dùng từ xa gửi tới. Đoạn code dưới đây để thực hiện chức năng này
function.doSubscrib(pb) {
if (pb.getLabel() == ―Subscrib‖ && nc.isConnected) { pb.setLabel(―Stop Subscrib‖);
in_ns = new NetStream(nc); remote_video.attachVideo(in_ns);
in_ns.play(‗public/‘ + remoteUserName); trace(―Dang lay du lieu‖);
} else{ pb.setLabel(―Subscrib‖); in_ns.close(); remote_video.clear(); } } nc = new NetConnection(); publish_pb.setEnabled(false);
Sau khi thực hiện các thao tác cơ bản trên, chúng ta thực hiện việc biên dịch chương trình. Kết quả trước và sau khi chạy chương trình đơn giản này được minh họa như hình dưới đây
Hình 25: Giao diện chương trình trước khi chạy
3.2.1. Phân tích nhu cầu
Trăm nghe không bằng một thấy người đối thoại. Phần lớn mọi người cho rằng thậm chí tin tức thông qua truyền hình cũng hay hơn nghe qua radio. Còn việc ứng dụng hội nghị truyền hình trong điều khiển, quản lý, đào tạo, y tế, trong các hệ thống an toàn và nhiều lĩnh vực khác mang lại lợi ích vô cùng to lớn.
Tất nhiên hội nghị truyền hình không khi nào có thể thay thế được sự giao tiếp thực tế tự nhiên, nhưng nó cho phép đạt được về nguyên tắc, mức độ giao tiếp mới giữa những con người cách xa nhau về khoảng cách địa lý, có khi là ngàn vạn ki lô mét. Theo một số nghiên cứu mới đây, khi nói chuyện qua điện thoại chỉ có thể truyền một phần thông tin gửi đi. Còn trong trường hợp khi có khả năng theo dõi cử chỉ, điệu bộ của người đối thoại thì hệ số hữu dụng của việc truyền thông tin đạt cao hơn gấp nhiều lần.
Những nhà quản lý, điều hành các công ty đã sử dụng Hội nghị truyền hình cho rằng: các hệ thống hội nghị truyền hình đã giảm được rất đáng kể các chi phí thời gian và tiền bạc cho các chuyến đi công tác của các cộng tác viên và thực hiện các cuộc toạ đàm rất hiệu quả.
Trong khi đó, sự phát triển về hạ tầng mạng viễn thông, mạng Internet và công nghệ thông tin đã tạo thuận lợi cho việc phát triển mạng thông tin hiện đại cung cấp dữ liệu đa phương tiện và chức năng truyền hình trực tuyến thời gian thực.
Mặc khác, hầu hết các giải pháp xây dựng hệ thống truyền hình trực tuyến hiện nay đều có đòi hỏi nhất định về đầu tư thiết bị, cũng như yêu cầu về hạ tầng truyền thông. Chính điều này đã tạo ra những rào cản cho sự phát triển phổ biến hệ thống này ở Việt Nam. Do đó, hệ thống thông tin phục vụ yêu cầu về việc tập huấn, phổ biến kiến thức từ xa qua mạng IP mà không cần bổ sung thiết bị phần cứng, và độc lập với hạ tầng mạng, cũng như không cần cài đặt bổ sung bất kỳ plug-in nào là rất thiết thực. Đây chính là mục đích của nghiên cứu này.
a) Tính dễ sử dụng
Giao diện của hệ thống phải dễ hiểu trực quan phù hợp với mọi đối tượng, hỗ trợ nhiều ngôn ngữ tiếng Việt. Cần có chức năng và công cụ hỗ trợ trực tuyến và hướng dẫn sử dụng đầy đủ và luôn sẵn sàng để trong quá trình người dùng truy cập.
b) Độ an toàn và bảo mật
Ứng dụng cần phải được cung cấp các phương tiện bảo mật và an toàn để người quản trị hệ thống có thể dễ dàng khôi phục lại dữ liệu, cập nhật dữ liệu khi có hành động phá hoại xảy ra cũng như ngăn chặn hành động thiện chí. Bên cạnh đómạng thông cần phải đánh giá hết các trường hợp có thể xảy ra nhằm chống lại các phá hoại từ bên ngoài.
c) Tôn trọng quyền riêng tƣ
Thông tin về cá nhân, cũng như tài khoản người dùng và các thành viên quản trị cần phải được bảo mật và đảm bảo an toàn không được tiết lộ.
d) Yêu cầu về độ tin cậy
Ứng dụng phải hoạt động ổn định, không để xảy ra các xung đột phần cứng hay phần mềm, hay với các phần mềm khác khi đang hoạt động trên mạng, máy chủ và máy người dùng.
e) Yêu cầu về tính mở rộng và phát triển trong tƣơng lai
Khi xây dựng ứng dụng thì cần đảm bảo tính ổn định, độc lập giữa các phân hệ, chức năng nhưng cũng cần cơ chế liên kết để thuận lợi cho việc kế thừa và mở rộng tương lai, cũng như việc bảo trì và nâng cấp dễ dàng.
f) Yêu cầu về môi trƣờng
Ứng dụng phải hoạt động trong hầu hết các trình duyệt hiện nay như IE, Firerox, Googlechrome.
3.3.3. Đặc tả chức năng.
Ứng dụng truyền hình trực tuyến đa điểm có các chức năng như sau:
- Quản lý nội dung bao gồm quản lý tin tức, danh mục các bài viết, nội dung bài viết.
- Quản lý tài nguyên số bao gồm các dữ liệu về video, hình ảnh.
- Quản lý người dùng bao gồm quản lý thành viên các cấp độ truy cập cho thành
- Truyền hình trực tuyến đa điểm
- Ghi lại quá trình truyền hình trực tuyến.
- Kết nối với Camera HD để nâng cao chất lượng hình ảnh cũng như phục vụ hội
nghị đầu bờ và truyền hình hiện trường.
- Trợ giúp và hướng dẫn người dùng.
3.3. THIẾT KẾ QUÁ TRÌNH TRUYỀN THÔNG TIN SỬ DỤNG CÔNG NGHỆ STREAMING
Trong hình 27 minh họa quá trình truyền thông sử dụng công nghệ Streaming thời gian thực của ứng dụng - cho thấy rằng, đầu tiên cán bộ tập huấn (giảng viên) và các cán bộ tham gia tập huấn (học viên) truy cập vào hệ thống để đăng nhập vào hệ thống truyền hình trực tuyến đa điểm thông qua giao diện phía người dùng (client) thông qua tài khoản của mình. Trước tiên, Webserver thực hiện việc xác thực thông tin đó. Khi xác thực hành công thì giao diện của hệ thống truyền hình trực tuyến được hiển thị trên phía người dùng. Lúc này toàn bộ kết nối tới streaming server sẽ được diễn ra tự động thông qua việc bắt tay giữa webserver với streaming server.
Tiếp theo, người dùng thực hiện việc cấu hình tốc độc, khung ảnh, tốc độ khung hình/giây, kích thước và nguồn thu hình ảnh và âm thanh và thực hiện việc kết nối tới server theo giá trị tham số mà webserver gửi cho client. Lúc này, client tự động gửi các dữ liệu của mình tới streaming server bằng giao thức RTMP. Sau đó, streaming server thực hiện yêu cầu của cán bộ tập huấn (giáo viên) về việc cho phép thực hiện các chức năng theo yêu cầu của mình như việc chỉ truyền hình ảnh, âm thanh, hay chỉ cho phép truyền ảnh,….
Hình 27: Biểu đồ trình tự quá trình truyền thông sử dụng công nghệ Streaming thời gian thực cho chương trình ứng dụng
Cuối cùng, quá trình truyền thông sẽ kết thúc nếu như client muốn kết thúc quá trình truyền thông đa phương tiện thời gian thực này. Toàn bộ tài nguyên của mạng, Web server, Streaming Server và client được giải phóng.
Ngược lại, quá trình truyền thông vẫn được duy trì giữa các máy người dùng với Streaming server mà không có sự can thiệp của Webserver.
3.4. THIẾT KẾ CHỨC NĂNG ĐA PHƢƠNG TIỆN THỜI GIAN THỰC
Trên hình 28 thể hiện năm chức năng chính của hệ thống truyền thông đa phương tiện đa điểm thời gian thực qua mạng IP của ứng dụng như sau:
- Kết nối Camera HD: Cho phép người dùng lựa chọn thiết bị thu thập hình ảnh, âm
thanh khác nhau, có thể là các thiết bị thu bên ngoài. Nhờ vậy mà thông tin về hình ảnh, dữ liệu video đạt chất lượng tốt hơn so với các webcam phổ biến hiện nay. Điều này cũng giúp cho việc thay đổi nguồn dữ liệu phù hợp với yêu cầu của mạng, yêu cầu về chất lượng đợt tập huấn từ xa.
Hình 28: Biểu đồ trình tự quá trình truyền thông sử dụng công nghệ Streaming thời gian thực.
- Truyền thông dữ liệu thời gian thực: Chức năng ngày gồm hai chức năng khác nữa
đó là việc truyền dữ liệu đa phương tiện thời gian thực, và chức năng nhận dữ liệu đa phương tiện thời gian thực. Mỗi clients phải thực hiện chức năng này độc lập nhưng đồng thời. Cần lưu ý, dữ liệu truyền thông này còn có cả âm thanh.
- Quản lý thông tin đào tạo trực tuyến: Tổ chức khóa học, quản lý bài giảng, nội
dung giảng trước đây của bất kỳ đợt tập huấn nào. Chức năng này còn cho phép theo dõi quá trình đăng nhập, tham gia lớp học, cũng như việc cho phép vào học hay không. Chức năng này cũng cung cấp giao diện cho thực hiện việc lựa chọn vai trò và gửi các câu hỏi tới người tập huấn trong quá trình tập huấn.
- Tự động ghi nội dung: Chức năng này cho phép hệ thống ghi tự động nội dung
trao đổi trực tuyến thời gian thực trong quá trình tập huấn. Dữ liệu đa phương tiện này được lưu lại để tham khảo hay quá trình tập huấn khác của người tập huấn.
- Cấu hình hệ thống: Cấu hình các tham số đường truyền, thiết bị thu như camera,
microphone, kích thước khung hình. Qua đó cho phép người dùng điều chỉnh thích hợp với môi trường mạng hiện tại.
Hệ thống truyền thông đa phƣơng tiện đa điểm thời
gian thực Kết nối camera HD Truyền thông dữ liệu thời gian thực Quản lý thông tin đào tạo trực
tuyến Cấu hình hệ thống Tự động ghi nội dung
Hình 29: Vai trò giữa các thành viên trong quá trình tập huấn của hệ thống truyền thông đa phương tiện thời gian thực qua mạng IP .
Với thiết kế trong hình 29 Cho thấy vai trò các thành viên được chia ra loại là người tập huấn (giảng viên), quản trị viên, và người tham gia tập huấn (học viên).
- Người tập huấn: Có trách nhiệm kết nối các học viên trong quá trình tập huấn với
nhau. Người tập huấn phát quảng bá các thông tin của mình cho tất cả các thành viên khác, trừ quản trị viên. Các thông tin này là dữ liệu đa phương tiện hình ảnh, video, văn bản, màn hình,… Người tập huấn thực hiện cho phép trao đổi, hay gọi trực tiếp tới từng thành viên để trao đổi riêng hoặc trao đổi chung. Qua đó, chúng ta thấy rằng, người tập huấn đóng vai trò chính cho toàn bộ quá trình tập huấn này.
- Người tham gia tập huấn (học viên): Kết nối tới người tập huấn và thực hiện việc
đăng ký để được tham gia và chờ yêu cầu của người tập huấn. Họ cũng có thể gửi câu hỏi tới người người tập huấn và các người khác, nhưng không thể gửi yêu cầu tới quản trị.
- Người quản trị: Liên lạc với người tập huấn để trao đổi và đảm bảo hạ tầng mạng
3.6.1. Quản lý ngƣời dùng
Phân hệ này cho phép quản trị viên thực hiện việc quản lý người dùng như việc thêm tài khoản, cấp quyền, cũng như xóa tài khoản người dùng. Dưới đây là giao diện thống kế danh sách người dùng
Hình 30: Giao diện thống kê danh sách người dùng
3.6.2. Phân hệ truyền dữ liệu đa phƣơng tiện thời gian thực qua mạng IP
Trong hệ thống truyền thông đa phương tiện thời gian thực, quá trình truyền dữ liệu có thể được thực hiện ở nhiều clients cùng một lúc, hoặc chỉ một client truyền còn lại các máy client chỉ nhận, hoặc client chỉ truyền trực tiếp tới một client khác được chỉ định trước. Có thể hiểu rằng quá trình truyền là quá trình phát đi dữ liệu đa phương tiện của một client tới client khác qua môi trường mạng IP. Chính vì vậy, tùy theo lựa chọn của người dùng hệ thống truyền có thể thực hiện theo một trong ba cách trên. Với việc ứng dụng công nghệ streaming thời gian thực trong ActionScript của Adobe dựa theo mô hình máy chủ trung tâm. Tức là các dữ liệu đa phương tiện truyền theo cơ chế streaming tới máy chủ streaming (streaming server) bằng giao thức RTMP. Sau đó máy chủ streaming