Тази статия е превод на Introduction
to Streaming MP3 от Фил Кер публикувана в Linux.com.
MP3 е стандарт за кодиране на аудио (най-вече музика) в
относително
малки файлове.
Ако свалите MP3 файл на компютъра си и след това го
прослушате,
вие, по същество, копирате MP3 файла от Интернет сървър на
локалният ви
компютър. В днешно време съществуват множество начини да
свалите MP3, като
например:
-
чрез вашият web браузър
-
чрез FTP
-
чрез клиент като Napster/Gnutella
Поточното аудио прилича повече на слушането на радио. Вие
"настройвате"
компютъра си на определена "радиостанция" и слушате. Има
няколко сървъра,
които можете да използвате под Linux. Ще обясня как да
настроите IceCast
сървър заедно с два различни начина за свързване на
"източник" LiveIce
и XMMS-LiveIce.
Първо трябва да се сдобиете с копие на IceCast и да го
инсталирате.
В края на тази статия има препратки, включително и една към
IceCast. Би
трябвало да имате избор по отношение вида на пакета който
да свалите: binary,
RPM или source код. Аз ще използвам source кода. След като
го свалите ще
трябва да го инсталирате.
tar zxvf icecast-1_3_5_tar.tar.gz
[Много редове информация, никакви грешки]
cd icecast-1.3.5/
../configure
[Много редове с проверки, никакви грешки?]
make
[Много редове със съобщения, все още никакви грешки?]
make install [като root]
[Още няколко реда от make, Никакви грешки? Отлично!]
bash-2.04# ls -l /usr/local/icecast/
total 24
drwxr-xr-x 2 root
root 4096
Nov 16 20:09 bin
drwxr-xr-x 2 root
root 4096
Nov 16 20:09 conf
drwxr-xr-x 2 root
root 4096
Nov 16 20:09 doc
drwxr-xr-x 2 root
root 4096
Nov 16 20:09 logs
drwxr-xr-x 2 root
root 4096
Nov 16 20:09 static
drwxr-xr-x 2 root
root 4096
Nov 16 20:09 templates
Сменете директорията с conf/. Тук могат да се
намери набор от
примерни config файлове. Този, който ни трябва, е
icecast.conf.dist.
Изкопирайте този файл в същата директория под име
icecast.conf
и редактирайте следните редове:
-
server_name your.server.name
Това трябва да бъде променено, за да отговаря на името
на вашата машина.
Можете да проверите името с командата hostname,
като например:
# hostname
megajukebox
#
Ако това не е настроено правилно, IceCast няма да работи
правилно.
port 8000
Това е портът по подразбиране, към който ще се свързват
клиентите.
Ако сте зад защитна стена (firewall), ще трябва да отворите
този порт.
encoder_password hackme
admin_password hackme
oper_password hackme
Това са паролите за отдалечено администриране на
сървъра. Ако не ги
промените, може да изпаднете в недоумение, защо вашият
сървър непрестанно
върши странни неща.
Има още много опции в conf файла, но тези са
най-важните за стартирането
на сървъра.
Стартирайте го!
И така, конфигурацията е завършена, време е да
стартираме сървъра.
Сменете директорията на bin/ и напишете следното:
# ./icecast -c ../conf/icecast.conf -b
Опцийте указват пътя до conf файла, а -b
стартира сървъра
във фонов режим.
bash-2.04# ./icecast -c ../conf/icecast.conf -b
Icecast Version 1.3.5 Initializing...
Icecast comes with NO WARRANTY, to the extent permitted by
law.
You may redistribute copies of Icecast under the terms of
the
GNU General Public License.
For more information about these matters, see the file
named COPYING.
Starting thread engine...
За всеки случай, проверете дали процесът работи със
командата ps:
bash-2.04# ps -ef|grep icecast
root
7776 1 0 20:48
pts/0 00:00:00 ./icecast -c
../conf/icecast.conf -b
root 7777 7776 0
20:48 pts/0 00:00:00 ./icecast -c
../conf/icecast.conf -b
root 7778 7777 0
20:48 pts/0 00:00:00 ./icecast -c
../conf/icecast.conf -b
root 7779 7777 0
20:48 pts/0 00:00:00 ./icecast -c
../conf/icecast.conf -b
root 7780 7777 0
20:48 pts/0 00:00:00 ./icecast -c
../conf/icecast.conf -b
Можете да проверите състоянието на сървъра чрез изследване
на log-файловете
му в директория log/. И така, сървърът работи.
Нетърпеливи сте
да чуете аудио потока, нали?
Сега трябва да свържем някакъв източник към сървъра.
Този източник
ще осигури на сървъра списък с MP3-ки или връзка със
звуковата карта.
LiveIce
LiveIce осигурява такъв източник, както от MP3 файлове,
така и от line-in
или микрофонния вход на звуковата карта.
За да го накарате да работи, ви трябват още няколко
файла:
-
Encoder. Ще ви трябва MP3 енкодер. Аз използвам
Notlame.
-
MP3 плеър. Аз използвам mpg123.
-
Tcl/Tk. Този език за скриптове ви е необходим за да пуснете
liveiceconfigure.tk
Свалете и разархивирайте LiveIce, а след това направете
така:
tar zxvf liveice.tar.gz
cd liveice
../configure
make
../install-sh liveice /usr/local/bin [като root]
Ура! Инсталирахме го! Сега трябва да го конфигурираме. В
директорията на
LiveIce има един Tk скрипт, който се използва за
създаването на liveice.cfg
и е наречен liveiceconfigure.tk. Скриптът стартира
конфигуратор
в графичен режим. Ще трябва да настроите данните да
отговарят на настройката
на IceCast. А ето и останалите:
-
Public. Обявете информация за MP3 директорията на
сървъра.
-
Login type. Използва се за настройка на опцийте за
login.
-
PCM аудио формат. Изберете опции за енкодера.
-
Soundcard. Изберете дали да се използва и какъв изход
-
Encoder/Executables - encoder. Избор на енкодер и настройка
на опцийте.
-
Mixer Control. Избира опции за смесването.
-
Опции за записа на log-ове и съхраняване на
конфигурацията.
Е, добре. След като конфигурацията е коректна, влезте в
liveice и се уверете,
че работи:
bash-2.04# liveice playlist
1
Initializing Soundcard
16Bit 22050Hz Stereo
opening connection to megajukebox 8000
Attempting to Contact Server
connection successful: forking process
opening pipe!...
writing password
Setting up Interface
Soundcard Reopened For Encoding
Input Format: 16Bit 22050Hz Stereo
Output Format: 32000 Bps Mpeg Audio
IceCast Server: megajuxebox:8000
Mountpoint: liveice
Name: Megajukebox
Genre: Live
Url: http://megajukebox
Description: LiveIce
Press '+' to Finish
adding /storage/samples/sample1.mp3
adding /storage/samples/sample2.mp3
adding /storage/samples/sample3.mp3
adding /storage/samples/sample4.mp3
adding /storage/samples/sample5.mp3
Adding New Channel 1
Adding New Channel 2
Channel 1 selecting
/storage/samples/sample1.mp3
Channel 2 selecting
/storage/samples/sample1.mp3
Playing track01.mp3
searching for Id3v2
searching for Id3v1
making up the info
Using log track.log
******
След началните съобщения, би трябвало да видите мигащи
цифри. Те индикират
силата на входния сигнал. Ако сте избрали да използвате
звукова карта и
сигналът е твърде силен ще видите *clip*.
Следва списък на клавиатурните команди.
Действие |
Канал 1 клавиш |
Канал 2 клавиш |
1 |
a |
|
Избор на предходно парче по канала |
q |
z |
Start/Stop за канала |
2 |
s |
Рестарт на канала |
w |
x |
Увеличаване силата на звука |
3 |
d |
Намаляване силата на звука |
e |
c |
Увеличаване скоростта на канала |
4 |
d |
Намаляване на скоростта |
r |
v |
Sticky режим Вкл/Произволно/Изкл |
5 |
g |
Прослушване на канала |
t |
b |
Произволна последователност |
u |
m |
XMMS-LiveIce
XMMS-LiveIce е поточен модул за XMMS (ВЕРСИИ ПО-ГОЛЕМИ
ОТ 1.0.0). Той
ви позволява да работите с поточни mp3-ки, използвайки XMMS
плеъра. Ако
свалите source кода, ще трябва да го конфигурирате и
компилирате като останалите.
След като го инсталирате, трябва да стартирате XMMS и
да включите допълнението.
От менюто отидете на Options -> Preferences и изберете
Effects. Сега падащото
меню с Effect plugin-ите трябва да включва LiveIce 1.0.0
(или с подобен
номер версия). Изберете го и щракнете на бутона Configure.
Параметрите
доста приличат на тези на LiveIce и трябва да бъдат
настроени спрямо вашата
система.
След като го активирате, пуснете (play) MP3 както
обичайно и в логовете
на IceCast би трябвало да видите XMMS като източник.
Е, Сега би трябвало да можете да пускате поточни mp3-ики
с IceCast сървъра
използвайки LiveIce или XMMS!
Наслаждавайте се на MP3 пълноводието!
Препратки:
IceCast
LiveIce
XMMS
NotLame
mpg123
Linux MP3-HOWTO