Registriert seit: 7. Aug 2014
9 Beiträge
|
Stream mit bass.dll
12. Apr 2015, 11:40
Hallo,
ich möchte mit der bass.dll gerne einen Stream emfangen, den Stream mit anderer Bitrate neue encodieren und an einen anderen Shoutcast-Server streamen. Der Computer hat keine Soundkarte deshalb verwende ich den decoding channel. Hier ist der Code:
Setup and create mixer:
Code:
BASS_FX_GetVersion();
BASS_Init(0, 44100, BASS_DEVICE_FREQ, 0, nil);
BASS_SetConfig(BASS_CONFIG_NET_PLAYLIST, 1);
BASS_SetConfig(BASS_CONFIG_FLOATDSP, 1);
mix:= BASS_Mixer_StreamCreate(44100, 2, BASS_STREAM_DECODE );
Create Player:
Code:
chan := BASS_StreamCreateURL('http://.....:8000/', 0 ,BASS_STREAM_DECODE,nil, nil);
s1 := BASS_Mixer_StreamAddChannel(mix, chan, BASS_STREAM_DECODE);
p := @chan;
Thread := BeginThread(nil,0 , @DataThread, p, 0, ThreadID); // Thread to receive data from channel
Thread to receive data from channel:
Code:
repeat
try
nread := BASS_ChannelGetData(chan, @buf, sizeof(buf));
except
err := Bass_errorgetcode();
end;
until (nread <= 0);
Mixer to Encoder:
Code:
Encoder := BASS_Encode_Start(mix, 'lame.exe -r -s 44100 -b 128 -', BASS_ENCODE_FP_16BIT, nil, nil);
s3 := BASS_Encode_CastInit(encoder, 'http://....:2680', 'PASSWORD', BASS_ENCODE_TYPE_MP3, 'TITLE','http://www.......','Pop', nil, nil, 128, TRUE);
p := @mix;
Thread := BeginThread(nil,0 , @DataThread, p, 0, ThreadID); // Thread to receive data from mixer
Thread to receive data from mixer:
Code:
repeat
try
nread := BASS_ChannelGetData(mix, @buf, sizeof(buf));
except
err := Bass_errorgetcode();
end;
until (nread <= 0);
Ich habe nun das Problem das der stream immer nach gut 5 Sekunden abbricht und nicht mehr gestreamed wird. Hat jemand eine Idee?
|