Ứng Dụng Chia Sẻ Video Trong Mạng Lan

Ứng dụng được xây dựng nhằm mục đích chia sẻ video giữa 1 máy (tạm gọi là server) và các máy còn lại trong 1 nhóm nhất định(các máy client).

  • Giới thiệu sơ về ứng dụng,ý tưởng thực hiện:
  • Client:

Khi các máy client kết nối vào server thì các client sẽ nhận được các đoạn video đang chiếu tại server và hiển thị trên màn hình ở phía client

Client kết nối vào server tại 1 thời điểm sẽ xem được trực tiếp nội dung video đang chiếu tại server(giống với xem truyền hình).

Client có quyền không xem đoạn phim,và gửi yêu cầu về server .

  • Server:

Server phát các đoạn video tại server và bắt đầu gửi video(dưới dạng Stream) lên mạng .

Server sẽ biết được danh sách các client đang kết nối tới mình(mỗi client kết nối sẽ được hiển thị lên bảng tại server).Server sẽ biết được thông tin chi tiết của từng Client.

Server có quyền đóng kết nối và cấm không cho bất cứ 1 client nào xem video.

 

  • Cách thực hiện:
    • Giao thức RTP và dịch vụ Multicast IP Address:
      • Giao thức RTP(REAL TIME PROTOCOL):giao thức vận chuyển thời gian thực.Giao thức này được ra đời để cải tiến về mặt thời gian thực của việc truyền dữ liệu qua mạng,nhất là ở lĩnh vực truyền thông đa phương tiện(video/audio) mà các giao thức trước đó không làm được(TCP/IP).

Giao thức RTP có thể sử dụng với các mục đích:hội thảo trực tuyến,học từ xa qua mạng,chia sẻ video trong 1 nhóm máy tính,…

  • Multicast service:là dịch vụ để gửi các gói tin,tập tin,video/audio từ 1 máy tính tới 1 nhóm máy tính nhất định(mạng Lan).

Địa chỉ IP được multicast sử dụng là địa chỉ IP thuộc lớp D:224.0.0.0  è 239.255.255.255

  • Xây dựng ứng dụng:như vậy ý tưởng chính của chúng em là sẽ sử dụng giao thức RTP và Multicast service để gửi(server) và nhận(các client) video/audio thông qua mạng Lan.
    • Server:
      • Truyền Video/Audio lên mạng(lớp MediaSender):khi bắt đầu chiếu 1 video ,thì tại server sẽ bắt đầu gửi video này lên mạng theo địa chỉ multicast và port multicast nhất định(Ip này phải đảm bảo thuộc lớp D).ví dụ:110.111.112/6366
      • Mở Socket (lớp Server,SocketServerListener): mở Socket tại 1 port để bắt đầu lắng nghe kết nối từ client
      • Giao tiếp với Client(lớp ClientHandler): sau khi tạo socket để lắng nghe kết nối từ các client,server sẽ nắm được thông tin chi tiết của từng Client và bắt đầu giao tiếp với Client:có thể đóng kết nối client,hoặc nhận yêu cầu đóng kết nối từ phía Client
    • Client:
      • Mở kết nối tới Server(lớp Client):tạo socket client và bắt đầu kết nối tới server,nếu được server đồng ý thì client sẽ kết nối thành công tới server,và bắt đầu xem video từ server.
      • Nhận video (Lớp MediaReceive):sau khi kết nối tới server,client sẽ nhận được thông tin về các thông tin của Multicast Address:IP/Port.ví dụ: 110.111.112/6366(video) – 230.110.111.112/6368(audio)

Kết nối tới các địa chỉ tại các port trên,Client sẽ xem được video đang phát trực tuyến tại server.

  • Tiếp tục:Client có thể giao tiếp với server,có thể yêu cầu server đóng kết nối tới mình.
  • Hướng dẫn sử dụng:
    • Hướng dẫn chạy ứng dụng:
      • Server:

Chép các file video(mpg,avi) vào thư mục

 ../server/Release/MediaFiles

Chạy file:

../server/Release/jar/server.jar

Khi chương trình chạy,bấm nút Play để chạy file video và gửi video lên mạng.Sau đó Clients có thể kết nối và xem video.

Khi chọn video khác trong danh sách để play thì sẽ đóng player trước đó.

Hạn Chế: chưa làm được chức năng gửi nhiều video cùng lúc .

  • Client:

Chạy file:

 ..\client\Release\Client.jar

  • Hướng dẫn Build ứng dụng:đã cài đặt ant và set biến môi trường.Chép các file video vào thư mục …/Release/Build/MediaFiles
    • Build Server:mở command(CMD) ,di chuyển thư mục hiện hành tới thư mục xml:gõ ant
  • Build Client: mở command(CMD) ,di chuyển thư mục hiện hành tới thư mục xml:gõ ant

 

  • Chạy mã nguồn bằng netbean,2 project đượ đặt tại 2 thư mục Client và Server.LƯU Ý,PHẢI COPY CÁC FILE VIDEO VÀO THƯ MỤC :

Server/Source(Netbean)/MediaFiles

Tài liệu tham khảo:

Leave a Reply