Nachdem das SHOUTcast Team heute schon die erste BETA von sc_serv 2 veröffentlicht hat, folgte auch prompt noch sc_trans 2 BETA 6.
Die insgesamt 6. BETA Version des mittlerweile sehr umfassenden SHOUTcast Transcoders hat einige Neuerungen bekommen, die wir euch gerne ab morgen oder übermorgen hier im Blog vorstellen möchten. (Wir brauchen leider auch ein wenig Zeit, um das System zu testen, möchten euch allerdings nichts vorenthalten!)
Hier könnt ihr sc_trans 2 BETA 6 downloaden!
Hier aber schon mal für euch die ersten Infos! Gerne könnt ihr schon mal erste Meinungen hier posten und diskutieren, wir freuen uns drauf!
Release Notes :: 2/3/2010 – sc_trans drop 6 version 2 revision 39
NEW STUFF:
- A new type of event as been added to the calendaring system that allows you to relay other stations. (see calendarxml.txt for more information)
- You can now create your playlists dynamically in real time. A new playlist entry construct will allow the invocation of an external program to fetch the next playlist entry (see docs.txt section 10)
- You can change the way your metadata is displayed in clients (this comes with lots of caveats though). See the new displaymetadatapattern conf file option (docs.txt)
- In order to encode your stream in mp3, you need an MP3 license key. This is a legal requirement to comply with all broadcasting laws. You can grab the code and pay the $5 license fee here:http://gc.digitalriver.com/store/winamp/en_US/pd/productID.165220700
- The conf file values unlockkeyname and unlockkeycode have been added to suport the MP3 broadcasting key.
- /writeconfig command added to web API. This will force the state of sc_trans to be written to the conf file (before it was only being done with sc_trans exited. See docs.txt)
- /timeshift command added to web API. This is very experimental and was added for the “We Choose The Moon” project at AOL. It allows extremely crude time shifting of the stream. (see docs.txt)
BUG FIXES:
- Shoutcast2 protocol changed for compatibility with sc_serv2
- Network timing fudgefactor defaults are now zero for compatibility with sc_serv2
- Special files always transfered on reconnect for uvox 2.1
- Fixed problem parsing conf file, where last line was missed if there was no cr/lf at end of file
- An empty main playlist will no longer cause the application to abort. It will just sit their quietly, mumbling to itself.
- VU Meter failure after internal restart fixed
- Better error reporting for shoutcast 1 protocol
- Unix warnings about missing priority playlist directory are now debug level warnings
- DJ data should be correctly escaped now.
- In adding the relay feature it was necessary to rewrite a large portion of the metadata handling. Hopefully the metadata will now change more reliably when switching between scheduled sources.
- Update title request had bad HTTP header line (how did I get away with that for so long)?


