ฉันจะตั้งค่าเซิร์ฟเวอร์ Icecast สำหรับการกระจายเสียงในเครือข่ายของฉันได้อย่างไร


63

การส่งสัญญาณเสียงออกจากการ์ดเสียงในฐานะวิทยุทางอินเทอร์เน็ตเป็นวิธีที่เชื่อถือได้ในการส่งสัญญาณเสียงในเครือข่าย สิ่งนี้สามารถใช้เพื่อส่งสัญญาณเสียงใน LAN ไร้สายไปยังคอมพิวเตอร์เครื่องอื่นหรืออุปกรณ์อื่น ๆ ที่สามารถเล่นสตรีมวิทยุอินเทอร์เน็ตได้

อย่างไรก็ตามฉันไม่พบคำแนะนำทีละขั้นตอนอย่างง่ายเกี่ยวกับวิธีตั้งค่านี้

คำตอบ:


75

ออกอากาศเสียงด้วย Icecast2


1. ติดตั้งIcecast2 ติดตั้ง icecast2


2. แก้ไขการกำหนดค่า Icecast2

เปิดไฟล์/etc/icecast2/icecast.xmlในฐานะ root ในโปรแกรมแก้ไข เพื่อเหตุผลด้านความปลอดภัยคุณควรตั้งรหัสผ่านใน<authentication>ส่วน:

<admin-user>admin</admin-user>
<admin-password>hackme</admin-password> 

หากคุณเปลี่ยน<source-password>หรือ<relay-password>คุณต้องทำเช่นนั้นในแหล่งที่มาหรือด้านรีเลย์เช่นกัน นั่นหมายถึงปล่อยให้เป็นค่าเริ่มต้นหรือเปลี่ยนแปลงในไฟล์ ices2.xml (ดูด้านล่าง) เช่นกัน จะต้องทำเช่นเดียวกันในไฟล์กำหนดค่า Ices หรือ Darkice

คุณต้องกำหนดชื่อโฮสต์ที่สามารถเข้าถึงสตรีมของคุณ:

<hostname>localhost</hostname>

ปล่อยให้เป็นlocalhost (ไม่จำเป็นต้องให้ IP ที่ได้รับการแก้ไขแล้ว) เมื่อคุณต้องการสตรีมในเครือข่ายท้องถิ่นของคุณ พอร์ตเริ่มต้นที่จะรับฟังคือ 8000 เปลี่ยนเฉพาะเมื่อจำเป็นเท่านั้น


3. แก้ไขค่าเริ่มต้น

เปิด/etc/default/icecast2ไฟล์ในฐานะ root ในโปรแกรมแก้ไข บรรทัดสุดท้ายต้องเปลี่ยนเป็น

ENABLE=true

นั่นคือทั้งหมดสำหรับ Icecast2 แน่นอนว่ายังมีการตั้งค่าอีกมากมายที่คุณสามารถเล่นได้ ในไฟล์กำหนดค่ามีหมายเหตุอธิบายเกี่ยวกับพารามิเตอร์

4. เริ่ม / หยุด Icecast

เซิร์ฟเวอร์เริ่มทำงานและหยุดทำงานโดยคำสั่งต่อไปนี้:

/etc/init.d/icecast2 start
/etc/init.d/icecast2 stop

ในขณะที่ทำงานเซิร์ฟเวอร์ Icecast สามารถปกครองจากเบราเซอร์ใด ๆhttp://localhost:8000/admin/หลังจากที่ป้อนข้อมูลประจำตัวของผู้ดูแลระบบที่กำหนดไว้ในขั้นตอนที่ 1 เอกสารเพิ่มเติมสามารถดูได้จากIcecast.org

Stream2ipเป็นส่วนหน้าแบบกราฟิกเพื่อเริ่มต้นและหยุดการสตรีมได้อย่างรวดเร็วซึ่งการตั้งค่าพื้นฐานสำหรับ Ices2, Ices หรือ Darkice เสร็จเรียบร้อยแล้ว


Ices2 ติดตั้ง ices2สำหรับการสตรีมเสียง OGG Vorbis จากการ์ดเสียงภายใน

หากต้องการตั้งค่า pulseaudio เพื่อเปิดใช้งานการบันทึกจากการ์ดเสียงดูหมายเหตุสำหรับ Darkice ด้านล่าง

สร้างไดเรกทอรีสำหรับ Ices2

mkdir /var/log/ices   # in case you need logfiles.  
mkdir /etc/ices2      # for putting ices stuff in.  

แก้ไขการกำหนดค่า Ices2 .xml

Ices2 จะทำงานโดยใช้ไฟล์. xml สำหรับการตั้งค่า ตัวอย่างของการกำหนดค่า Verbous /usr/share/doc/ices2/examples/สามารถพบได้ใน ไฟล์เหล่านี้ต้องได้รับการแก้ไขเพื่อตอบสนองความต้องการของคุณและสามารถคัดลอกได้ทุกที่ที่ดีที่สุดในโฮมไดเร็กตอรี่ของคุณ ขึ้นอยู่กับไฟล์กำหนดค่า Ices2 ใช้เพลย์ลิสต์ในรูปแบบOgg Vorbis ( ices-playlist.xml) หรือเอาต์พุตจากการ์ดเสียงของคุณ ( ices-alsa.xml) เป็นแหล่งสตรีมสำหรับ Icecast2

ในส่วนที่<input>คุณอาจต้องเปลี่ยนอุปกรณ์หากคุณได้ตั้งค่าระบบเสียงของคุณเพื่อ PulseAudio เมื่อต้องการทำสิ่งนี้ให้แก้ไขบรรทัดที่เกี่ยวข้องกับ:

<param name="device">pulse</param>

ชื่อของสตรีมสำหรับไคลเอ็นต์ที่รับถูกกำหนดไว้ในส่วนต่อไปนี้

<mount>/example1.ogg</mount>

เริ่มการสตรีม

สตรีมจากการ์ดเสียงของคุณจะเริ่มต้นด้วยการรันเซิร์ฟเวอร์ Icecast2 เป็นอันดับแรกจากนั้นเรียกใช้ Ices2 โดยใช้คำสั่งต่อไปนี้:

/etc/init.d/icecast2 start
ices2 /home/user/somewhere/ices-pulse.xml # or any other name from .xml file

รับการตั้งค่า

ที่ด้านรับวิทยุ "สถานี" ของคุณจะเปิดเพลง: <serverIP>:8000/example1.oggที่ไหน<serverIP>คือ IP ของเซิร์ฟเวอร์สตรีมของคุณตามด้วยพอร์ตที่คุณกำหนดไว้ในไฟล์ icecast.xml (ค่าเริ่มต้น 8000)

ยุติการสตรีม

สตรีมจะถูกยกเลิกโดยการฆ่า Ices2 และ / หรือหยุดการทำงานเซิร์ฟเวอร์ Icecast2:

killall ices2
/etc/init.d/icecast2 stop

Icesสำหรับการกระจายรายการเพลง MP3

การออกอากาศเพลย์ลิสต์ที่มีไฟล์ MP3ไม่สามารถทำได้ด้วย Ices2 เราจำเป็นต้องติดตั้งICESซึ่งเราจะต้องติดตั้งจากแหล่ง

หลังจากตั้งค่าไฟล์การกำหนดค่าพร้อมที่อยู่เซิร์ฟเวอร์รหัสผ่านและคุณสมบัติการสตรีม (ตัวอย่างเอกสารที่ดีจะพบได้ใน/usr/share/doc/ices/examples) เราสามารถสตรีมไฟล์เสียง mp3 จากเพลย์ลิสต์ (เช่นในรูปแบบ. m3u) ผ่านเซิร์ฟเวอร์ Icecast2 โดย:

/etc/init.d/icecast2 start
ices -c <path_to_config_file> -F <path_to_playlist>

man icesสำหรับตัวเลือกเพิ่มเติมอ่านเอกสารในหน้าคนที่ซับซ้อนมากจาก


Darkice ติดตั้ง darkiceสำหรับการสตรีมสด

