version=pmwiki-2.2.130 ordered=1 urlencoded=1 agent=Mozilla/5.0 (Linux; Android 8.1.0; vivo 1820 Build/O11019) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/107.0.5304.91 Mobile Safari/537.36 author=Yonle charset=UTF-8 csum= ctime=1636420483 host=182.1.44.69 name=Openbsd.Icecast rev=16 targets= text=Icecast is a modular free media audio software, written in C++.%0aIcecast itself is unable to manage audio formats and requires addons called "@@sources@@" to do.%0ain this guide, we use ices as our source.%0a!! Installation%0a[@%0a$ doas pkg_add ices-0.4p12 icecast%0a@]%0a%0aedit @@/var/icecast/icecast.xml@@%0a[@%0a%3cicecast>%0a %3clocation>Earth%3c/location>%0a %3cadmin>username%3c/admin>%0a %3climits>%0a %3cclients>100%3c/clients>%0a %3csources>2%3c/sources>%0a %3cqueue-size>524288%3c/queue-size>%0a %3cclient-timeout>30%3c/client-timeout>%0a %3cheader-timeout>15%3c/header-timeout>%0a %3csource-timeout>10%3c/source-timeout>%0a %3cburst-on-connect>1%3c/burst-on-connect>%0a %3cburst-size>65535%3c/burst-size>%0a %3c/limits>%0a@]%0areplace username and Earth with your values.%0a%0a[@%0a %3cauthentication>%0a %3csource-password>hackme%3c/source-password>%0a %3cadmin-user>username%3c/admin-user>%0a %3cadmin-password>hackmemore%3c/admin-password>%0a %3c/authentication>%0a %3cshoutcast-mount>/shoutcast%3c/shoutcast-mount>%0a@]%0a%0areplace @@source-passowrd@@ and @@admin-password@@ with a secure passoword and chanage username to your prefered value.%0a[@%0a %3chostname>example.com%3c/hostname>%0a %3clisten-socket>%0a %3cport>8000%3c/port>%0a %3cbind-address>0.0.0.0%3c/bind-address>%0a %3c/listen-socket>%0a %3clisten-socket>%0a %3cport>8080%3c/port>%0a %3c/listen-socket>%0a %3clisten-socket>%0a %3cport>8443%3c/port>%0a %3cssl>1%3c/ssl>%0a %3c/listen-socket>%0a@]%0a%0areplace @@example.com@@ with your domain.%0anote that icecast can only listen to IPv4 or IPv6 (and not both)%0a%0a[@%0a %3cmount type="normal">%0a %3cmount-name>/radio%3c/mount-name>%0a %3cpublic>0%3c/public>%0a %3c/mount>%0a %3cfileserve>1%3c/fileserve>%0a@]%0aeach stream on icecast is called a mount, we will connect to mounts using our sources%0a%0a[@%0a %3cpaths>%0a %3cbasedir>/var/icecast%3c/basedir>%0a %3clogdir>/log%3c/logdir>%0a %3cwebroot>/web%3c/webroot>%0a %3cadminroot>/admin%3c/adminroot>%0a %3cpidfile>/var/run/icecast.pid%3c/pidfile>%0a %3calias source="/" destination="/status.xsl"/>%0a %3c!-- %3cssl-certificate>/var/icecast/etc/icecast.pem%3c/ssl-certificate> -->%0a %3c/paths>%0a@]%0a%0ahere we configure paths, and ssl for port 8443. note that ssl certificate should have both private and public cert on same file. you can do that using:%0a[@%0a# cat /path/to/public/cert.pem /path/to/private/key.key > /var/icecast/etc/icecast.pem%0a@]%0a%0ayou might need to change permissions afterwards.%0aand that will create it on @@/var/icecast/etc/icecast.pem@@%0a[@%0a %3clogging>%0a %3caccesslog>access.log%3c/accesslog>%0a %3cerrorlog>error.log%3c/errorlog>%0a %3c!-- %3cplaylistlog>playlist.log%3c/playlistlog> -->%0a %3cloglevel>3%3c/loglevel> %3c!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->%0a %3clogsize>10000%3c/logsize> %3c!-- Max size of a logfile -->%0a %3c/logging>%0a %3csecurity>%0a %3cchroot>1%3c/chroot>%0a %3cchangeowner>%0a %3cuser>_icecast%3c/user>%0a %3cgroup>_icecast%3c/group>%0a %3c/changeowner>%0a %3c/security>%0a%3c/icecast>%0a@]%0a%0anow, run and enable icecast%0a[@%0a$ doas rcctl enable icecast%0a$ doas rcctl start icecast%0a@]%0a%0a!! Ices%0anow we configure our source.%0acurrently there are two versions of Ices on OpenBSD repos, one is 0.4 and another one is 2.0%0aversion 2.0 only supports ogg files and version 0.4 only supports mp3 files, in this guide, we will use version 0.4%0atake a backup of /etc/ices.conf%0a[@%0a$ doas cp /etc/ices.conf /etc/ices.conf.bk%0a@]%0a%0aOpen @@/etc/ices.conf@@%0a[@%0a%3c?xml version="1.0"?>%0a%3cices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">%0a %3cPlaylist>%0a %3cFile>/etc/radio.playlist%3c/File>%0a %3cRandomize>1%3c/Randomize>%0a %3cType>builtin%3c/Type>%0a %3cModule>ices%3c/Module>%0a %3cCrossfade>4%3c/Crossfade>%0a %3c/Playlist>%0a%0a %3cExecution>%0a %3cBackground>0%3c/Background>%0a %3cVerbose>0%3c/Verbose>%0a %3cBaseDirectory>/tmp/%3c/BaseDirectory>%0a %3c/Execution>%0a%0a %3cStream>%0a %3cServer>%0a %3cHostname>localhost%3c/Hostname>%0a %3cPort>8000%3c/Port>%0a %3cPassword>hackme/Password>%0a %3cProtocol>http%3c/Protocol>%0a %3c/Server>%0a%0a %3cMountpoint>/radio%3c/Mountpoint>%0a %3cName>My radio%3c/Name>%0a %3cGenre>Music%3c/Genre>%0a %3cDescription>This is my radio%3c/Description>%0a %3cBitrate>128%3c/Bitrate>%0a %3cChannels>2%3c/Channels>%0a %3c/Stream>%0a%3c/ices:Configuration>%0a@]%0a%0aadd your songs on /etc/radio.playlist in following format%0a[@%0a/path/to/mp3/file.mp3%0a/path/to/another/mp3 file.mp3%0a@]%0a%0anote that they can include spaces as well.%0aafterwards, run ices%0a[@%0a$ doas ices -c /etc/ices.conf%0a@]%0a%0athen you can point your media player or browser to http://example.com:8000/radio and enjoy.%0a%0a!! MPD%0aWe could use mpd to livestream with Icecast.%0a%0aFirst, install mpd & mpc:%0a[@%0a$ doas pkg_add mpd mpc%0a@]%0a%0aEdit @@/etc/mpd.conf@@%0a[@%0a# Files and directories #######################################################%0a#%0a# This setting controls the top directory which MPD will search to discover the%0a# available audio files and add them to the daemon's online database. This%0a# setting defaults to the XDG directory, otherwise the music directory will be%0a# be disabled and audio files will only be accepted over ipc socket (using%0a# file:// protocol) or streaming files over an accepted protocol.%0a#%0amusic_directory "/please-configure-your-music_directory"%0a@]%0a%0aReplace @@/please-configure-your-music_directory@@ to your path to Music folders. Eg. @@/home/user/Music@@%0a%0a[@%0aaudio_output {%0a type "shout"%0a encoder "vorbis" # optional, vorbis or lame%0a name "My Shout Stream"%0a host "localhost"%0a port "8000"%0a mount "/radio"%0a password "hackme"%0a# quality "5.0"%0a bitrate "128"%0a format "44100:16:1"%0a# protocol "icecast2" # optional%0a# user "source" # optional%0a description "My Stream Description" # optional%0a url "http://example.com" # optional%0a genre "jazz" # optional%0a public "no" # optional%0a# timeout "2" # optional%0a# mixer_type "software" # optional%0a}%0a@]%0a%0aChange some values according your needs. Then, Enable & start mpd daemon%0a%0a[@%0a$ doas rcctl enable mpd%0a$ doas rcctl start mpd%0a@]%0a%0aNow, populate the database. Depending on how many tracks are in your library this may take a while. The @@-w@@ makes it wait until it's finished.%0a[@%0a$ mpc -w update%0a@]%0a%0aNext, make a playlist%0a[@%0a$ mpc add /%0a@]%0a%0aThen start playing%0a[@%0a$ mpc play%0a@]%0a%0aTo make the playlist randomly play for evermore.%0a[@%0a$ mpc random%0a$ mpc repeat%0a@]%0a%0aAnd finally, visit http://example.com:8000/radio and enjoy. time=1668684941 author:1668684941=Yonle diff:1668684941:1668684900:=219c219%0a%3c Now, populate the database. Depending on how many tracks are in your library this may take a while. The @@-w@@ makes it wait until it's finished.%0a---%0a> Now, populate the database. Depending on how many tracks are in your library this may take a while. The -w makes it wait until it's finished.%0a host:1668684941=182.1.44.69 author:1668684900=Yonle csum:1668684900=Ref: https://forums.debian.net/viewtopic.php?p=717949&sid=71a77cd73147e8b86ce9f64e455f8a49#p717949 diff:1668684900:1668684643:=217,221d216%0a%3c @]%0a%3c %0a%3c Now, populate the database. Depending on how many tracks are in your library this may take a while. The -w makes it wait until it's finished.%0a%3c [@%0a%3c $ mpc -w update%0a host:1668684900=182.1.44.69 author:1668684643=Yonle diff:1668684643:1668684639:= host:1668684643=182.1.44.137 author:1668684639=Yonle diff:1668684639:1668684390:=166c166%0a%3c !! MPD%0a---%0a> !! Mpd%0a host:1668684639=182.1.44.137 author:1668684390=Yonle diff:1668684390:1668684361:=187c187%0a%3c Replace @@/please-configure-your-music_directory@@ to your path to Music folders. Eg. @@/home/user/Music@@%0a---%0a> Replace @@please-configure-your-music_directory@@ to your path to Music folders. Eg. @@/home/user/Music@@%0a host:1668684390=182.1.44.69 author:1668684361=Yonle csum:1668684361=Streaming with mpd. diff:1668684361:1668684356:= host:1668684361=182.1.44.69 author:1668684356=Yonle csum:1668684356=Streaming with mpd. diff:1668684356:1668683965:=219,235c219%0a%3c Next, make a playlist%0a%3c [@%0a%3c $ mpc add /%0a%3c @]%0a%3c %0a%3c Then start playing%0a%3c [@%0a%3c $ mpc play%0a%3c @]%0a%3c %0a%3c To make the playlist randomly play for evermore.%0a%3c [@%0a%3c $ mpc random%0a%3c $ mpc repeat%0a%3c @]%0a%3c %0a%3c And finally, visit http://example.com:8000/radio and enjoy.%0a\ No newline at end of file%0a---%0a> %0a host:1668684356=182.1.44.69 author:1668683965=Yonle diff:1668683965:1668303704:=164,219c164%0a%3c then you can point your media player or browser to http://example.com:8000/radio and enjoy.%0a%3c %0a%3c !! Mpd%0a%3c We could use mpd to livestream with Icecast.%0a%3c %0a%3c First, install mpd & mpc:%0a%3c [@%0a%3c $ doas pkg_add mpd mpc%0a%3c @]%0a%3c %0a%3c Edit @@/etc/mpd.conf@@%0a%3c [@%0a%3c # Files and directories #######################################################%0a%3c #%0a%3c # This setting controls the top directory which MPD will search to discover the%0a%3c # available audio files and add them to the daemon's online database. This%0a%3c # setting defaults to the XDG directory, otherwise the music directory will be%0a%3c # be disabled and audio files will only be accepted over ipc socket (using%0a%3c # file:// protocol) or streaming files over an accepted protocol.%0a%3c #%0a%3c music_directory "/please-configure-your-music_directory"%0a%3c @]%0a%3c %0a%3c Replace @@please-configure-your-music_directory@@ to your path to Music folders. Eg. @@/home/user/Music@@%0a%3c %0a%3c [@%0a%3c audio_output {%0a%3c type "shout"%0a%3c encoder "vorbis" # optional, vorbis or lame%0a%3c name "My Shout Stream"%0a%3c host "localhost"%0a%3c port "8000"%0a%3c mount "/radio"%0a%3c password "hackme"%0a%3c # quality "5.0"%0a%3c bitrate "128"%0a%3c format "44100:16:1"%0a%3c # protocol "icecast2" # optional%0a%3c # user "source" # optional%0a%3c description "My Stream Description" # optional%0a%3c url "http://example.com" # optional%0a%3c genre "jazz" # optional%0a%3c public "no" # optional%0a%3c # timeout "2" # optional%0a%3c # mixer_type "software" # optional%0a%3c }%0a%3c @]%0a%3c %0a%3c Change some values according your needs. Then, Enable & start mpd daemon%0a%3c %0a%3c [@%0a%3c $ doas rcctl enable mpd%0a%3c $ doas rcctl start mpd%0a%3c @]%0a%3c %0a%3c %0a---%0a> then you can point your media player or browser to http://example.com:8000/radio and enjoy.%0a\ No newline at end of file%0a host:1668683965=182.1.61.193 author:1668303704=Yonle diff:1668303704:1652690905:=152c152%0a%3c add your songs on /etc/radio.playlist in following format%0a---%0a> add your songs on /etc/radio.plist in following format%0a host:1668303704=182.1.3.44 author:1652690905=mkf diff:1652690905:1652690758:=35d34%0a%3c %0a51d49%0a%3c %0a75d72%0a%3c %0a116c113%0a%3c Open @@/etc/ices.conf@@%0a---%0a> open /etc/ices.conf%0a host:1652690905=91.185.139.36 author:1652690758=mkf diff:1652690758:1636420973:=4c4%0a%3c !! Installation%0a---%0a> !! Install%0a73c73%0a%3c here we configure paths, and ssl for port 8443. note that ssl certificate should have both private and public cert on same file. you can do that using:%0a---%0a> here we configure paths, and ssl for port 8443. note that ssl certificate should have both private and public cert on same file. you can do that using%0a77,78d76%0a%3c %0a%3c you might need to change permissions afterwards.%0a host:1652690758=91.185.139.36 author:1636420973=mkf diff:1636420973:1636420839:minor=2,3c2,3%0a%3c Icecast itself is unable to manage audio formats and requires addons called "@@sources@@" to do.%0a%3c in this guide, we use ices as our source.%0a---%0a> Icecast itself is unable to manage audio formats and requires addons called @@sources@@ to do.%0a> in this guide, we use Ices-0.4 as our source.%0a host:1636420973=5.238.160.208 author:1636420839=mkf diff:1636420839:1636420775:minor=133c133%0a%3c %3cPassword>hackme/Password>%0a---%0a> %3cPassword>hackmemore/Password>%0a host:1636420839=5.238.160.208 author:1636420775=mkf csum:1636420775=wheee diff:1636420775:1636420510:=96,101d95%0a%3c now, run and enable icecast%0a%3c [@%0a%3c $ doas rcctl enable icecast%0a%3c $ doas rcctl start icecast%0a%3c @]%0a%3c %0a110d103%0a%3c %0a146,159d138%0a%3c %0a%3c add your songs on /etc/radio.plist in following format%0a%3c [@%0a%3c /path/to/mp3/file.mp3%0a%3c /path/to/another/mp3 file.mp3%0a%3c @]%0a%3c %0a%3c note that they can include spaces as well.%0a%3c afterwards, run ices%0a%3c [@%0a%3c $ doas ices -c /etc/ices.conf%0a%3c @]%0a%3c %0a%3c then you can point your media player or browser to http://example.com:8000/radio and enjoy.%0a\ No newline at end of file%0a host:1636420775=5.238.160.208 author:1636420510=mkf csum:1636420510=no refunds, still. diff:1636420510:1636420483:minor=3c3%0a%3c in this guide, we use Ices-0.4 as our source.%0a---%0a> in this guide, we use IceS-0.4 as our source.%0a host:1636420510=5.238.160.208 author:1636420483=mkf csum:1636420483=tada! no refunds. diff:1636420483:1636420483:=1,138d0%0a%3c Icecast is a modular free media audio software, written in C++.%0a%3c Icecast itself is unable to manage audio formats and requires addons called @@sources@@ to do.%0a%3c in this guide, we use IceS-0.4 as our source.%0a%3c !! Install%0a%3c [@%0a%3c $ doas pkg_add ices-0.4p12 icecast%0a%3c @]%0a%3c %0a%3c edit @@/var/icecast/icecast.xml@@%0a%3c [@%0a%3c %3cicecast>%0a%3c %3clocation>Earth%3c/location>%0a%3c %3cadmin>username%3c/admin>%0a%3c %3climits>%0a%3c %3cclients>100%3c/clients>%0a%3c %3csources>2%3c/sources>%0a%3c %3cqueue-size>524288%3c/queue-size>%0a%3c %3cclient-timeout>30%3c/client-timeout>%0a%3c %3cheader-timeout>15%3c/header-timeout>%0a%3c %3csource-timeout>10%3c/source-timeout>%0a%3c %3cburst-on-connect>1%3c/burst-on-connect>%0a%3c %3cburst-size>65535%3c/burst-size>%0a%3c %3c/limits>%0a%3c @]%0a%3c replace username and Earth with your values.%0a%3c %0a%3c [@%0a%3c %3cauthentication>%0a%3c %3csource-password>hackme%3c/source-password>%0a%3c %3cadmin-user>username%3c/admin-user>%0a%3c %3cadmin-password>hackmemore%3c/admin-password>%0a%3c %3c/authentication>%0a%3c %3cshoutcast-mount>/shoutcast%3c/shoutcast-mount>%0a%3c @]%0a%3c replace @@source-passowrd@@ and @@admin-password@@ with a secure passoword and chanage username to your prefered value.%0a%3c [@%0a%3c %3chostname>example.com%3c/hostname>%0a%3c %3clisten-socket>%0a%3c %3cport>8000%3c/port>%0a%3c %3cbind-address>0.0.0.0%3c/bind-address>%0a%3c %3c/listen-socket>%0a%3c %3clisten-socket>%0a%3c %3cport>8080%3c/port>%0a%3c %3c/listen-socket>%0a%3c %3clisten-socket>%0a%3c %3cport>8443%3c/port>%0a%3c %3cssl>1%3c/ssl>%0a%3c %3c/listen-socket>%0a%3c @]%0a%3c replace @@example.com@@ with your domain.%0a%3c note that icecast can only listen to IPv4 or IPv6 (and not both)%0a%3c %0a%3c [@%0a%3c %3cmount type="normal">%0a%3c %3cmount-name>/radio%3c/mount-name>%0a%3c %3cpublic>0%3c/public>%0a%3c %3c/mount>%0a%3c %3cfileserve>1%3c/fileserve>%0a%3c @]%0a%3c each stream on icecast is called a mount, we will connect to mounts using our sources%0a%3c %0a%3c [@%0a%3c %3cpaths>%0a%3c %3cbasedir>/var/icecast%3c/basedir>%0a%3c %3clogdir>/log%3c/logdir>%0a%3c %3cwebroot>/web%3c/webroot>%0a%3c %3cadminroot>/admin%3c/adminroot>%0a%3c %3cpidfile>/var/run/icecast.pid%3c/pidfile>%0a%3c %3calias source="/" destination="/status.xsl"/>%0a%3c %3c!-- %3cssl-certificate>/var/icecast/etc/icecast.pem%3c/ssl-certificate> -->%0a%3c %3c/paths>%0a%3c @]%0a%3c here we configure paths, and ssl for port 8443. note that ssl certificate should have both private and public cert on same file. you can do that using%0a%3c [@%0a%3c # cat /path/to/public/cert.pem /path/to/private/key.key > /var/icecast/etc/icecast.pem%0a%3c @]%0a%3c and that will create it on @@/var/icecast/etc/icecast.pem@@%0a%3c [@%0a%3c %3clogging>%0a%3c %3caccesslog>access.log%3c/accesslog>%0a%3c %3cerrorlog>error.log%3c/errorlog>%0a%3c %3c!-- %3cplaylistlog>playlist.log%3c/playlistlog> -->%0a%3c %3cloglevel>3%3c/loglevel> %3c!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->%0a%3c %3clogsize>10000%3c/logsize> %3c!-- Max size of a logfile -->%0a%3c %3c/logging>%0a%3c %3csecurity>%0a%3c %3cchroot>1%3c/chroot>%0a%3c %3cchangeowner>%0a%3c %3cuser>_icecast%3c/user>%0a%3c %3cgroup>_icecast%3c/group>%0a%3c %3c/changeowner>%0a%3c %3c/security>%0a%3c %3c/icecast>%0a%3c @]%0a%3c %0a%3c !! Ices%0a%3c now we configure our source.%0a%3c currently there are two versions of Ices on OpenBSD repos, one is 0.4 and another one is 2.0%0a%3c version 2.0 only supports ogg files and version 0.4 only supports mp3 files, in this guide, we will use version 0.4%0a%3c take a backup of /etc/ices.conf%0a%3c [@%0a%3c $ doas cp /etc/ices.conf /etc/ices.conf.bk%0a%3c @]%0a%3c open /etc/ices.conf%0a%3c [@%0a%3c %3c?xml version="1.0"?>%0a%3c %3cices:Configuration xmlns:ices="http://www.icecast.org/projects/ices">%0a%3c %3cPlaylist>%0a%3c %3cFile>/etc/radio.playlist%3c/File>%0a%3c %3cRandomize>1%3c/Randomize>%0a%3c %3cType>builtin%3c/Type>%0a%3c %3cModule>ices%3c/Module>%0a%3c %3cCrossfade>4%3c/Crossfade>%0a%3c %3c/Playlist>%0a%3c %0a%3c %3cExecution>%0a%3c %3cBackground>0%3c/Background>%0a%3c %3cVerbose>0%3c/Verbose>%0a%3c %3cBaseDirectory>/tmp/%3c/BaseDirectory>%0a%3c %3c/Execution>%0a%3c %0a%3c %3cStream>%0a%3c %3cServer>%0a%3c %3cHostname>localhost%3c/Hostname>%0a%3c %3cPort>8000%3c/Port>%0a%3c %3cPassword>hackmemore/Password>%0a%3c %3cProtocol>http%3c/Protocol>%0a%3c %3c/Server>%0a%3c %0a%3c %3cMountpoint>/radio%3c/Mountpoint>%0a%3c %3cName>My radio%3c/Name>%0a%3c %3cGenre>Music%3c/Genre>%0a%3c %3cDescription>This is my radio%3c/Description>%0a%3c %3cBitrate>128%3c/Bitrate>%0a%3c %3cChannels>2%3c/Channels>%0a%3c %3c/Stream>%0a%3c %3c/ices:Configuration>%0a%3c @]%0a host:1636420483=5.238.160.208