![]() |
Fmod Bitrate
Hallo.
Ich möchte die Bitrate eines Streams bestimmen, den ich mit Fmod wiedergebe. Jede sekunde lasse ich die aktuelle positon mit FSOUND_Stream_GetPosition(stream) bestimmen und in einer variabeln speichern. Die position wird in Byte angegeben. Das ist nicht das problem. nun subtrahiere ich von der aktuellen position die position, die in der letzten sekunde war und rechner das ganze in bit um. Leider kommen 4 stellige werte heraus. also insgesammt so bitrateout.caption:='Bitrate: '+inttostr(trunc((FSOUND_Stream_GetPosition(stream )-lastbit)/ 1000)* 8 )+' Kbt/s'; kann mir bitte irgendwer sagen, warum es keine vernümpftige bitrate ist? |
Re: Fmod Bitrate
Hallo Tanne,
vorausgesetzt, dass in lastbit wirklich die letzte Byte-Position gespeichert ist - und nicht die zuletzt berechnete Bitrate - kann es sich nur um ungewollte interne Typwandlungen handeln. Zerlege deine Formel mal und schau dir die Zwischenergebnisse an. Grüße vom marabu |
Re: Fmod Bitrate
Hi
Diesen Code habe ich aus meinem eigenen Project allerdings ich arbeite mit der Bass.dll der Code funzt nicht mit VBR. Ich rate dir auf Bass umzusteigen dann kann ich dir auch mit VBR helfen :wink:
Delphi-Quellcode:
function TFModEngine.Get_Bitrate : cardinal;
var fFileSize, fBitRate : cardinal; fFloatPos : Single; begin fFileSize:= FSOUND_Stream_GetLength(stream); fFloatPos:= trunc(FSOUND_Stream_GetLengthMs(stream) / 1000); fBitRate:= Trunc((fFileSize /(125 * fFloatPos)) + 0.5); if Odd(fBitRate) then Dec(fBitRate); result:= fBitRate; end; |
Re: Fmod Bitrate
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz