Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
82

Sản phẩm

Castor: Công cụ dòng lệnh mã nguồn mở giúp trình chiếu video từ trình duyệt lên TV

(giờ Việt Nam)

Tóm tắt AI

Castor là công cụ dòng lệnh cho phép truyền phát video từ trình duyệt lên TV qua giao thức DLNA/UPnP hoặc Chromecast. Nó tự động trích xuất luồng video, chuyển mã bằng ffmpeg và hỗ trợ tạo phụ đề linh hoạt.

Bản dịch AI

GitHub - stupside/castor: Point it at any web page and it finds the video, extracts the stream, transcodes it and casts in real time to your TV. It even burns subtitles….Latest ReleaseGo ReferenceHomebrewLicenseBuild Status

Smart TV không hỗ trợ truyền phát (cast) video web tùy ý, còn tính năng phản chiếu màn hình (screen mirroring) thì thường bị giật lag và giảm độ phân giải. Castor truyền trực tiếp luồng video gốc từ terminal của bạn với chất lượng đầy đủ.

Chỉ cần trỏ Castor vào trang web bạn đang xem hoặc một URL luồng trực tiếp, nó sẽ tự tìm video, trích xuất luồng, chuyển mã (transcode) cho TV và truyền phát theo thời gian thực. Nó cũng có thể phân giải ID từ IMDB/TMDB dựa trên các nguồn bạn tự cấu hình và chèn phụ đề tự động vào video.

Để trích xuất, công cụ này khởi chạy Chrome ở chế độ headless, theo dõi lưu lượng mạng thông qua Chrome DevTools Protocol, sau đó chạy một quy trình hành động ngắn để bắt đầu phát: nhấp vào trang, điều hướng vào iframe lớn nhất và nhấp lần nữa như một phương án dự phòng. Cách này hoạt động trên các trang cho phép phát tự động và không áp dụng được cho mọi trang web.

Một công cụ truyền phát đa năng: nó chỉ truyền những gì bạn trỏ tới. Xem Mục đích và tuyên bố từ chối trách nhiệm.

Chạy lệnh castor cast để duyệt các tiêu đề và truyền phát mà không cần rời khỏi terminal.

Cài đặt

Cách khuyến nghị để chạy Castor là sử dụng tệp nhị phân gốc (native binary). Nó chạy trực tiếp trên máy của bạn nên sẽ dùng chung mạng với TV (yêu cầu để khám phá thiết bị). Nó yêu cầu Chrome/Chromium (để trích xuất headless), ffmpeg (để chuyển mã) và ffprobe (để phát hiện định dạng) trong PATH của bạn. Một Docker image dành riêng cho Linux tích hợp sẵn cả ba công cụ này cũng đã có sẵn.

Homebrew (macOS)

Từ mã nguồn

Cần có Go 1.26+ và cmake (các liên kết whisper.cpp là cgo và liên kết với một tệp libwhisper.a được xây dựng cục bộ):

Lệnh go install sẽ không hoạt động: các liên kết whisper.cpp được vendored đi kèm thông qua một lệnh replace cục bộ và cần tệp thư viện tĩnh đã được xây dựng sẵn đó.

Bắt đầu nhanh

Chỉ định TV mà Castor sẽ sử dụng: tìm tên TV bằng lệnh castor scan và thêm vào tệp config.yaml.

Bây giờ, hãy truyền phát trang bạn đang xem hoặc URL luồng video bạn có:

Đối với trình duyệt tương tác (cho phép tìm kiếm tiêu đề và truyền phát cho bạn), hãy thêm khóa TMDB và một nguồn (xem phần Cấu hình), sau đó chạy castor cast:

Chạy castor --help để xem mọi lệnh và các cờ (flag) của chúng.

Cấu hình

Castor đọc tệp config.yaml từ thư mục hiện tại hoặc đường dẫn được truyền qua --config. Khóa duy nhất bắt buộc là thiết bị để truyền phát (được hiển thị trong phần Bắt đầu nhanh); mọi thông số kỹ thuật (thời gian chờ, thăm dò, ghi hình, chuyển mã, giao diện mạng, khám phá Chrome) đều đã có giá trị mặc định hoạt động tốt. Hãy giữ các thông tin bảo mật bên ngoài tệp đã commit: đặt chúng vào tệp config.local.yaml (đã được git-ignore) để ghi đè lên tệp chính, hoặc sử dụng các biến môi trường CASTOR_SECTION__FIELD. Xem SECURITY.md.

Nguồn (Sources)

Các lệnh cast movie, cast episode và trình duyệt tương tác sẽ phân giải ID tiêu đề dựa trên các nguồn bạn cấu hình. Castor không tích hợp sẵn nguồn nào, vì vậy bạn cần tự thêm nguồn của mình (các trang web mà bạn được phép sử dụng). Không có danh mục hay tra cứu sẵn: Castor sẽ thay thế ID vào các mẫu (template) bạn viết, thêm tiền tố cho mỗi proxy của bạn, mở trang kết quả, sau đó trích xuất luồng giống hệt như lệnh cast player. Ví dụ: castor cast movie tt12300742 sẽ mở https://your-source.example/embed/movie/tt12300742.

TMDB

Trình duyệt tương tác (castor cast) sử dụng khóa API TMDB để tìm kiếm tiêu đề; các lệnh trực tiếp như cast movie <id> không cần khóa này. Hãy lấy khóa miễn phí từ themoviedb.org và lưu vào tệp config.local.yaml:

Phụ đề

Phụ đề tự động được tạo bằng whisper và chèn trực tiếp vào video. Mặc định là tắt:

Thiết bị hỗ trợ

DLNA / UPnP

Bất kỳ TV nào triển khai cấu hình DLNA/UPnP MediaRenderer:1 đều hoạt động, bao gồm hầu hết mọi Smart TV được bán trong thập kỷ qua: Samsung (đã kiểm tra), LG, Sony Bravia, Panasonic Viera, Philips, Hisense, TCL, VIZIO, Sharp. Các trình phát mạng như Kodi, VLC và Plex cũng hoạt động. Chạy castor scan để liệt kê các thiết bị trên mạng của bạn.

Chromecast

Thử nghiệm: đã triển khai nhưng chưa được kiểm thử. Rất hoan nghênh các đóng góp.

Docker (tùy chọn)

Một giải pháp thay thế chỉ dành cho Linux, tích hợp sẵn Chrome, ffmpeg và ffprobe.

Cảnh báo

Docker chỉ có thể kết nối với TV từ máy chủ Linux trên cùng mạng LAN. Việc khám phá thiết bị sử dụng SSDP multicast và TV truyền ngược lại từ máy chủ phát lại (replay server) của Castor, cả hai đều không hoạt động qua mạng bridge của Docker, vì vậy bắt buộc phải dùng --network host. Trên Docker Desktop (macOS/Windows), cờ này không có tác dụng: container sẽ nằm trên subnet máy ảo nội bộ của Docker Desktop (ví dụ: 192.168.65.x) thay vì mạng LAN của bạn, do đó lệnh scan sẽ không tìm thấy gì và lệnh cast sẽ thất bại với lỗi thiết bị "..." (loại dlna) không tìm thấy. Hãy chạy tệp nhị phân gốc trên macOS/Windows thay thế, hoặc bridge một máy ảo Linux vào mạng LAN của bạn (ví dụ: Lima + socket_vmnet).

Trên máy Linux hoặc NAS cùng mạng với TV, image ghcr.io/stupside/castor được xây dựng sẵn sẽ giúp bạn không cần phải cài đặt thủ công các phụ thuộc:

Công cụMã nguồn mởStreamingTerminalTiện ích
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.