Giải thích

Castor truyền video web lên TV mà không chiếm màn hình PC: đổi lại điều gì?

Castor tách luồng video khỏi desktop để phát lên TV qua DLNA. Đổi lại, người dùng phải xử lý tương thích định dạng, mạng nội bộ và nguồn nội dung hợp pháp.

Tóm tắt nhanh

  • Castor là công cụ mã nguồn mở truyền luồng video từ web lên TV, thay vì phản chiếu toàn bộ desktop.
  • Chrome tìm video trên trang; FFmpeg xử lý định dạng khi cần. Giải phóng màn hình không đồng nghĩa máy tính ngừng xử lý.
  • DLNA là lựa chọn thực tế hơn; hỗ trợ Chromecast và Roku còn thử nghiệm. Castor từ chối video có DRM.
  • Người dùng có thể đưa xử lý media sang NAS, nhưng phải bảo đảm TV truy cập được máy phục vụ nội dung.

Đưa một video lên TV không nên buộc máy tính dành riêng màn hình cho nó. Phản chiếu desktop làm được việc ấy, nhưng cũng đưa cả những gì xuất hiện trên màn hình sang TV. Castor chọn đối tượng khác để truyền: luồng video, không phải hình ảnh của desktop.

Sự khác biệt này hữu ích khi muốn xem nội dung trên màn hình lớn mà máy tính vẫn dùng cho công việc. Tuy nhiên, đây không phải cách biến mọi trang web thành ứng dụng TV. Castor do Stupside phát triển bằng Go, vận hành qua dòng lệnh và dựa vào các công cụ xử lý media bên ngoài. Giá trị của nó nằm ở việc tách nội dung khỏi giao diện đang mở, còn người dùng phải giải quyết phần tương thích phía sau.

Tách luồng video giúp đa nhiệm, không bảo đảm giữ nguyên chất lượng

Castor chạy trên máy tính để truyền video lên TV
Truyền riêng video giúp màn hình máy tính tiếp tục phục vụ công việc thay vì phản chiếu desktop lên TV.

Lợi ích rõ nhất của Castor là TV không cần nhìn thấy desktop để phát video. Một URL trỏ trực tiếp tới nội dung và một trang web chứa trình phát là hai đầu vào khác nhau. Với trang web, Castor dùng Chrome chạy không có cửa sổ giao diện để tìm luồng phát. Với URL video trực tiếp, công đoạn tìm trong trang không cần thiết.

Lệnh Castor truyền URL video trong terminal
URL video trực tiếp và trang có trình phát đi qua hai cách xử lý khác nhau trong Castor.

Điều này thay đổi cách sử dụng máy tính. Người dùng có thể chuyển cửa sổ, mở tài liệu và tiếp tục làm việc mà nội dung đó không trở thành hình ảnh trên TV. Đây cũng là lợi ích về riêng tư trong phòng khách: phản chiếu cả màn hình có thể đưa thông báo hoặc tài liệu đang mở lên màn hình chung; truyền riêng luồng video tránh phụ thuộc vào những gì desktop hiển thị.

Nhưng màn hình được giải phóng và máy tính được giải phóng là hai chuyện khác nhau. Khi phải phục vụ hoặc chuyển mã video, máy chạy Castor vẫn có việc cần làm. Tài liệu dự án cho biết quá trình mã hóa dùng bộ mã hóa GPU nếu hoạt động được, rồi chuyển sang xử lý bằng phần mềm khi cần. Vì vậy, không nên hiểu Castor là cách phát video mà PC hoàn toàn không tốn tài nguyên.

Chất lượng cũng phụ thuộc cách truyền. Nếu TV xử lý được luồng gốc, việc tránh ghi lại hình ảnh desktop có thể bỏ được một công đoạn không cần thiết. Nếu định dạng không phù hợp, chuyển mã vẫn có thể thay đổi hình ảnh. Độ phân giải của màn hình PC không còn là yếu tố quyết định duy nhất, nhưng codec, thiết lập Castor và khả năng của thiết bị nhận vẫn quan trọng.

Theo tài liệu Castor trên GitHub, giới hạn chiều cao video mặc định là 1080 pixel; người dùng có thể đặt cast.max_height thành 2160. Công cụ chọn luồng cao nhất trong giới hạn và giảm kích thước video cao hơn khi biết kích thước nguồn. Tăng giới hạn không tạo thêm chi tiết cho video vốn có độ phân giải thấp, cũng không bảo đảm mọi TV sẽ phát tốt nguồn lớn hơn.

