AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fmod Bitrate

Ein Thema von Tanne · begonnen am 9. Jun 2005 · letzter Beitrag vom 9. Jun 2005
Antwort Antwort
Tanne

Registriert seit: 2. Mär 2005
Ort: Kiel
25 Beiträge
 
#1

Fmod Bitrate

  Alt 9. Jun 2005, 19:06
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?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Fmod Bitrate

  Alt 9. Jun 2005, 20:38
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
  Mit Zitat antworten Zitat
Wishmaster

Registriert seit: 14. Sep 2002
Ort: Steinbach, MB, Canada
301 Beiträge
 
Delphi XE2 Architect
 
#3

Re: Fmod Bitrate

  Alt 9. Jun 2005, 22:46
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


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;
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Fmod Bitrate

  Alt 9. Jun 2005, 23:20
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
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz