MP3s wiedergeben

Anfängerfragen zum Programmieren mit PureBasic.
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

jear hat geschrieben:Hierder modifizierte Kode und eine Beispielvideo gezipt (1300 MB)
Gott sei Dank sind's nur 1,4 MB und nicht 1,3GB :)

Hier mein Ergebnis:

>>> Clip10sec.mpg <<<
MovieLength: 250 Frames
MovieInfo(0): 25 FPS
MovieWidth: 720
MovieHeight: 576
--------------------------------------------------


Und nun?
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

@Traumatic
Es sollte schlicht 1300 KB heißen, sorry.
Deine Frage "Und nun?" verstehe ich nicht ganz. Bezieht sich die auf den Unterschied 250 / 254 oder hast Du einen weiter modifizierten Kode benutzt, der nun die richtigen Werte ermittelt. Letzlich klappte mein Kode ja nur, weil ich den Wert für FPS mit 25.00 schlicht vorgegeben hatte.
Wie sieht der neue Kode denn aus?
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

jear hat geschrieben:@Traumatic
Es sollte schlicht 1300 KB heißen, sorry.
Deine Frage "Und nun?" verstehe ich nicht ganz. Bezieht sich die auf den Unterschied 250 / 254 oder hast Du einen weiter modifizierten Kode benutzt, der nun die richtigen Werte ermittelt. Letzlich klappte mein Kode ja nur, weil ich den Wert für FPS mit 25.00 schlicht vorgegeben hatte.
Wie sieht der neue Kode denn aus?
Nein nein, ich habe gar nichts geändert.

Die Werte sind die von der PB-Library ermittelten, mein Code springt da
gar nicht erst an.

Das "und nun?" sollte soviel heißen wie:
"Hmm... was machen wir jetzt? Bei mir geht es. Scheiße..."

Problem ist, ich würde gerne helfen, aber ohne das Problem nachvollziehen
zu können, sieht das schlecht aus.

Mein Code - ohne Deine Änderung - zeigt hier auch immer die absolut richtigen
Werte an (das mit dem Überlauf ist klar, eigentlich erwartet GetDuration()
auch ein LONGLONG, dass ich mir jetzt mal der einfachheit halber gespart
habe). Aber z.B. habe ich mit 12.5 und 29.97 FPS Files getestet - alles so
wie's sein soll. Deshalb ja auch die Bitte, mir mal eins Deiner Problem-Files
zur Verfügung zu stellen. Leider (?!) funktioniert das bei mir auch.

Das ermittlen der FPS und Frameanzahl wurde so auch schon in die PB-Library
integriert. Wo wir nicht weiterkamen, war das Seeking innerhalb von WMV.
Das will irgendwie einfach nicht funktionieren. Naja, dafür wird sich schon
auch noch eine Lösung finden. Wahrscheinlich muss der Filter-Graph anders
aufgebaut sein - mal schauen.

Trotzdem: Bei mir funktionert der Code. Wie Du merkst, ist das Thema
Videos abspielen / DirectShow eine ziemliche Sisyphus-Arbeit.
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

Das verstehe wer will.

Bei mir bleibt es bei den PB-Movie-Funktionen bei folgender Antwort :

>>> V:\Videomaterial\Traumatic\Clip10sec.mpg <<<
MovieLength: 101570472 Frames
MovieInfo(0): -150874 FPS
MovieWidth: 720
MovieHeight: 576
--------------------------------------------------

Nun ist es durchaus wahrscheinlich, dass sich die in DX wirksam werdenden Codecs und Filter auf den verschiedenen Rechnern voneinander unterscheiden.

Ich würde ja auch noch akzeptieren, dass ich mir da mit meiner Kiste Mist eingefangen hätte, wenn es irgendwelche anderen Anzeichen dafür gäbe. Tatsächlich kann ich hier aber Videos in allen Lagen und Variationen bearbeiten und abspielen, nur eben nicht mit den Movie-Funktionen von PB.
P.S. Bitte schaue in Deine PN !
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