Castor phù hợp với nội dung video có sẵn hơn là nhu cầu đưa mọi hoạt động máy tính lên TV. Trình chiếu một ứng dụng, chia sẻ thao tác desktop hoặc đưa hình ảnh game lên màn hình lớn là bài toán khác. Chọn công cụ theo đối tượng cần truyền sẽ hợp lý hơn việc xem Castor như bản thay thế toàn bộ screen mirroring.

TV có DLNA là điểm khởi đầu, tên hãng chưa đủ để kết luận tương thích

TV hiển thị yêu cầu nhận nội dung từ máy tính
TV cần nhận được yêu cầu phát; kết nối internet được chưa đủ để xác nhận đường truyền media hoạt động.

Tương thích cần được kiểm tra ở đúng thiết bị, không suy ra từ logo trên TV. Castor tập trung vào DLNA/UPnP MediaRenderer, tức thiết bị nhận có thể được điều khiển để phát media. Một TV kết nối internet được chưa có nghĩa nó cung cấp đúng khả năng nhận mà Castor cần.

Castor quét thiết bị nhận trong mạng nội bộ
Quét thiết bị là bước kiểm tra liên lạc trong mạng nhà trước khi xử lý định dạng video.
Giao thứcThiết bị đíchTrạng thái trong tài liệu Castor
DLNA/UPnP MediaRenderer:1Smart TV và trình phát như Kodi, VLC, PlexĐã thử trên Samsung
ChromecastThiết bị Google CastThử nghiệm, chưa thử trên phần cứng thật
RokuTV và đầu phát Roku qua kênh cài bổ sungThử nghiệm, chưa thử trên phần cứng thật

Số liệu: tài liệu dự án Castor trên GitHub.

Selecting a cast target in the castor TUI
Chọn thiết bị nhận là một khâu riêng với việc tìm và xử lý video.

Bảng này cho thấy DLNA là hướng nên kiểm tra trước. Danh sách Smart TV phổ biến không phải chứng nhận rằng mọi đời máy của mỗi hãng đều hoạt động. Chromecast hay Roku cũng chưa nên là lý do duy nhất để đầu tư thời gian thiết lập Castor cho một hệ thống đang dùng ổn định.

Lệnh castor scan giúp tìm thiết bị trong mạng nội bộ. Tuy nhiên, tài liệu Castor nêu rõ khả năng khám phá thiết bị không đi qua các VLAN hoặc subnet khác nhau. Trong nhà có mạng khách riêng, TV và máy tính có thể đều vào internet nhưng không tìm thấy nhau. Khi đó, kiểm tra cách chia mạng có ích hơn việc liên tục đổi URL video.

Dự án cho phép khai báo địa chỉ thiết bị bằng trường host để bỏ qua bước khám phá tự động. Cách này giải quyết chuyện tìm tên thiết bị, không tự mở đường truyền bị mạng chặn. TV vẫn phải truy cập được địa chỉ phục vụ media; máy tính cũng cần liên lạc được với thiết bị nhận.

Với người dùng tại Việt Nam có router riêng hoặc nhiều điểm phát Wi-Fi, nên xác nhận kết nối nội bộ trước khi nghĩ tới mua thêm đầu phát. Chỉ cần TV đã có đúng khả năng nhận DLNA, phần mềm có thể tận dụng thiết bị sẵn có. Ngược lại, Castor không bổ sung phần cứng mạng hay khả năng nhận media cho một TV không có chúng.

Dòng lệnh không khó nhất; các thành phần phải phối hợp mới là việc cần làm

Thiết lập PATH của Castor trên Windows
Đặt Castor vào PATH giúp hệ thống tìm được chương trình khi gọi lệnh, nhưng vẫn cần đủ các công cụ phụ thuộc.

Biết gõ lệnh Castor chưa đủ để có hình và tiếng trên TV. Công cụ này điều phối một chuỗi xử lý: tìm luồng, đọc định dạng, chọn cách truyền và chuyển mã nếu cần. Một lỗi ở khâu nhận diện media khác với lỗi kết nối TV, nên chẩn đoán theo từng khâu sẽ đỡ mất thời gian hơn thử lại toàn bộ từ đầu.

File cấu hình YAML của Castor
File cấu hình xác định thiết bị đích và các thiết lập phát, không thay thế việc kiểm tra tương thích video.
Thành phầnYêu cầu trong tài liệu CastorCông việc
Chrome hoặc ChromiumPhiên bản gần đâyTìm luồng video trong trang
FFmpeg7.1 trở lênChuyển đổi video cho thiết bị nhận
ffprobe7.1 trở lênĐọc định dạng media
Castor và công cụ phụ thuộcHệ thống tìm được qua PATHGọi đúng chương trình khi chạy lệnh

Số liệu: tài liệu dự án Castor trên GitHub.

PATH là danh sách thư mục hệ điều hành dùng để tìm chương trình. Đặt Castor vào PATH giúp gọi lệnh từ terminal, nhưng không thay việc cài FFmpeg, ffprobe và trình duyệt cần thiết. Đây là lý do một máy chạy được castor scan vẫn có thể gặp lỗi khi bắt đầu phát.

Hai lệnh nên phân biệt là castor cast player <url> cho trang chứa trình phát và castor cast url <url> cho URL luồng hoặc video trực tiếp. Dán địa chỉ của cả trang vào nhánh dành cho luồng trực tiếp không biến địa chỉ đó thành file video. Tài liệu cũng cung cấp tùy chọn --dry-run để in các luồng tìm được thay vì phát, hữu ích khi muốn biết lỗi nằm trước hay sau khâu trích xuất.

Castor đọc config.yaml để xác định thiết bị và các tùy chọn. Với phát bằng dòng lệnh, mục thiết bị là phần cần khai báo; những thiết lập khác có giá trị mặc định. Khi thay đổi cấu hình, nên bắt đầu với đầu vào trực tiếp đã được phép sử dụng. Nếu đầu vào này hoạt động nhưng một trang web không hoạt động, phạm vi cần kiểm tra đã thu hẹp về khâu tìm video trên trang.

Cũng không nên xem khả năng dùng Chrome headless là lời hứa đọc được mọi website. Tài liệu hiện tại yêu cầu video của trang có thể bắt đầu mà không cần thao tác bấm và từ chối luồng có DRM. Một dịch vụ trả phí cho phép xem trong ứng dụng chính thức không đồng nghĩa nó cho phép công cụ bên ngoài trích xuất luồng.

Với file nằm trên máy, cách làm được mô tả trong bài XDA là phục vụ file qua HTTP rồi đưa URL đó vào Castor. Cách này phù hợp cho một video riêng lẻ, nhưng máy phục vụ file phải tiếp tục hoạt động. Chỉ nên chia sẻ thư mục media cần dùng trong mạng tin cậy, thay vì mở một thư mục chứa cả tài liệu cá nhân.

TMDB giúp tìm tên phim, không tạo ra quyền xem hay phụ đề dịch sẵn

Giao diện duyệt phim của Castor trong terminal
Giao diện duyệt phim hiển thị dữ liệu tác phẩm; nội dung để phát vẫn đến từ nguồn người dùng cấu hình.

Giao diện duyệt phim của Castor là công cụ chọn nội dung, không phải một dịch vụ cung cấp phim. TMDB giúp nhận diện tác phẩm bằng tên, metadata và poster. Nguồn video thực tế đến từ các địa chỉ người dùng tự cấu hình; dự án không đóng gói sẵn danh sách nguồn hay thư viện để xem.

Browsing titles in the castor TUI
Giao diện Castor tách thao tác chọn nội dung và thiết bị khỏi màn hình video đang xem.

Theo tài liệu Castor, lệnh duyệt tương tác castor cast cần khóa API TMDB. Khóa đó không cần cho việc phát trực tiếp một URL. Vì thế, nếu chỉ muốn chuyển một video hợp pháp lên TV, người dùng không phải thiết lập thêm tính năng tìm phim để hoàn thành việc đơn giản ấy.

Featured image
Giao diện Castor tách thao tác chọn nội dung và thiết bị khỏi màn hình video đang xem.

Ranh giới giữa tìm tên phim và có quyền phát phim rất quan trọng. Kết quả tìm kiếm hiện poster đẹp không chứng minh nguồn video hợp pháp. Castor từ chối DRM, nhưng người dùng vẫn cần tuân thủ quyền truy cập và điều khoản của trang cung cấp nội dung; không có DRM cũng không tự biến nội dung thành thứ được phép dùng tùy ý.

Phụ đề là một phần xử lý khác. Castor có thể dùng whisper.cpp tạo chữ từ âm thanh rồi gắn trực tiếp vào khung hình video được phục vụ. Chữ đã gắn vào hình không còn giống một track phụ đề riêng để TV tùy ý bật tắt. Do đó, nhu cầu chỉ xem phụ đề có sẵn và nhu cầu nhận dạng giọng nói tự động nên được cân nhắc riêng.

