Cách xây dựng máy chủ radio phát trực tuyến bằng Icecast trên Linux

Tác giả sysadmin, T.Một 02, 2024, 02:18:43 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách xây dựng máy chủ radio phát trực tuyến bằng Icecast trên Linux


Bạn muốn tự lưu trữ đài phát thanh trực tuyến của riêng mình? Bạn đã bao giờ muốn thành lập đài phát thanh của riêng mình để bạn và bạn bè có thể thưởng thức chưa? Bạn có thể, với Icecast. Trong bài viết này, chúng tôi sẽ tạo một đài phát thanh trực tuyến đơn giản.

Icecast là máy chủ phát trực tiếp phương tiện truyền thông trực tiếp dựa trên tiêu chuẩn HTTP /mã nguồn mở được tạo bởi   Đăng nhập để xem liên kết Foundation. Nó được sử dụng cho mọi thứ, từ các dự án máy hát tự động và đài phát thanh gia đình nhỏ đến các đài phát thanh internet của công ty lớn và mọi thứ ở giữa. Để bắt đầu, tất cả những gì bạn cần là một máy tính và micrô được kết nối. Icecast có sẵn cho Linux/Unix và Windows. Các dự án tương tự tồn tại, chẳng hạn như Shoutcast, Snapcast và AzuraCast. Chúng tôi sẽ sử dụng Icecast ở đây vì đây là quy trình thiết lập đơn giản và phù hợp nhất cho đài phát thanh phát trực tuyến DIY.

Yêu cầu về giấy phép để chạy đài phát thanh Internet khác nhau tùy theo quốc gia. Nếu bạn định phát trực tuyến tài liệu có bản quyền, bạn phải xin giấy phép thích hợp từ cơ quan bản quyền và/hoặc xin phép rõ ràng từ tất cả (các) chủ sở hữu bản quyền. Vui lòng tham khảo luật pháp ở quốc gia của bạn để biết các yêu cầu cụ thể. Để biết thêm thông tin, hãy xem trang Wikipedia về phát sóng radio trên internet.

1. Cài đặt Icecast

Bạn có thể tải xuống Icecast bằng trình quản lý gói của bản phân phối, đây là phương pháp chúng tôi sẽ sử dụng trong bài viết này.

Giống như nhiều dự án phần mềm, nếu bạn muốn có phiên bản Icecast mới nhất, hãy tải xuống và xây dựng nguồn trực tiếp từ trang web chính thức hoặc sao chép kho lưu trữ Git công khai. Phiên bản 2.5 gần hoàn thiện tại thời điểm viết bài và có nhiều tính năng mới, bao gồm cả việc cải tiến hoàn toàn giao diện người dùng web—nhưng chưa được đưa vào các bản phân phối.

Đối với các bản phân phối dựa trên Debian, hãy cài đặt gói Icecast2 bằng apt:

Mã nguồn [Chọn]
sudo apt install icecast2
Đối với các bản phân phối Redhat, hãy sử dụng dnf để cài đặt gói Icecast:

Mã nguồn [Chọn]
sudo dnf install icecast
2. Cấu hình ban đầu

Vậy là bạn đã cài đặt xong Icecast. Giờ thì sao? Các bản phân phối Debian sẽ chạy tập lệnh sau khi cài đặt để giúp bạn định cấu hình mọi thứ. Ở hộp thoại đầu tiên, nhấn phím mũi tên trái để chọn "Có" rồi nhấn Enter:


Vì chúng tôi đang thiết lập luồng radio riêng tư nên chúng tôi sẽ nhập IP LAN của máy ở dấu nhắc tiếp theo:


Máy khách nguồn là chương trình bạn sử dụng để truyền các tệp phương tiện (hoặc âm thanh trực tiếp) đến máy chủ. Mật khẩu nguồn xác thực bằng Icecast để cho phép bạn bắt đầu phát trực tuyến. Tôi đề xuất một mật khẩu duy nhất chứ không phải mật khẩu mặc định (là "hackme"). Có lẽ một cái gì đó như:


Rơle rất hữu ích trong các thiết lập lớn hơn để phân phối tải người nghe đến nhiều máy chủ. Chúng tôi sẽ không thiết lập rơle ở đây nên bạn có thể nhập bất cứ thứ gì bạn muốn (nhưng một lần nữa tôi khuyên bạn nên thay đổi mặc định):