เราสามารถสตรีมการส่งออกของการ์ดเสียงท้องถิ่นเป็น OGG Vorbis หรือเป็น mp3 กระแสใช้Darkice ในการเปิดใช้งานการสตรีมมิ่งการ์ดเสียงเราอาจต้องกำหนดอุปกรณ์บันทึกสำหรับ Darkice ใน pulseaudio ก่อน ซึ่งสามารถทำได้ด้วยpavucontrol ติดตั้ง pavucontrolในการบันทึกแท็บเลือกMonitor of <your soundcard>สำหรับ"ALSA ปลั๊กอิน [darkice]"

ไฟล์การกำหนดค่า (ตัวอย่างที่มีเอกสารที่ให้มา/usr/share/doc/darkice/examples) จะต้องมีการปรับให้เข้ากับเซิร์ฟเวอร์ Icecast และสภาพแวดล้อมของเครื่องเสียง:

[general]
duration        = 0      # duration in s, 0 forever
bufferSecs      = 1      # buffer, in seconds
reconnect       = yes    # reconnect if disconnected

[input]
device          = default # or `pulse' for Pulseaudio
sampleRate      = 44100   # sample rate 11025, 22050 or 44100
bitsPerSample   = 16      # bits
channel         = 2       # 2 = stereo

[icecast2-0]
bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average)
quality         = 1.0       # 1.0 is best quality
format          = mp3       # format. Choose `vorbis' for OGG Vorbis
bitrate         = 256       # bitrate
server          = localhost # or IP
port            = 8000      # port for IceCast2 access
password        = hackme    # source password to the IceCast2 server
mountPoint      = mystream.mp3  # mount point on the IceCast2 server .mp3 or .ogg
name            = mystream

หลังจากบันทึกการกำหนดค่านี้ (เช่นใน~/music/darkice.cfg) เราเรียกใช้เซิร์ฟเวอร์ Icecast เป็นครั้งแรกและจากนั้นสามารถสตรีมเอาต์พุต pulseaudio จากการ์ดเสียงภายในโดยเรียกใช้:

/etc/init.d/icecast2 start
darkice -c ~/music/darkice.cfg

บนเครื่องรับสัญญาณที่เราฟังเพื่อhttp://<localhost>:8000/mystream.mp3รับฟัง <localhost>คือ IP ของเซิร์ฟเวอร์ Icecast


3
เกี่ยวกับส่วน "ปล่อยให้เป็น localhost เมื่อคุณต้องการส่งกระแสข้อมูลในเครือข่ายท้องถิ่นของคุณ" ไม่จำเป็นต้องเป็น IP หรือส่วนต่อประสานที่เข้าถึงเครือข่ายได้เพื่อให้ผู้อื่นสามารถเชื่อมต่อได้หรือไม่
Oli

ผู้ดูแลระบบและรหัสผ่านของผู้ดูแลระบบที่เกี่ยวข้องกับผู้ใช้งาน / รหัสผ่านของเครื่องมีอะไรบ้าง?
Charbel

1
@ Charbel: ไม่พวกเขาไม่เกี่ยวข้องกัน เลือกรหัสผ่านที่คุณต้องการ คุณต้องการให้พวกเขาเข้าถึงอินเทอร์เฟซผู้ดูแลเว็บ icecast ( localhost: 8000 / admin )
Takkat

นี่เป็นคำตอบที่ดีมากขอบคุณ ในแบบฝึกหัดที่ยอดเยี่ยมฉันเห็น icecast และ mpd พูดถึงการทำงานร่วมกัน ฉันไม่เข้าใจความสัมพันธ์ระหว่าง icecast และ mpd - คุณจะสามารถชี้แจงได้หรือไม่ แต่ละบทบาทมีบทบาทอย่างไร
CoolUserName

1
โปรดทราบว่ารหัสผ่าน Icecast2 จะถูกเก็บไว้ (และใช้ใน Darkice) เป็นข้อความที่ชัดเจน อย่านำรหัสผ่านลับของคุณมาใช้ซ้ำที่นี่
elomage
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.