Tài liệu dự án nêu mô hình mặc định cho tiếng Anh là ggml-tiny.en; ngôn ngữ khác hoặc chế độ tự nhận diện dùng mô hình đa ngôn ngữ phù hợp. Mô hình chỉ dành cho tiếng Anh không nhận cấu hình ngôn ngữ khác. Người dùng Việt Nam cần phân biệt tiếng nói được nhận dạng với tiếng muốn đọc: tạo phụ đề từ lời thoại không tự đồng nghĩa dịch lời thoại sang tiếng Việt.

Việc gắn phụ đề áp dụng cho video được Castor phục vụ, chẳng hạn đường phát DLNA, không áp dụng theo cách đó cho Chromecast/Roku tự lấy nội dung. Vì vậy, lựa chọn giao thức ảnh hưởng cả tính năng phụ đề chứ không chỉ cách tìm TV. Nếu phụ đề tự động là lý do chính để dùng Castor, cần kiểm tra đường phát thực tế trước.

Đưa xử lý sang NAS hợp lý hơn việc chỉ giải phóng màn hình laptop

Terminal phục vụ video cục bộ và lệnh truyền bằng Castor
Phục vụ file qua HTTP tạo URL để truyền nội dung, nhưng máy cung cấp file vẫn phải duy trì dịch vụ.

Với gia đình đã có NAS, tách máy điều khiển khỏi máy xử lý media là lợi ích đáng chú ý hơn giao diện terminal. Laptop có thể làm nhiệm vụ chọn nội dung và điều khiển TV, còn máy chủ chịu công việc phục vụ hoặc chuyển mã. Đây là cách giảm phụ thuộc vào laptop trong lúc phát, thay vì chỉ giấu cửa sổ video khỏi desktop.

Castor hỗ trợ chạy media server ở máy khác. Tài liệu dự án mô tả máy tính khám phá và điều khiển TV, trong khi server xử lý media; đóng terminal có thể để phát tiếp, còn Ctrl+C dừng phát. Cấu hình server cần địa chỉ TV truy cập được và token bảo vệ. Chạy trên NAS không tự động có nghĩa địa chỉ mà container thấy cũng là địa chỉ TV gọi được.

Đường truyền của file gốc vẫn cần tồn tại. Nếu video chỉ được phục vụ từ laptop, đưa khâu chuyển mã sang NAS chưa loại bỏ được sự phụ thuộc vào laptop đó. Muốn tách thực sự, cần xem cả nơi giữ nội dung và nơi xử lý, không chỉ nơi chạy lệnh điều khiển.

Dự án cung cấp container chứa Chrome, FFmpeg và ffprobe, nhưng ghi rõ cấu hình Compose hướng tới host networking trên Linux để khám phá thiết bị và cung cấp URL media trong LAN. Với macOS hoặc Windows, tài liệu khuyên dùng bản chạy trực tiếp cho khám phá thiết bị. Đây không phải trường hợp cài container rồi mặc nhiên có kết nối như một ứng dụng desktop.

Mã hóa trên NAS cũng có đánh đổi. Nếu bộ mã hóa phần cứng phù hợp không dùng được, quá trình sẽ chạy bằng phần mềm. Một NAS đang phục vụ lưu trữ có thể phải gánh thêm xử lý video; chọn máy chủ chỉ vì nó luôn bật chưa đủ để bảo đảm phát ổn định. Nên kiểm tra với đúng định dạng nội dung cần xem trước khi chuyển cả nhu cầu phát media sang đó.

Castor là phần mềm mã nguồn mở miễn phí để tải về và sử dụng, nhưng thời gian cấu hình và thiết bị phục vụ nội dung vẫn là chi phí thực tế. Với người đã có TV nhận DLNA và quen quản lý mạng nhà, đây là cách đáng cân nhắc để đưa video hợp pháp lên màn hình lớn mà không phát cả desktop. Nếu ứng dụng TV chính thức đã xem tốt nội dung cần dùng, thêm chuỗi Chrome–FFmpeg–server chỉ khiến hệ thống có nhiều chỗ cần bảo trì hơn.

Lựa chọn hợp lý là bắt đầu từ một URL trực tiếp và một TV đã tìm thấy trong LAN. Khi đường phát cơ bản hoạt động, hãy bổ sung phụ đề hay đưa xử lý sang NAS theo nhu cầu thật. Castor có ích nhất khi giải quyết một khoảng trống cụ thể của hệ thống đang có, không phải khi bị giao nhiệm vụ thay thế mọi dịch vụ streaming.

Nguồn tham khảo: Castor / Stupside trên GitHub, XDA Developers, lavx.hu.

Bài viết mới nhất