[Đồ án Python- Dịch vụ mạng] Đọc và Xem file Avi

ĐÂY LÀ MỘT PHẦN ĐỒ ÁN MÔN DỊCH VỤ MẠNG CỦA NHÓM MÌNH.
Đồ án còn chưa hoàn thành theo ý thầy, nhưng mình úp đây để bạn nào muốn tìm tài liệu hoặc tiếp tục triển khai.
Tên đồ án: Đọc và xem file avi.
Avi là gì?
AVI là tên viết tắt của Audio Video Interleave là một dạng file đa phương tiện được ra mắt lần đầu tiên vào khoảng tháng 11 năm 1992 bởi hãng phần mềm lớn nhất Thế giới - Microsoft. Các tập tin với định dạng AVI này có thể chứa nên trong nó cả âm thanh lẫn hình ảnh  giống như các định dạng video khác.
Đặc điểm của file avi: 
+ Không nén -> Hình ảnh đẹp và sắc nét -> Dung lượng cao( 1 video 60 phút xấp xỉ trên dưới 1gb).
+ Khá kén chọn phần mềm, để chơi được cần có các phần mềm chuyên dụng như: KMP player , Real player, JetAudio basic

Ở đồ án này tôi chọn khá nhiều thư viện hỗ trợ: OpenCv, Tkinter, urllib, numpy, ...

Sơ lược một vài thư viện chính:
OpenCv là gì?
OpenCV là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (computer vision), xử lý ảnh và máy học, và các tính năng tăng tốc GPU trong hoạt động thời gian thực.
Một số chức năng của OpenCV:
+ Nhận dạng hình dạng thông qua hình ảnh trắng đen và các hình dạng của ảnh.
 + Nhận diện khuôn mặt thông qua tập hợp tất cả những điểm tương đồng.



Trong OpenCV, video có thể đọc bằng cách sử dụng nguồn từ camera được kết nối vào máy tính hoặc đọc video file trong máy. Bước đầu tiên là chúng ta cần tạo một object được gọi là VideoCapture. Tham số của nó có thế hoặc là  chỉ số của thiết bị hoặc tên của video file.

Trong hầu hết các trường hợp chỉ có một video kết nối vào máy tính, chúng ta sẽ set tham số cho VideoCapture là '0' và OpenCV chỉ sử dụng camera kết nối vào máy tính. Khi chúng ta có nhiều hơn một camera được kết nối, chúng ta có thể lựa chọn camera bằng cách truyền tham số ‘1’ cho CAM 2,  ‘2’ cho CAM 3 hoặc nhiều hơn theo quy luật tăng dần.

Sau khi đọc video file, chúng ta có thể hiển thị video theo từng frame ảnh. Một frame ảnh của video đơn giản là một ảnh, chúng ta hiển thị từng frame như khi hiển thị một bức ảnh trong OpenCV bằng hàm imshow().

Như là trường hợp của một ảnh, chúng ta sử dụng waitKey() sau hàm imshow() để dừng từng frame ảnh.Trong trường hợp của một ảnh chúng ta truyền tham số  ‘0’ cho waitKey(), nhưng để trình chiếu video chúng ta cần truyền tham số lớn hơn '0', bới nếu set '0' sẽ làm dừng frame ảnh trong video

Mô hình Client-Server:

Các bước tiến hành:
B1: Tạo 1 web server chứa danh sách video đơn giản bằng cách sử dụng SimpleHTTPServer
(python –m SimpleHTTPServer portnumber).
B2: Mở ứng dụng ở client, Nhập url( gồm ip và port ) của web server -> lấy link danh sách các video ở webserver.
B3: Chọn video để chơi trong listbox, để tắt video nhấn phím q.

Link: Đây là toàn bộ source code của mình. Nếu bạn thấy khó hiều hoặc thắc mắc thì đừng ngần ngại, gửi mail cho mình nha. My Email: dtrong97vn@gmail.com

Cảm ơn các bạn rất nhiều. Chúc các bạn một ngày làm việc và học tập vui vẻ. 😎😎😎


Bài đăng phổ biến từ blog này

Stack And Queue Trong Python

[Raspberry] Raspberry Kết Nối Cảm Biến Độ Ẩm, Nhiệt Độ