Cuối cùng, chúng tôi được yêu cầu nhập mật khẩu người dùng quản trị viên. Bạn sẽ sử dụng quyền này để truy cập phần quản trị giao diện web của Icecast. Thay đổi mặc định thành một cái gì đó độc đáo:


Các bản phân phối Redhat chỉ cần quay lại dấu nhắc lệnh sau khi cài đặt. Không có vấn đề gì lớn, chúng tôi sẽ thiết lập mọi thứ trực tiếp trong tệp cấu hình, nằm ở "/etc/icecast.xml". Hãy khởi động trình soạn thảo văn bản yêu thích của bạn và bắt đầu làm việc.

Cấu hình mặc định được cân nhắc kỹ lưỡng cho hầu hết các cài đặt đơn giản như của chúng tôi. Các nhà phát triển Icecast khuyến nghị cách tốt nhất là thay đổi ít nhất có thể và tinh chỉnh sau đó cho phù hợp với nhu cầu của bạn.

Đầu tiên, thay đổi mật khẩu từ mặc định của họ:


Tiếp theo, thay đổi địa chỉ liên kết thành địa chỉ IP LAN của máy chủ của bạn:


Lưu tệp cấu hình, sau đó khởi động lại Icecast để những thay đổi của chúng tôi có hiệu lực:


Hãy xác minh rằng chúng tôi đang hoạt động:

Mã nguồn [Chọn]
sudo systemctl status icecast.service

Tuyệt vời! Bây giờ Icecast đã hoạt động, hãy bắt đầu với ứng dụng khách nguồn của chúng ta.

3. Chọn nguồn khách hàng

Có 3 thành phần chính của phát trực tuyến Icecast: máy khách nguồn, máy chủ Icecast và máy khách nghe. Tất cả chúng đều độc lập với nhau và có thể (và nhiều khi) hoạt động trên các máy khác nhau. Ứng dụng khách nguồn là ứng dụng thực sự phát các tệp nhạc của bạn hoặc truyền phát âm thanh trực tiếp tới Icecast. Icecast sau đó phân phối luồng đó tới người nghe thông qua giao thức HTTP. Nó diễn ra một chút như thế này:


Việc chọn đúng ứng dụng khách nguồn cho thiết lập của bạn phụ thuộc vào nhiều yếu tố. Một số câu hỏi bạn có thể cân nhắc khi quyết định sẽ bao gồm:

  • Tôi có phát trực tiếp các tập tin âm thanh/âm nhạc được ghi sẵn không?
  • Tôi có phát trực tiếp âm thanh từ micrô và bảng điều khiển trộn không?
  • Tôi sẽ phát sóng từ máy tính để bàn/máy tính xách tay hay thiết bị di động (hoặc cả hai)?
  • Tôi có những hạn chế hoặc yêu cầu về hệ điều hành không?

Có một danh sách không đầy đủ các máy khách nguồn trên trang Ứng dụng Icecast.

Đối với hướng dẫn này, chúng ta sẽ sử dụng một ứng dụng khách nguồn giàu tính năng nhưng dễ sử dụng do Daniel Nöthen tạo ra có tên là Broadcast Sử dụng Công cụ này (viết tắt là NHƯNG—đừng hỏi tôi liệu từ viết tắt này có phải là cố ý hay không!). Chúng tôi sẽ sử dụng BUTT để phát trực tiếp từ micrô của chúng tôi tới Icecast. NHƯNG có sẵn cho Linux, macOS và Windows. Bạn có thể lấy nó từ trang tải xuống chính thức.

Cấu hình khá đơn giản. Từ cửa sổ chính, chọn nút "Cài đặt", sau đó trên tab "Chính", trong "Cài đặt máy chủ", nhấp vào nút "Thêm". Một cửa sổ mới bật lên để cấu hình máy chủ của bạn.

Chọn tên cho cấu hình của máy chủ này (hỗ trợ nhiều cấu hình máy chủ) và chọn nút radio "Icecast". Điền địa chỉ IP cũng như cổng (cổng mặc định là 8000) của máy chủ Icecast, cùng với mật khẩu nguồn của bạn. Trong "Icecast Mountpoint", thêm.OPUS vào cuối (Thêm tiện ích mở rộng giúp một số ứng dụng khách nghe xác định codec nào đang được sử dụng). Bỏ chọn "Người dùng Icecast" làm nguồn và bỏ chọn "Sử dụng giao thức Icecast cũ". Nhấp vào "Thêm" và sau đó, trong cửa sổ chính, nhấp vào "Lưu".