jear hat geschrieben:P.S. Bitte schaue in Deine PN !
Ich melde mich.


Das alte Forum ist gerade erreichbar und ich dachte mir,
für's "Protokoll" stelle ich mal die verloren gegangenen
Postings wieder her:


traumatic / 07 Mai 2005 16:44:34 hat geschrieben: jear, Du hast recht!

Ich habe mir das heute noch mal in Ruhe reingetan...

Bei WMV z.B. rechnet DirectShow mit TIME_FORMAT_MEDIA_TIME,
bei AVIs mit TIME_FORMAT_FRAME. MovieLength() und MovieInfo()
gehen allerdings immer von TIME_FORMAT_FRAME aus (ich bin mit
Fred gerade den Source durchgegangen) und errechnet daher falsche
Werte.

Lösung folgt später.


(Mit VOB hatte ich BTW keine Probleme)




traumatic / 07 Mai 2005 18:22:02 hat geschrieben: Hier mal eine temporäre Lösung in PureBasic.
Kannst Du den Code bitte mal mit Deinen Files checken?

Ich habe hier nur ein paar WMVs die Probleme machten, mit denen geht's...

Code: Alles auswählen

; Examine Movies jear 2004-11-13

; additional functionality by (:t)raumatic! *lol*
;
; benötigt die F64 Library von freedimension & jack
;

Structure PB_StructureMovie
  Movie.IGraphBuilder
  MediaControl.IMediaControl
  MediaEvent.IMediaEventEx
  Window.IVideoWindow
  Audio.IBasicAudio
  Video.IBasicVideo
  MediaSeeking.IMediaSeeking
  State.l
EndStructure


MovieName.s

If InitMovie() = #False
  MessageRequester("Error", "Can't initialize movie playback !", 0)
  End
EndIf

Repeat
  MovieName = OpenFileRequester("Choose the movie to play", "", "Movie/Audio files|*.avi;*.mpg;*.asf;*.mp3;*.wav|All Files|*.*", 0)
  If MovieName = "" : Break : EndIf
  *movie.PB_StructureMovie = LoadMovie(1, MovieName)
  If *movie
    Debug ">>> " + MovieName + " <<<"

    *movie\MediaSeeking\GetTimeFormat(@curTimeFormat.GUID)
   
    If curTimeFormat\Data1 = $7B785574
      *movie\Video\get_AvgTimePerFrame(@avgTimePerFrame.double)
      *movie\MediaSeeking\GetDuration(@duration.l)
   
      fps.f = 1/F64_toFloat(avgTimePerFrame)
      duration = (duration / 10000000) * fps
   
      Debug "MovieLength: " + Str(duration) + " Frames"
      Debug "MovieInfo(0): " + StrF(fps) + " FPS"
    Else
      Debug "MovieLength: " + Str(MovieLength()) + " Frames"
      Debug "MovieInfo(0): " + Str(MovieInfo(0)/1000) + " FPS"
    EndIf
   
    Debug "MovieWidth: " + Str(MovieWidth())
    Debug "MovieHeight: " + Str(MovieHeight())
    Debug "--------------------------------------------------"
   
    FreeMovie(1)
  EndIf
ForEver
End
...und wenn sich ein Moderator genötigt fühlen sollte, diesen Thread irgendwo
abzutrennen und zu verschieben, ich würde mich freuen! :Wink:
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Habt ihr meine frage schon gelesen? Wenn nicht: Wie kann ich mp3s includen? mit dem includen hab ich immer probleme. Schon mal thx für antworten
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Hat keiner eine Idee? :cry:
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Beitrag von traumatic »

zigapeda hat geschrieben:Hat keiner eine Idee? :cry:
Formulier doch mal eine Frage...
IncludeBinary "deineDatei.mp3" wirst Du wohl nicht meinen, oder?
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

doch ..das meint er
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Richtig ich mein IncludeBinary "meinemp3.mp3" und wie kann ich sie jetzt abspielen? Wichtig nicht extern in eine datei speichern es sollte intern bleiben.
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Antworten