Đồng bộ dữ liệu hệ thống media với XBMC

Hiện tại, XBMC đang là 1 trong những giải pháp tạo và chia sẻ trung tâm dữ liệu media phổ biến nhất hiện nay. Nhưng nếu mô hình này bị dàn trải quá 1 diện tích bất kỳ nào đó, thì các thông tin về thư viện, danh sách dữ liệu media sẽ không kịp cập nhật. Trong bài viết dưới đây, chúng tôi sẽ giới thiệu với các bạn một số thao tác cơ bản để khắc phục vấn đề này.

XBMC đã được tích hợp sẵn nhiều thư viện hệ thống để giúp người dùng dễ dàng theo dõi được các file media nào đã được trình chiếu. Tuy nhiên, quá trình này lại chỉ diễn ra ở chế độ mặc định và ở mức local – hệ thống nội bộ. Nếu bạn đã có sẵn thiết bị hỗ trợ XBMC trong phòng khách và phòng ngủ thì quá trình giao tiếp khi được bố trí như vậy sẽ không thể thực hiện được. Ví dụ, nếu bạn xem 1 chương trình TV nào đó trong phòng khách và phòng ngủ, sau đó đánh dấu lại bằng chức năng của XBMC, thì hệ thống sẽ chỉ hiển thị những chương trình đã xem trên 1 vài kênh nào đó. Tùy chọn Pause/Resume Bookmark cũng chỉ hoạt động trong mô hình local. Nếu bạn tạm dừng 1 bộ phim hoặc đánh dấu bằng Bookmark thì không thể truy cập và xem lại bộ phim đó, trừ khi bạn thực hiện bằng chính hệ thống đã tạo ra trước đó.

Tuy nhiên, không nên áp dụng những bước dưới đây trong trường hợp:

– Bạn chỉ có 1 mô hình XBMC trong nhà

– Lưu trữ dữ liệu media trên 1 ổ cứng local có liên quan tới XBMC và không áp dụng bất cứ phương thức chia sẻ nào

– Đang sử dụng XBMC dựa trên thiết bị Xbox

Những ưu điểm khi áp dụng:

– Có nhiều hệ thống XBMC trong nhà

– Lưu trữ dữ liệu trên server

Cơ chế hoạt động của XBMC:

Phần cốt lỗi của quá trình đồng bộ hóa này dựa trên kiến thức cơ bản về MySQL, tuy nhiên các bạn cũng không nên quá lo lắng nếu không nắm rõ kiến thức về MySQL. Để thực hiện, chúng ta sẽ cài đặt bản Free của MySQL, tạo cơ sở dữ liệu lưu trữ thông tin dành cho XBMC, và sau đó “hướng dẫn” XBMC ghi lại toàn bộ hoạt động, thành phần có liên quan vào cơ sở dữ liệu đó. Những yếu tố cần thiết cần sử dụng:

– Nhiều hơn một trung tâm xử lý media với ứng dụng XBMC đã được cài đặt (phiên bản 10.0 hoặc mới hơn)

– Phiên bản Free của MySQL (trong bài thử nghiệm này là 5.5)

Cài đặt và cấu hình MySQL với XBMC:

Trong bài thử nghiệm này, chúng tôi sẽ tiến hành cài đặt MySQL trên media server sử dụng Windows Home Server. Khá đơn giản và dễ dàng, giữ nguyên các tùy chọn mặc định, đánh dấu vào ô Launch the MySQL Instance Configuration Wizard trước khi nhấn Finish tại màn hình cuối cùng. Tiếp đó là quá trình thiết lập MySQL, đầu tiên là 2 chế độ Detailed Standard Configuration. Các bạn chọn Standard Configuration và nhấn Next:

Đánh dấu check vào ô Install As Windows Service, đặt tên cho dịch vụ để dễ quản lý, tiếp tục chọn ô Launch the MySQL Server Automatically để đảm bảo rằng server MySQL luôn luôn hoạt động mỗi khi chúng ta cần đến:

Tại màn hình tiếp theo, đánh dấu vào ô Modify Security Settings, điền mật khẩu vào ô New root password và chọn Enable root access from remote machines. Tiếp tục nhấn Next tại các bước tiếp theo. Và bây giờ là thời điểm để tạo cơ sở dữ liệu trên server MySQL, truy nhiên có 1 điểm khá quan trọng cần chú ý trước khi chúng ta tiếp tục, đó là XBMC không lưu trữ dữ liệu profile trong cơ sở dữ liệu và mỗi profile có thư viện riêng. Có nghĩa là chúng ta phải tạo cơ sở dữ liệu MySQL đối với mỗi profile sử dụng. Ví dụ như:

– Nếu sử dụng profile đơn thuần trên mỗi XBMC hoặc chỉ tập trung vào việc đồng bộ thư viện: tạo 1 bộ cơ sở dữ liệu và áp dụng với từng profile trên mỗi XBMC.

– Nếu sử dụng nhiều profile thì bạn hãy tạo riêng 1 bộ cơ sở dữ liệu đối với từng profile để đồng bộ dữ liệu qua hệ thống mạng.

Trước tiên, chúng ta sẽ tạo profile đầu tiên, mở MySQL và gõ lệnh:

C:Program FilesMySQLMySQL Server 5.5binmysql.exe” “–defaults-file=C:Program FilesMySQLMySQL Server 5.5my.ini” “-uroot” “-p”

Khi cửa sổ dòng lệnh hiển thị yêu cầu nhập mật khẩu, việc tiếp theo là tạo tài khoản user dành cho cơ sở dữ liệu trên server và trên hệ thống. Cụ thể tại đây chúng ta sẽ tạo 2 database dành riêng cho thư viện video music. Bắt đầu bằng việc tạo tài khoản user chính và cơ sở dữ liệu:

Gõ lệnh dưới đây để tạo tài khoản user trên database server:

CREATE USER ‘xbmc’ IDENTIFIED BY ‘xbmc’;

Tham số trong dấu ngoạc đơn đầu tiên là tên tài khoản user, thông tin trong phần ngoặc đơn thứ 2 là mật khẩu. 1 hệ cơ sở dữ liệu MySQL trên 1 server riêng biệt sẽ ghi lại toàn bộ dữ liệu về chương trình TV hoặc bộ phim nào đó bạn muốn xem:

CREATE database xbmc_video CHARACTER SET latin1 COLLATE latin1_general_ci;
CREATE database xbmc_music CHARACTER SET latin1 COLLATE latin1_general_ci;

2 câu lệnh trên sẽ tạo ra 2 cơ sở dữ liệu dành cho video và music, đồng thời khởi tạo tiền tố phân biệt dành riêng cho cơ sở dữ liệu, còn latin1 là yếu tố cần thiết dành cho XBMC để ghi dữ liệu vào database bình thường. Nếu gặp lỗi và muốn xóa cơ sở dữ liệu thì các bạn chỉ cần dùng lệnh DROP DATABASE databasename;

GRANT ALL ON xbmc_video.* TO ‘xbmc’;
GRANT ALL ON xbmc_music.* TO ‘xbmc’;

Trong bước này, chúng ta sẽ gán user xbmc toàn quyền truy cập tới cả 2 cơ sở dữ liệu. Còn nếu muốn sử dụng XBMC để chuyển tiếp giữa các file khác nhau trong album ca nhạc hoặc video thì sử dụng thêm 1 số lệnh như dưới đây:

ALTER TABLE xbmc_music.song ADD INDEX idx_idArtist(idArtist);
ALTER TABLE xbmc_music.song ADD INDEX idx_idGenre(idGenre);
ALTER TABLE xbmc_music.song ADD INDEX idx_idAlbum(idAlbum);

Cú pháp trên có chức năng “tăng tốc” truy cập cho người dùng với đầy đủ chức năng trong khi vẫn sử dụng XBMC như 1 công cụ Media Player. Trong trường hợp bạn chỉ dùng profile đơn thuần thì đến đây là chúng ta đã hoàn tất, còn nếu muốn tạo thêm profile khác thì chỉ cần làm lại những bước như trên, thay thế tên user và mật khẩu theo nhu cầu.

Trước khi hoàn tất bước này, các bạn hãy kiểm tra lại tài khoản và database đã được tạo và hoạt động ổn định bên trong MySQL server hay chưa:

SELECT host,user from mysql.user;

SHOW DATABASES;

Nếu chuẩn xác, hệ thống sẽ hiển thị kết quả trả về tương tự như hình trên, và chỉ còn lại 1 bước duy nhất trước khi cấu hình XBMC: đảm bảo rằng cổng 3306 (cổng của MySQL server) đã được mở sẵn trên hệ thống Firewall của đã cài đặt MySQL.

Cấu hình XBMC để làm việc với cơ sở dữ liệu MySQL:

Ở chế độ mặc định, XBMC sử dụng cơ sở dữ liệu SQLite internal. Và nếu muốn XBMC làm việc hiệu quả trong hệ thống mạng thì người dùng cần thực hiện một số thao tác để sử dụng database MySQL external.

Nếu trong trường hợp cài đặt hoàn toàn mới XBMC thì có thể bỏ qua bước này. Còn nếu bạn muốn lưu lại tất cả dữ liệu của thư viện có sẵn thì cần phải export trước tiên. Bên trong quá trình cài đặt XBMC, các bạn mở System > Settings > Video and System > Settings > Video, ở phía dưới của menu chúng ta chọn Export và lưu vào thư mục lưu trữ trên phân vùng. Các bạn không nên export file thư viện từ 1 máy tính bất kỳ trong hệ thống mạng, vì nó sẽ ảnh hưởng đến hiệu suất và tính ổn định trong khi làm việc. Khi hoàn tất việc thiết lập XBMC để chấp nhận cơ sở dữ liệu MySQL, làm lại các bước trên và chọn Import.

