StreamTranscoder

Un article de Le wiki de la webradio sous Linux.

StreamTranscoder est un utilitaire qui vous permettra de transformer et dupliquer vos streams. Vous lui faites prendre du mp3 ou du Ogg Vorbis en entrée et il vous ressort du AAC/AAC+, du Ogg FLAC, du Ogg Vorbis ou du mp3 vers votre serveur icecast ou shoutcast favori. Il existe sous windows (avec interface graphique ou en service) et, en ligne de commande, sous *nix. C'est cette version qui sera utilisée içi.

[modifier] Installer le biniou.

Vous pouvez récuperer l'archive originale sur http://www.oddsock.org/tools/streamTranscoderV3/

C'est, à l'heure ou j'ecris ces lignes, la version 3.1.11. A ma connaissance, il n'y a pas de paquet debian mais je n'ai pas trop fouillé.

Apres avoir téléchargé et "détaregzipé" (si si !) l'archive (streamtranscoderv3-3.1.11.tar.gz), allez dans le rep streamtranscoderv3-3.1.11.

La compile ne pose normalement pas de problèmes particuliers. Je travaille en root pour la compile mais vous ne devriez pas ;-)

[root@perceval:/usr/src/streamtranscoderv3-3.1.11] $ ./configure
/.../
bla bla bla
configure: WARNING: FAAC not installed, AAC encoding DISABLED.
configure: creating ./config.status
config.status: creating Makefile
config.status: creating liboddcast/Makefile
config.status: executing depfiles commands

Notez un warning a propos de FLAC qui est absent. Comme je n'utilise pas, je m'en fouts un peu

[root@perceval:/usr/src/streamtranscoderv3-3.1.11] $ make
/.../
rebla bla bla
/.../
[root@perceval:/usr/src/streamtranscoderv3-3.1.11] $ make install
/.../

Par defaut, le binaire qui vient d'être compilé se trouve dans /usr/local/bin

[root@perceval:/usr/src/streamtranscoderv3-3.1.11] $ ls /usr/local/bin/
mediabox404_prg-1.4  scheduler404  sc_serv  stream404  stream404-1.4  streamTranscoderv3

Laissez le la pour l'instant.

[modifier] Parametré le biniou.

A partir de maintenant je repasse sous un compte "normal". Ce sera le compte radio, celui qui avait été créé pour mediabox404.

