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.
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.
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.