Còn khi đã hoàn tất việc sao lưu thư viện, chúng ta sẽ tiếp tục chuyển sang bước thiết lập, cấu hình. File duy nhất được sử dụng tại đây là advancedsettings.xml, nhưng ở chế độ mặc định thì file này không có sẵn (vì XBMC sẽ khởi tạo file đó trong quá trình cài đặt). Trong trường hợp file advancedsettings.xml đã có sẵn thì các bạn hãy tìm trong đường dẫn sau:

– C:Documents and Settings[username]Application DataXBMC
/Vista – C:Users[username]AppDataRoamingXBMC
Linux/XBMC Live – $HOME/.xbmc/userdata
Mac OS X – /Users/[username]/Library/Application Support/XBMC/userdata

Tiếp tục kiểm tra bên trong thư mục đó, nếu đã có sẵn file advancedsettings.xml thì các bạn bỏ qua bước dưới đây, còn nếu không thì mở NotePad và nhập đoạn mã sau:



mysql
192.168.1.120 3306 xbmc xbmc xbmc_video


mysql
192.168.1.120 3306 xbmc xbmc xbmc_music

Nhập địa chỉ IP của server và địa chỉ LAN, thông tin user và mật khẩu của cơ sở dữ liệu MySQL tại đây.

Trong trường hợp bạn dùng nhiều profile thì chỉ cần tạo 1 file advancedsettings.xml duy nhất đối với từng profile tương ứng. Khi đã hoàn tất những bước trên, chúng ta khởi động lại XBMC để áp dụng sự thay đổi. Sau đó, tiến hành import lại toàn bộ thư viện để cố định cơ sở dữ liệu MySQL:

Sau khi quá trình trên kết thúc, các bạn kiểm tra lại để đảm bảo rằng XBMC đã tương thích với hệ cơ sở dữ liệu. Quay trở lại cửa sổ Command Prompt của MySQL và gõ lệnh:

SELECT COUNT(*) from xbmc_video.movie;

SELECT COUNT(*) from xbmc_video.tvshow;

Mỗi 1 câu lệnh query sẽ trả lại tổng số lượng chương trình ca nhạc và TV tương ứng được lưu trữ trong thư viện (dựa vào cơ sở dữ liệu MySQL). Còn nếu bất kỳ giá trị nào trả về số 0 thì có nghĩa là đã có lỗi xảy ra ở đâu đó. Các bạn hãy kiểm tra lại ở những bước sau:

– Kiểm tra lại từng cặp tài khoản user và cơ sở dữ liệu đã được tạo tương ứng với mỗi profile

– Đã sử dụng lệnh GRANT ALL để áp dụng tất cả các quyền dành cho user và database

– Đã thiết lập CHARACTER/COLLATION thành Latin1 đối với toàn bộ cơ sở dữ liệu

– Tất cả các thiết lập chia sẻ đã được khởi tạo thành Samba (//somehost/sharefolder) và không phải là local (c:media files). MySQL không thực sự hoạt động ổn định khi đường dẫn hoặc tên file có chứa ký tự

– Đã mở cổng 3306 trên máy host MySQL hay chưa?

– Đã thay đổi các thông số trong file advancedsettings.xml hay chưa?

Đồng bộ dữ liệu qua XBMC qua nhiều máy tính khác nhau:

Một trong những thao tác đầu tiên cần thực hiện (nếu các bạn chưa hoàn tất trong quá trình cài đặt), đó là thay đổi cách thức làm việc của XBMC khi người dùng muốn xem 1 đoạn video hoặc ca nhạc nào đó. Ở chế độ mặc định, XBMC sẽ trình chiếu những file media đó từ đầu, và với hệ thống đã được thiết lập như trên, chúng ta muốn XBMC hiển thị thông báo khi sử dụng và truy cập từ nhiều máy tính khác nhau.

Các bạn mở mục Settings > Video > File Lists và thiết lập Default select action thành Choose. Cụ thể, yêu cầu đưa ra ở đây là XBMC sẽ hiển thị thông tin mỗi khi chúng ta mở file thay vì việc tự động trình chiếu như trước kia:

Trỏ tới thư mục lưu trữ demo của HDTV và Mark as watched, đánh dấu bằng chế độ bookmark với 1 file khác, xem và tạm dừng với 1 file khác nữa. Sau đó chúng ta rời văn phòng, di chuyển sang phòng khác và kiểm tra lại tình trạng của 3 file đó xem XBMC có hoạt động đúng chức năng hay không:

Kể từ thời điểm này, mỗi khi chúng ta di chuyển tới hệ thống XBMC khác, hệ thống sẽ hiển thị chính xác như hình dưới:

Còn với những file đã được đánh dấu bookmark thì sao?

Và cuối cùng là file đã được tạm dừng trước đó:

Chúc các bạn thành công!

Theo: Quantrimang

Bài viết liên quan