Thanks Ian. I couldn't find a way to make ffmpeg report the correct bitrate, but discovered it is reported at the time of cast init so, it's a bit hacky, but I now just generate 1 second of inaudible audio, add this into the mixer on loop and then when connection is made simply remove it and free it then it connects with the proper details.
Bass.BASS_Init(0, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero) 'Set to no sound device
Dim _Mixer As Integer = BassMix.BASS_Mixer_StreamCreate(44100, 2, BASSFlag.BASS_DEFAULT Or BASSFlag.BASS_MIXER_NONSTOP) 'Create a mixer
Bass.BASS_ChannelPlay(_Mixer, False) 'Play mixer
Dim _EncoderString As String = "ffmpeg.exe -loglevel -8 -f s16le -ac 2 -ar 44100 -i - -f adts -b:a 128k -c:a aac -"
Dim _EncoderContent As String = BassEnc.BASS_ENCODE_TYPE_AAC
Dim _Encoder As Integer = BassEnc.BASS_Encode_Start(_Mixer, _EncoderString, BASSEncode.BASS_ENCODE_NOHEAD Or BASSEncode.BASS_ENCODE_FP_16BIT Or BASSEncode.BASS_ENCODE_LIMIT, Nothing, IntPtr.Zero)
Dim _len As Integer = CInt(Bass.BASS_ChannelSeconds2Bytes(_Mixer, 1)) + 44
Dim _buf() As Byte = {82, 73, 70, 70, 54, 177, 2, 0, 87, 65, 86, 69, 102, 109, 116, 32, 18, 0, 0, 0, 1, 0, 2, 0, 68, 172, 0, 0, 16, 177, 2, 0, 4, 0, 16, 0, 0, 0, 100, 97, 116, 97, 16, 177, 2}
Array.Resize(_buf, _len)
For i As Integer = 45 To _len - 1
_buf(i) = 20 'Alter the buffer data to 20 as anything less doesn't have the desired effect
Next
Dim _hGCFile As GCHandle = GCHandle.Alloc(_buf, GCHandleType.Pinned)
Dim _Stream As Integer = Bass.BASS_StreamCreateFile(_hGCFile.AddrOfPinnedObject(), 0, _buf.Length, BASSFlag.BASS_STREAM_DECODE Or BASSFlag.BASS_SAMPLE_LOOP Or BASSFlag.BASS_SAMPLE_FLOAT)
BassMix.BASS_Mixer_StreamAddChannel(_Mixer, _Stream, BASSFlag.BASS_DEFAULT) 'Add to mixer
BassEnc.BASS_Encode_CastInit(_Encoder, "URL", "PASSWORD", _EncoderContent, "", "", "", "", Nothing, 128, False)
Bass.BASS_StreamFree(_Stream)
I'm sure there is a more elegant way of doing this, but hopefully this may help anyone else who is stuck in the same puzzle, or perhaps someone can shed some extra light on this situation.