Premier lancement (attention, c'est un peu concon) :

[radio@perceval:~] $ /usr/local/bin/streamTranscoderv3
Creating config file streamTranscoder_0.cfg
One or more config files were created.
Source settings are contained in streamTranscoder_0.cfg
All encoder settings are contained in streamTranscoder_X.cfg, where X is the encoder number.
You must manually edit these config files before continuing.
Your next step should probably be to ****edit streamTranscoder_0.cfg and change the number of encoders****, then rerun streamTranscoder

En gros, il crée le fichier de configuration principal : streamTranscoder_0.cfg. Un petit vi la dessus et on va expliquer la chose.

# La source a broadscaster
# Si vous utilisé icecast, c'est de la forme http://server:port/mountpoint.
# Si ca vient de shoutcast, ce sera http://server:port.
# On recupere un flux en 128 Kbps
SourceURL=http://perceval:8000/rocktroll-128.ogg
AutomaticReconnectSecs=10
AutoConnect=0
# Log Level 1 = LOG_ERROR, 2 = LOG_ERROR+LOG_INFO, 3 = LOG_ERROR+LOG_INFO+LOG_DEBUG
LogLevel=2
# Le nom des fichiers de logs
LogFile=streamTranscoder
# Nombre d'encodeurs à "sortir". Pour les tests, 4 flux suffiront.
NumEncoders=4

Enregistrez et fermez votre fichier.

Bon, on a fait le moins chiant, on se palucher le reste de la config. Pour se faire, on relance streamTranscoderv3.

[radio@perceval:~] $ /usr/local/bin/streamTranscoderv3
Creating config file streamTranscoder_1.cfg
Creating config file streamTranscoder_2.cfg
Creating config file streamTranscoder_3.cfg
Creating config file streamTranscoder_4.cfg
One or more config files were created.
Source settings are contained in streamTranscoder_0.cfg
All encoder settings are contained in streamTranscoder_X.cfg, where X is the encoder number.
You must manually edit these config files before continuing.
Your next step should probably be to ****edit streamTranscoder_X.cfg where X = 1 to number of encoders**** you've defined, then rerun streamTranscoder

Il crée alors 4 fichiers de configs. C'est le nombre qui a été déclaré dans l'option du fichier streamTranscoder_0.cfg On ne va s'en n'éditer que 2, ils sont faciles à comprendre. Le premier va envoyer un stream à 64 Kbps vers du icecast2


# Quel est le type de serveur de destination ? Shoutcast, Icecast ou Icecast2
ServerType=Icecast2                                # On va envoyer sur icecast2
Server=perceval                                    # A quelle adresse ? ca peut être une machine differente
Port=8100                                            # Quel port
ServerPassword=changemenow                        # Le mot de passe du serveur
ServerMountpoint=/rocktroll-64.ogg            # Le point de montage
# Reglage de l'YP (Stream Directory)
ServerPublic=1                                        # Est ce que c'est un serveur public
ServerIRC=                                            # l'IRC
ServerAIM=                                            # AIM
ServerICQ=                                            # ICQ
ServerStreamURL=http://www.oddsock.org        # l'adresse de votre serveur
ServerName=This is my server name            # Le nom
ServerDescription=This is my server description        # La description de votre serveur
ServerGenre=Rock                                    # le genre
AutomaticReconnectSecs=10                        # la reconnection
AutoConnect=0                                        #
# Le codec de sortie (MP3, OggVorbis, Ogg FLAC, AAC, AAC Plus)
Encode=OggVorbis                                    # On sort du Ogg Vorbis
# Reglages généraux.
BitrateNominal=64                                    # Le bitrate
BitrateMin=64                                        # Le bitrate mini
BitrateMax=64                                        # Le bitrate maxi
NumberChannels=2                                    # Mono (1) ou Stereo (2)
Samplerate=44100                                    # 
# C'est la partie qui permet le réglage des codecs. N'hésitez pas à effacer les parties que vous n'utilisez pas.
# Voyez sur les sites correspondants pour les réglages.
# Ogg Vorbis
OggQuality=3
OggBitrateQualityFlag=Quality
# LAME specific settings.  Note: Setting the low/highpass freq to 0 will disable them.
LameCBRFlag=1
LameQuality=1
LameCopywrite=0
LameOriginal=0
LameStrictISO=0
LameDisableReservior=0
LameVBRMode=vbr_abr
LameLowpassfreq=0
LameHighpassfreq=0
LAMEPreset=0
# AAC (FAAC) specific settings.
AACQuality=100
AACCutoff=
# Save directory for archive streams
SaveDirectory=
# Flag which indicates if we are saving archives
SaveDirectoryFlag=0
# Log Level 1 = LOG_ERROR, 2 = LOG_ERROR+LOG_INFO, 3 = LOG_ERROR+LOG_INFO+LOG_DEBUG
LogLevel=2
# Log File
LogFile=streamTranscoder_1
# Save Archives in WAV format
SaveAsWAV=0
# LAME Joint Stereo Flag
LAMEJointStereo=1

Le second va envoyer du 128 Kbps vers du shoutcast.

# Quel est le type de serveur de destination ? Shoutcast, Icecast ou Icecast2
ServerType=Shoutcast                                # On va envoyer sur shoutcast
Server=perceval                                    # A quelle adresse ? ca peut être une machine differente
Port=8110                                            # Quel port (attention ! il faut laisser éau moins 2 ports entre chaque  mountpoint)
ServerPassword=changemenow                        # Le mot de passe du serveur
ServerMountpoint=/rocktroll-128.mp3            # Le point de montage
# Reglage de l'YP (Stream Directory)
ServerPublic=1                                        # Est ce que c'est un serveur public
ServerIRC=                                            # l'IRC
ServerAIM=                                            # AIM
ServerICQ=                                            # ICQ
ServerStreamURL=http://www.rockandtroll.net/ # l'adresse de votre serveur
ServerName=Dans l'oreille du Troll            # Le nom
ServerDescription=La webradio... blabla    # La description de votre serveur
ServerGenre=HardRock                                    # le genre
AutomaticReconnectSecs=10                        # la reconnection
AutoConnect=0                                        #
# Le codec de sortie (MP3, OggVorbis, Ogg FLAC, AAC, AAC Plus)
Encode=MP3                                            # On sort du Ogg Vorbis
# Reglages généraux.
BitrateNominal=128                                # Le bitrate
BitrateMin=128                                        # Le bitrate mini
BitrateMax=128                                        # Le bitrate maxi
NumberChannels=2                                    # Mono (1) ou Stereo (2)
Samplerate=44100                                    #
# C'est la partie qui permet le réglage des codecs. N'hésitez pas à effacer les parties que vous n'utilisez pas.
# Voyez sur les sites correspondants pour les réglages.
# Ogg Vorbis
OggQuality=3
OggBitrateQualityFlag=Quality
# LAME specific settings.  Note: Setting the low/highpass freq to 0 will disable them.
LameCBRFlag=1
LameQuality=1
LameCopywrite=0
LameOriginal=0
LameStrictISO=0
LameDisableReservior=0
LameVBRMode=vbr_abr
LameLowpassfreq=0
LameHighpassfreq=0
LAMEPreset=0
# AAC (FAAC) specific settings.
AACQuality=100
AACCutoff=
# Save directory for archive streams
SaveDirectory=
# Flag which indicates if we are saving archives
SaveDirectoryFlag=0
# Log Level 1 = LOG_ERROR, 2 = LOG_ERROR+LOG_INFO, 3 = LOG_ERROR+LOG_INFO+LOG_DEBUG
LogLevel=2
# Log File
LogFile=streamTranscoder_1
# Save Archives in WAV format
SaveAsWAV=0
# LAME Joint Stereo Flag
LAMEJointStereo=1

Adaptez les autres fichiers suivant vos besoins, parametrez vos serveurs, relancez les et lancez streamTranscoderv3 avec l'option -b pour le faire tourner en arriere-plan.

Partenaire
Outils personnels