Thiết lập thử nghiệm ở đây sử dụng giao tiếp không phải TLS trên cổng 8000. Icecast hỗ trợ đầy đủ mã hóa SSL/TLS nhưng việc tạo chứng chỉ nằm ngoài phạm vi của hướng dẫn này. Tôi thực sự khuyên bạn nên sử dụng TLS nếu bạn quyết định làm cho luồng của mình có thể truy cập được từ mọi nơi bên ngoài mạng cục bộ, riêng tư của bạn!

Được rồi, hãy nói chuyện bằng âm thanh! Theo tinh thần của F/OSS, chúng tôi sẽ sử dụng Opus (một codec âm thanh hoàn toàn mở, miễn phí bản quyền, rất linh hoạt và được hỗ trợ rộng rãi, cũng được tạo bởi   Đăng nhập để xem liên kết) cho luồng của chúng tôi.

Từ "Cài đặt", nhấp vào tab "Âm thanh". Đặt "Lấy mẫu" thành 48000Hz (được Opus yêu cầu), xác minh "Thiết bị âm thanh chính" là nơi micrô của bạn được kết nối và đặt "Bộ giải mã phát trực tuyến" thành Opus:


Cuối cùng, quay lại tab "Chính" và nhấp vào "Lưu":


Từ đây bạn có thể đóng cửa sổ "Cài đặt". Khi bạn đã sẵn sàng, hãy nhấp vào nút "Phát" để bắt đầu luồng của bạn. Nếu bạn đã định cấu hình mọi thứ chính xác thì hiện tại bạn sẽ bắt đầu phát sóng radio trên máy chủ của mình!


Tuyệt vời! Bây giờ, hãy đăng nhập vào giao diện người dùng web Icecast tại "http://LAN_IP:8000/admin/" và nhập "admin" cho tên người dùng cùng với mật khẩu quản trị viên Icecast đã định cấu hình của bạn:


Chọn "Danh sách điểm gắn kết" từ trang Quản trị chính:


Sao chép siêu liên kết "M3U":


Liên kết này, trừ phần mở rộng.M3U, là liên kết bạn sẽ sử dụng để nghe bằng trình duyệt web của mình.

4. Chọn khách hàng là người nghe

Các client Listener nói chung yêu cầu rất ít cấu hình. Nhờ âm thanh HTML5, bạn có thể chỉ cần trỏ trình duyệt web tới URL luồng mới của mình. Đây là danh sách các định dạng mã hóa âm thanh HTML5 được trình duyệt hỗ trợ.

Sử dụng trình duyệt web, dán URL luồng bạn đã sao chép ở trên vào thanh địa chỉ (một lần nữa, xóa phần mở rộng.M3U) và nhấn Enter.


Bạn có nghe thấy luồng của bạn không? Đó là Icecast tại nơi làm việc.

5. Cấu hình bổ sung

Icecast có nhiều tính năng nâng cao. Một số trong số đó là:

  • Nhiều luồng đồng thời trên một máy chủ
  • Một hệ thống "dự phòng" có thể di chuyển người nghe giữa các điểm gắn kết theo chương trình
  • Chức năng chuyển tiếp, phân phối luồng của bạn trên nhiều máy chủ
  • "Xác thực URL", xác thực người dùng dựa trên máy chủ/cơ sở dữ liệu chuyên dụng (v2.5+)
  • Khả năng chroot tích hợp
  • Xuất bản luồng của bạn trong thư mục Icecast YP
  • Chế độ tương thích Shoutcast

Những tính năng này và nhiều tính năng khác được giải thích rất rõ ràng trong tài liệu chính thức của Icecast.

Bạn cũng có thể sử dụng tính năng chuyển tiếp cổng để truy cập luồng của mình từ bên ngoài mạng cục bộ.

6. Quảng bá trạm của bạn

Quảng cáo thực sự phụ thuộc vào loại đài bạn tạo. Nếu chỉ để giải trí thì kể với một người bạn tốt là đủ! Nếu bạn muốn được hiển thị nhiều hơn: liệt kê trong thư mục Icecast, tạo một trang web chất lượng xung quanh nó và thực hiện một chiến dịch tiếp thị toàn diện trên mạng xã hội là một cách chắc chắn để thu hút sự chú ý trực tuyến.

Thông tin quan trọng nhất tôi có thể cung cấp cho bạn khi xây dựng đài phát thanh phát trực tuyến đầu tiên của bạn là hãy vui vẻ ! Kết quả là rất bổ ích và đầy những khoảnh khắc thú vị mà bạn sẽ trân trọng mãi mãi.