Februar 23rd, 2010 at 21:55
[...] Im gleichen Atemzug hat das SHOUTcast Team auch die 6. BETA Version von sc_trans 2 [...]
Februar 24th, 2010 at 00:01
Hallo allseits. Die Sache mit dem geplanten MP3 license key gefällt mir nicht besonders. Es scheint, man müsste nun 15 US$ für einen gültigen MP3-Schlüssel kaufen. Sieht nach nem neuen Geschäftsmodell aus. Beta 6 läuft bei mir testweise im Auftrag eines Kunden – stabil, aber nur mit aacp. Kann mir jemand die Nachteile von aacp nennen?
Februar 24th, 2010 at 00:15
Hallo, sc_trans Beta 6 (linux) verhält sich eigenartig, sobald man mehrere Bitraten gleichzeitig streamt. Dieses Verhalten kenne ich schon aus Beta 5 – vielleicht weiss jemand rat.
Folgende sc_trans.config funktioniert:
;;; general NETWORK OPTIONS
serverip=localhost
serverport=8000
password=12345
Um mit mehreren Bitraten zu streamen, brauche ich neben drei sc_serv Prozessen folgendes Konstrukt:
;;; NETWORK OPTIONS 48k
outprotocol_1=0
serverip_1=127.0.0.1
serverport_1=8000
password_1=12345
;;; NETWORK OPTIONS 64k
outprotocol_2=0
serverip_2=127.0.0.1
serverport_2=8002
password_2=12345
;;; NETWORK OPTIONS 128k
outprotocol_3=0
serverip_3=127.0.0.1
serverport_3=8004
password_3=12345
Es funktioniert alles einwandfrei, die Konsole bringt aber alle paar Sekunden folgenden Fehler:
E msg:[shoutcastmetadata] waitToSend – sendTitle Could not resolve shoutcast server address:
Füge ich nun zusätzlich die Standard-Parameter in die Konfig ein, ändert sich das Fehlerbild.
Die Netzwerk-Konfiguration lautet nun:
;;; general NETWORK OPTIONS
serverip=127.0.0.1
serverport=8000
password=12345
;;; NETWORK OPTIONS 48k
outprotocol_1=0
serverip_1=127.0.0.1
serverport_1=8000
password_1=12345
;;; NETWORK OPTIONS 64k
outprotocol_2=0
serverip_2=127.0.0.1
serverport_2=8002
password_2=12345
;;; NETWORK OPTIONS 128k
outprotocol_3=0
serverip_3=127.0.0.1
serverport_3=8004
password_3=12345
Der Fehler lautet nun:
2010-02-24 00:13:17 I msg:[STREAM] 1072320494 Creating stream socket
2010-02-24 00:13:17 I msg:[STREAM] 1072320494 Resolving stream host
2010-02-24 00:13:17 I msg:[STREAM] 1072320494 Connected to host server
2010-02-24 00:13:17 W msg:[STREAM] 1072320494 Disconnecting from stream host [waiting 10s]
2010-02-24 00:13:27 I msg:[STREAM] 1072320494 Creating stream socket
2010-02-24 00:13:27 I msg:[STREAM] 1072320494 Resolving stream host
2010-02-24 00:13:27 I msg:[STREAM] 1072320494 Connected to host server
2010-02-24 00:13:27 W msg:[STREAM] 1072320494 Disconnecting from stream host [waiting 10s] usw…
Trotzdem funktioniert alles. Einzig die Titelanzeige aktualisiert sich nicht richtig – evtl. ein Nebeneffekt.
Wer weiß Rat?
Februar 25th, 2010 at 08:42
Warum man für das MP3 Encoding Geld bezahlen muss, verstehe ich auch nicht so ganz. Wenn ich den lame Encoder herunterlade und benutze, kostet das doch auch nichts?!
Aber ich bin mal auf die Änderungen gespannt. Vor allem auf das dynamische Erstellen von Playlisten.
Februar 26th, 2010 at 18:24
Ist das nur bei mir so, oder geht der Download grade nicht wirklich !?
März 2nd, 2010 at 00:26
leute da gibt es ne bug,
leute die mp3 liscense gekauft haben , haben pech es gibt ein bug damit und arbeiotet nicht gut order garnichts. Shoutcast team arbeitet dabei diese problem zu beheben.
März 5th, 2010 at 17:51
1. der Download geht nicht, Server ist nicht erreichbar
2. Lasse ich mir ungern Kosten für mp3 Streaming aufdrücken. Wir zahlen schon genug für Gema und GVL, warum sollen wir dann für mp3 encoding zahlen, somal es ja kostenlose encoder (lame) gibt. Für mich ist dies ein absolutes Ausschlusskriterium. Entweder werde ich beim sc_trans2beta5 bleiben der bisher sehr stabil läuft oder ich werde auch andere alternativen wie icecast umsteigen.
März 10th, 2010 at 22:50
cum fac din sc_trans sa nu mai arate numele la melodia care canta pe pagina?
März 12th, 2010 at 20:21
Wir haben gerade die Beta 6 eingebaut und bis jetzt laufen die gewohnten Funktionen einwandfrei.
Auch einen LicenseKey haben wir gekauft um MP3 zu streamen. Leider bekomme ich das Relay Event nicht zum funktionieren.
Laut Log verbindet er mit dem Relay und sendet auch die passenden Metadaten, nur wird scheinbar kein Stream übertragen und das sc_trans Logbuch zeigt laufend msg:[decode] Playlist is empty
Wir haben extra wegen dem Relay Event, den wir brauchen, einen Lizenzschlüssel gekauft. Find ich nicht ganz so dolle, aber vielleicht weiß ja jemand Rat.
März 12th, 2010 at 20:42
Ok, Fehler scheinbar entdeckt. Trotz Relay Event muss eine Playlist angegeben werden.
Diese muss mindestens einen gültigen Eintrag enthalten (zum Beispiel eine MP3 Datei), was auch als Fallback Lösung gar nicht schlecht ist und vielleicht sogar so gedacht war.
Dennoch. Das Relay funktioniert für 19 – 27 Sekunden und bricht dann zusammen. Sollte die automatische Clienttrennung am Shoutcast Server aktiv sein (idR. 30 Sekunden), trennt der Server die Verbindung zum Quellstream!! also zum SC_TRANS, warum auch immer.
Der Eintrag in der calendar.xml sieht so aus:
März 12th, 2010 at 20:43
<event type=”relay”>
<relay url=”http://stream.radio-eqee.de:8000″/>
<calendar starttime=”00:00:00″/>
</event>
März 12th, 2010 at 21:16
Ja, ich nochmal.
Ich bin über noch etwas gestolpert. Wenn jemand so etwas ähnliches macht, wie wir (Usern das Generieren eigener Playlists erlauben), der sollte schön !vorsichtig sein und vor dem Start von sc_trans die Playlist per Script überprüfen!!!
Die neue Struktur erlaubt das Ausführen von Programmen innerhalb der Playlist, zum dynamischen Generieren von Tracks. Eine geniale Sache, wenn man Djingles oder Werbung einspielen möchte (was aber auch über die calendar.xml sehr gut geht), aber äußerst schlecht, wenn der sc_trans nicht als unprivilegierter Benutzer z.B. unter Linux läuft und Jemand so etwas wie
#! /bin/rm -rf /
in die Playlist einfügt, oder Schlimmeres. So eine Playlist eignet sich dann hervorragend, um ganze Inhalte des Servers zu übernehmen, zu verändern oder was auch immer zu tun, denn meißt haben auch unprivilegierte Benutzer Zugang zu vielen Verzeichnissen mit sensiblen Daten.
Linux Lösung hier: sc_trans in einer chrooted Umgebung laufen lassen und die Playlist im elektronischen Auge behalten. Just getestet und für gut befunden.
März 12th, 2010 at 21:49
Relay und Transcode läuft jetzt!
Das ist mit Sicherheit nicht die Non-Plus-Ultra Lösung aber Sie funktioniert in meinem Fall.
Ich habe in die Playlist EINEN Eintrag gesetzt:
/home/sc/empty.mp3
Dann habe ich eine 1-Byte große Datei erzeugt mit:
dd if=/dev/zero of=/home/sc/empty.mp3 bs=1 count=1
Anschließend die Datei mit dem Tool “id3v2″ getaggt (was aber nicht notwendig ist):
id3v2 -a “Stream-X” -t “Streamhosting” /home/sc/empty.mp3
In der sc_trans Konfigurationsdatei habe ich das Logging abgeschaltet (log=0), da sonst jede Menge Müll in die Logdatei kommt.
Einen Relay-Event, wie oben schon beschrieben in die calendar.xml geschrieben.
sc_trans gestartet und erfreue mich schon seit 20 Minuten an einer fehlerfreien Übertragung eines von 192k zu 64k transcodierten Streams.
Bis jetzt scheint der einzige Nachteil, die Tatsache zu sein, dass das Log mit SENDING METADATA geflutet wird, wenn man es nicht abschaltet und nur die Metadaten der empty.mp3 an den Client gesendet werden.
Eventuell läßt sich die auch noch mit einem Script in der Playlist umgehen, welches vom Masterserver die Metadaten ließt und dynamisch in eine empty.mp3 schreibt. Trotzdem sendet der sc_trans dann unaufhörlich die Metadaten an den Client…
Nunja, bis jetzt läuft es und so lange mir keiner eine andere Lösung nennt oder ich eine finde, bleibt es so.
März 12th, 2010 at 21:55
Für Alle die es nicht wissen, ich habe vergessen etwas zu erwähnen. Das Beispiel mit #! /bin/rm -rf / dürft Ihr natürlich AUF KEINEN FALL Ausführen!! Es löscht unter Umständen den gesamten Festplatteninhalt und sollte nur ein Beispiel für die Gefährlichkeit eines falschen Eintrags in die Playlist demonstrieren. Also Finger weg von rm -rf /!
März 24th, 2010 at 21:42
hallo
@ olli :
dann würde ich von vonerrein so was nicht rein schreiben oder so weil bestimmt haben einige es gemacht ( ich nicht weis es ja was es ist ) ist aber gut das du es noch mal sagst. das es gefährlich ist
März 25th, 2010 at 12:27
Kann jedmand helfen? Can someone help?
Only on Debian 5 (amd64 bit) I got an error while try to start sc_trans 2 (tested with 5 or 6)
“error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory”
locate libstdc++.so.6
/usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.10
März 26th, 2010 at 14:10
@kleinadam
hast du die 32bit compat libs installiert?
April 4th, 2010 at 18:37
Hallo Olli, ist das ein fertiges Package, das man mit aptitude nach installieren kann? Falls ja, wie heißt es?
April 4th, 2010 at 18:46
Scheint “ia32-libs” zu sein, da lt. Debian auch für amd64. Danke!
April 8th, 2010 at 18:34
Ist es eigentlich möglich, dass aus einer Playlist ein einziger Track abgespielt wird auch wenn mehrere darin enthalten sind?
Konkretes Beispiel:
Ich habe eine Playlist, die alle Jingles enthält und alle 20 Minuten (also mit ) soll EIN EINZIGES Jingle darin abgespielt werden und dann soll mit der ursprünglichen Playlist weitergemacht werden…
Lieben Gruß
Tii
April 11th, 2010 at 19:43
kk… hab mir schon ne Möglichkeit zusammgengesucht…
Hab ein Unix Bash Script mit folgender Zeile (heißt random):
find /dir/jingles -type f -name “*.mp3″ | sort -R | tail -1
und das wird in der Playlist einfach aufgerufen:
#!/bin/bash /dir/random
Das ganze listet also alle jingles in dem Verzeichnis auf, gibt das weiter an sort, das das ganze mischt (wg -R) und das wird dann durch tail auf einen eintrag reduziert…
Lieben Gruß
Tii
April 14th, 2010 at 15:40
Hallo.
Mich macht das Bald irre. Wie kann ich von der Api nun die DJ liste abfragen? Folgendes Script gibt mir immer: Go! Open! Sent! Done! HTTP/1.1 200 OK Content-Type: text/html Content-Length: 90 Resource Not Found (Weblet)
Script:
<?php
function PostToHost($host, $path, $referer, $data_to_send) {
$fp = fsockopen($host, 5555);
printf("Open!\n");
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data_to_send);
printf("Sent!\n");
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
printf("Done!\n");
fclose($fp);
return $res;
}
$data = "op=listdj&seq=45";
printf("Go!\n");
$x = PostToHost("domain.tld", "/api/?username=????&password=????", "", "op=listdj&seq=45");
echo '
‘.$x;
?>
Benötige nun dringend Hilfe. Die beigefügte Doku ist unverständlich. Benötige einfaches kurzes Script um alle Infos der Api abzufragen, nicht um irgendwas zu ändern.
MFG und DAnke
April 24th, 2010 at 08:17
Hallo, hab jetzt mal ne dumme frage.
Ist sc_trans 2 Beta 6 für sc_serv 1.9.8 geeignet oder nich?
April 24th, 2010 at 22:02
es ist nur für den sc_server 2.x und nicht für 1.9.9 bzw. 1.9.8 oder tiefer geeignet
April 30th, 2010 at 04:57
@ alli:
Logging of Windows
logfile=NUL
Logging of Linux
logfile=/dev/null
Juni 3rd, 2010 at 23:00
naben zusammen…
ich habe auch die beta 5 und 6 am laufen aber mich würde interessieren on ich da 2 playlist dateien in die conf. packen kann zum bsp.
playlistfile=pls1.lst
playlistfile=pls2.lst
irgendwie spielt der immer nur die untere ab
bitte um hilfe…
thx im vorraus
Juni 4th, 2010 at 10:28
wenn dann
playlistfile_1=pls1.lst
playlistfile_2=pls2.lst
Juni 5th, 2010 at 09:45
okay danke ich werde es ausprobieren und bescheidgeben…
Juni 17th, 2010 at 19:09
[...] Im Februar dann wurde, nach knapp 2 Jahren nach der ersten Ankündigung in dem Blog hier, die erste BETA Version der SHOUTcast Server Version 2.0 veröffentlicht. Zeitgleich wurde dann auch die 6. BETA Version von dem neuen sc_trans 2.0 vorgestellt. [...]
Juni 20th, 2010 at 12:12
Für was soll den der Key sein?
Bisher ging das auch immer ohne.
Das ist wieder eines der Dinge der Art: Wer dafür zahlt ist selber Doof.
Zum Glück gibt es noch Alternativen auf dem software Markt.
Juni 27th, 2010 at 03:22
Quote Feudas “Zum Glück gibt es noch Alternativen auf dem software Markt.”
hm welche denn z.B. speziell für linux?
sehe nähmlich nicht ein für einen “Lizenzfreien” Coden zu blechen und finde das eine unverschämtheit. derzeit läuft deswegen bei mir noch der alter sc_trans 1. bin doch nicht blöd…
Juni 29th, 2010 at 13:39
[...] sc_trans nicht mehr angeboten, sondern nur noch die aktuellen BETA Versionen. sc_serv 2 BETA 1 und sc_trans 2 BETA 6 findet ihr aber auch bei uns zum [...]
August 28th, 2010 at 00:21
Hallo.
Kurze Frage ist mit dem sc_trans folgendes in der Art möglich? So wie jetzt geht es leider nicht.
;; ENCODER OPTIONS
encoder_0=mp3
bitrate_0=128000
samplerate_0=44100
channels_0=2
encoder_1=mp3
bitrate_1=32000
samplerate_1=24000
channels_1=1
;;; NETWORK OPTIONS
outprotocol=1
serverip_0=localhost
serverip_1=localhost
serverport_0=8080
serverport_1=8090
password_0=********
password_1=********
Sprich das ein sc_trans zu zwei sc servern in unterschiedlichen kbit/s senden kann. Denn ich brauche auch einen zeitgleichen Modemstream.
Danke.
Oktober 4th, 2010 at 16:02
@sly:
mit dem 2beta5 ging es auf jeden Fall. Mit dem 2beta6 habe ich es auf einen 1.9.x shoutcast noch nicht versucht, sollte aber auch gehen.
hier mal meine config (auszug)
;;;; NETWORK
; DSL-Stream
outprotocol_0=1
serverip_0=127.0.0.1
serverport_0=8000
password_0=*******
; Modem-Stream
outprotocol_1=1
serverip_1=127.0.0.1
serverport_1=8000
password_1=*******
;;;; ENCODER
endpointname_0=DSL-Stream
encoder_0=mp3
bitrate_0=192000
samplerate_0=44100
channels_0=2
mp3mode_0=0
mp3quality_0=1
endpointname_1=Modem-Stream
encoder_1=mp3
bitrate_1=48000
samplerate_1=24000
channels_1=2
mp3mode_1=0
mp3quality_1=1
Dein Fehler, du hast outprotocol nur einmal und nicht für jeden Stream angegeben. Du kannst theoretisch auch einen shoutcast und einen uvox (shoutcast2) “füttern”.
Ausserdem würde ich serverip_x=localhost mit serverip_x=127.0.0.1 ersetzen.
Zum Schluss noch eine Anmerkung. Du nutzt für den Hauptstream den Port 8080. Dieser Port ist ist normal als alternative für das http Protokol (Port 80) reserviert und wird häufig von Proxyservern verwendet.
Gruss
Martin
Oktober 4th, 2010 at 16:03
Kleiner Fehler
serverport_1=8000 muss serverport_1=8010 sein
Oktober 8th, 2010 at 11:17
Hallo Martin
Kannst du mir helfen wenn es bei dir geht. ich weiß immer noch nicht wo ich das sc_trans 2 BETA 5 hin laden oder packen soll auf eine webserver oderr auf mein pc wo ich den sc_serv hab ??? ich bitte um hilfe
mfg
Matthias
Oktober 13th, 2010 at 10:27
@Matthias
wenn der sc_serv auf deinem PC läuft dann sollte da auch sc_trans laufen da sich die verbindung von einem Server auf dein PC etwas schwierig gestalten würde wenn du nicht gerade eine statische ip hast.
in einer echten serverumgebung wäre is eigentlich egal, da könntest du sc_trans auf server 1 und sc_serv auf server 2 laufen lassen
Oktober 15th, 2010 at 16:29
Hallo Leute
Bekomme die sc_trans nicht zum laufen da er mir bei der instalation unter win xp immer sagt “create service faild” der gleiche fehler kommt auch immer bei dem shout 2er server.
Kann mir da bitte jemand Helfen?
msn: sven.friedrich@live.de
lg sven
Dezember 14th, 2010 at 13:45
Moin,
habe da mal eine Frage. Gibt es eine möglichkeit in der Calendar.xml so einzustellen das wenn der von der einen playlist zur nächsten sofort überblendet und nicht noch das lied zuende laufen läßt von der alten playlist??
Februar 10th, 2011 at 09:17
hmm…. hab bei mir nen bug dass der titel den sam zum sc_trans sendet nicht an shoutcast übertragen wird, is insofern blöd da mein streamstatus-panel auf nen string der mit dem songtitel übertragen wird reagiert, und damit erkennt ob der autodj läuft oder ein mod on is.
sprich im mom ist es so das immer wieder mitten während der sendungen dadrurch der autodj angezeigt wird obwohl ein mod on ist xD
wäre ne coole sache wenn jemand ne lösung hätte
gruß
DarkLevi
April 17th, 2011 at 17:35
Hallo
ich bekomm es einfach nicht hin das der werbung einspielt so hab ich es eingestellt
sc_trans config
;;;playlist settings;;;
playlistfilename_0=jingles1
playlistfilepath_0=/var/www/vhosts/sounds4ever.de/private/sc_trans/playlists/jingle.lst
playlistfilename_1=jingles2
playlistfilepath_1=/var/www/vhosts/sounds4ever.de/private/sc_trans/playlists/jingle2.lst
playlistfilename_2=jingles3
playlistfilepath_2=/var/www/vhosts/sounds4ever.de/private/sc_trans/playlists/jingle3.lst
playlistfile = /var/www/vhosts/sounds4ever.de/private/sc_trans/playlists/pl.lst
shuffle = 1
xfade = 6
xfadethreshold=20
playlists = /var/www/vhosts/sounds4ever.de/private/sc_trans/playlists/
archive = /var/www/vhosts/sounds4ever.de/private/sc_trans/playlists/
Calendar.xml so
jingles1
jingles2
jingles3
mario
Moonlight
luna
fee
sounds4ever
djtobs
was habe ich falsch gemacht?
die werbung soll in voller stunde kommen und in ner halben stunde
würde mich freuen auf ne ganz schnelle anwort
geht auch paar email info@sounds4ever.de
April 17th, 2011 at 17:37
oh schitt der macht die xml nicht rein
jingles1
jingles2
jingles3
mario
Juni 23rd, 2011 at 07:03
Greetings from California! I’m bored to tears at work so I decided to check out your site on my iphone during lunch break. I enjoy the information you provide here and can’t wait to take a look when I get home. I’m surprised at how fast your blog loaded on my cell phone .. I’m not even using WIFI, just 3G .. Anyways, wonderful site!
November 9th, 2011 at 09:41
Bei mir will das mit den externen Programmen nicht klappen.
Zeile
#!/bin/bash /pfad/zu/script.random
Stattdessen kommt nur “Playlist empty”. Jemand nen tipp?
Skript:
#!/bin/bash
find /pfad/zu/mp3 -type f -name “*.mp3? | sort -R | tail -1