Icecast / SHOUTcast MP3 Stream / icy-metaint

Atze

Top Contributor
moin
ich bin hier schon am verzeifeln, vielleicht weiß einer von euch weiter
hat jemand mit dem lesen von mp3 metainformationen aus nem icecast stream? ich frickel hier schon stunden rum, aber bekomm nie was brauchbares raus.

ich orientiere mich an folgender anleitung

- = [ AMPLE - An MP3 LEnder ] = -

Java:
       public static void getDamnMetaInf() throws IOException {

		final String url = "http://ws.stream.radio11.co.uk:8000/1";
		InputStream stream = new URL(url).openStream();

		int metaInt = 16000; // vorher aus dem header mit icy-metaint ermittelt

		byte[] soundBuffer = new byte[1];
		byte[] metaInfBlockLength = new byte[1];

		while (true) {

			int mp3Bytes = 0;
			while (mp3Bytes < metaInt) {
				mp3Bytes += stream.read(soundBuffer);
			}
			System.out.println("Read " + mp3Bytes + " bytes data"); // sollten 16000 sein
			int readLength = stream.read(metaInfBlockLength);
			System.out.println("Read " + readLength + " bytes metalength"); // sollte 1 sein
			int metaBytes = signedByteToInt(metaInfBlockLength[0]) * 16; // wert des header-längen-bytes mal 16
			System.out.println("Awaiting " + readLength + " bytes of metainf");
			// wenn meta vorhanden ist
			if (metaBytes > 0) {
				byte[] metaBuffer = new byte[metaBytes];
				int readMetaInf = stream.read(metaBuffer);
				System.out.println("Read " + readMetaInf + " bytes meta");
				String header = new String(metaBuffer);
				System.out.println("Header: " + header);
			}
		}
	}

	public static int signedByteToInt(byte value) {
		return (value & 0x7F) + (value < 0 ? 128 : 0);
	}

das ist kein code für den lifebetrieb, ist zum test runtergebrochen, aber der theorie nach müsste es doch klappen, oder?
der metaint wert ist definitiv 16000, das bekomme ich aus dem header. also warum bekommt man nach diesem schema nichts brauchbares raus?? jemand ne idee?? ist das auslesen des längenbytes für die metainf richtig? oder die konvertierung von byte in den string?

*edit*
oh, wohl falsches thema, kann ja dann bitte verschoben werden :)
 
Zuletzt bearbeitet:

Atze

Top Contributor
könnte den hier mal bitte jemand in die multimedia-ecke verschieben, oder wo immer er vielleicht öfter gelesen wird? :) danke

und ich habs jetzt mal mit nem winamp probiert, metainformationen sind auf jeden fall da, also winamp zeigt sie an. warum bekomm ich denn nur sch*** raus? sieht jemand den fehler?
 

Atze

Top Contributor
hat sich erledigt, hab vergessen den http-header zu skippen, dann kommt er wohl mit dem zählen durcheinander :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Server-Socket liest Input-Stream nicht Netzwerkprogrammierung 5
E Socket Werte mit DataInput- und Output- Stream übergeben Netzwerkprogrammierung 1
T MP3 Dateien Stream Netzwerkprogrammierung 3
C Byte Stream dekodieren Netzwerkprogrammierung 7
G Video aus RTSP Stream speichern Netzwerkprogrammierung 8
B Socket BufferedReader.readLine() beenden ohne den Stream zu closen Netzwerkprogrammierung 7
A versch. Daten im Stream erkennen Netzwerkprogrammierung 2
E stream speichern Netzwerkprogrammierung 5
S Dateitransfer - kein end of stream Netzwerkprogrammierung 5
M RTP Stream überprüfen... Netzwerkprogrammierung 4
K ein Thread pro Stream Netzwerkprogrammierung 2
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
B Pdf Stream von Servlet mit itext Netzwerkprogrammierung 12
K End of stream, BufferedInputStream Netzwerkprogrammierung 4
Kr0e Simpler HTTP Stream server Test Netzwerkprogrammierung 3
H String Array durch einen Stream schicken. Netzwerkprogrammierung 4
lacyuu Warum empfängt mein Stream keinen Input? Netzwerkprogrammierung 4
lordcarlos Erstes TCP programm - output stream problem Netzwerkprogrammierung 2
dayaftereh Bester Stream für ein Spiel? Netzwerkprogrammierung 15
N Socket Stream Schicken Netzwerkprogrammierung 13
N Socket Stream in String Netzwerkprogrammierung 4
M Bytes aus Stream lesen Netzwerkprogrammierung 3
J byte[] auf Stream schreiben Netzwerkprogrammierung 2
M ich habe ein stream problem Netzwerkprogrammierung 7
S Schnellster Stream Netzwerkprogrammierung 20
V Mehrere Streams durch einen Stream senden Netzwerkprogrammierung 14
W Was für ein Stream soll ich verwenden? Netzwerkprogrammierung 8
F Stream wird als Char übertragen. Char -> in String umwand Netzwerkprogrammierung 5
A java.io.StreamCorruptedException: invalid stream header Netzwerkprogrammierung 2
C invalid stream header Netzwerkprogrammierung 2
T Stream de-multiplexen Netzwerkprogrammierung 2
J gzip Stream weiterleiten Netzwerkprogrammierung 3
m@nu Ende von Stream bei HTTP-Request Netzwerkprogrammierung 3
C Problem mit Object-Stream Netzwerkprogrammierung 3
N TCP Stream auslesen Netzwerkprogrammierung 7
André B. Stream Bridge? Netzwerkprogrammierung 2
P Verschiedene Daten über einen Stream Netzwerkprogrammierung 4
T Musik-Stream: Server sendet die Datei zu schnell ? Netzwerkprogrammierung 3
N InternetRadio-Stream umleiten Netzwerkprogrammierung 2
G Writer oder Stream bei Socket? Netzwerkprogrammierung 2
G Datei über HTTP Stream senden Netzwerkprogrammierung 4

Ähnliche Java Themen


Oben