Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Fmod Bitrate (https://www.delphipraxis.net/47345-fmod-bitrate.html)

Tanne 9. Jun 2005 18:06


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?

marabu 9. Jun 2005 19:38

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

Wishmaster 9. Jun 2005 21:46

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;

Niko 9. Jun 2005 22:20

Re: Fmod Bitrate
 
Hi,

die aktuelle Bitrate bei VBR zu erhalten ist mit fmod nicht oder nur schwer möglich. Hier gibt's eine interessante Diskussion dazu, die aber auch zu keiner richtigen Lösung kommt.
Wenn dir die durchschnittliche Bitrate ausreicht, kannst du sie wie hier beschrieben berechnen.

Grüße,

Niko


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