AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Mit BassVideo Youtube Video abspielen
Thema durchsuchen
Ansicht
Themen-Optionen

Mit BassVideo Youtube Video abspielen

Ein Thema von mich · begonnen am 27. Mär 2009
Antwort Antwort
mich

Registriert seit: 27. Mär 2009
1 Beiträge
 
#1

Mit BassVideo Youtube Video abspielen

  Alt 27. Mär 2009, 15:43
Hallo,

ich versuche gerade ein Video von Youtube mit VideoBass.dll (+ Bass.dll) abzuspielen. Ich will dafür nicht die Einbettenfunktion von Youtube nutzen, da die nicht bei allen Video aktiviert ist, sondern über http://www.youtube.com/get_video?video_id=(ID)&t=(Key) abrufen. Das funktioniert aber nur zum Teil. Wenn ich die Adresse für die .flv-Videodatei übergib, spielt er es einwandfrei ab, ausser das Vorspulen und die Erkennung der Videolänge nicht funktioniert. Wenn ich aber die Adresse für das High Qualitiy Video im mp4-Format eingebe, zeigt es mir zwar die Video Breite und Höhe an, aber stürzt dann ab (MP4-Datei von Festplatte spielt er aber ab). Die Adresse selber ist richtig, denn wenn ich sie im VLC-Player eingebe, funktiert das Abspielen der MP4-Datei und auch dir FLV-Datei. Auch erkennt der VLC-Player die länge und man kann sogar verspulen. Wie mach ich das jetzt mit Delphi? Erstens mal, dass er das MP4 abspielt und zweitens, dass man vorspulen kann?

Versucht habe ich schon Folgendes:
Das MP4-Video mit delphi runterzuladen bis so ca. 20% fertig sind und die Datei mit BassVideo aufzurufen. Währendessen lass ich den Download weiterlaufen. Das funktioniert auch, problem dabei ist, dass BassVideo, nachdem es 20% des Videos abgespielt hat, einfach stoppt, obwohl die Datei mitlerweilen schon fertig geladen ist.
Delphi-Quellcode:
procedure TForm1.Button6Click(Sender: TObject);
var info: TBassVideoInfo;
begin
  //Videoformat erkennen
  if Pos('&fmt=',Edit8.Text)<> 0 then streamlocation:='C:\stream.mp4else streamlocation:='C:\stream.flv';

  //Datei puffern
  HTTPGet4.URL:=Edit8.Text;
  HTTPGet4.FileName:=streamlocation;
  HTTPGet4.GetFile;
  while Puffer<20 do //Warte, bis 20% gepuffert sind
  begin
   Label8.Caption:='Puffering... '+IntToStr(Puffer);
   Application.ProcessMessages;
  end;

  Bass_Init(-1, 44100, 0, 0, nil);
  BassVideo_Init();
  chan := BassVideo_StreamCreateFile(PChar(streamlocation), BASSVIDEO_AUTO_RESIZE or BASS_SAMPLE_LOOP, 0, @myVideoProc, nil);
  if chan=0 then
   begin
    showmessage('error');
    HTTPGet4.Abort;
    exit;
   end;

  BassVideo_GetInfo(chan,info);
  Form2.ClientHeight:=info.height;
  Form2.ClientWidth:=info.width;
  if chan>0 then Bass_SetVolume(progressbar1.Position / 100);
  Form2.Show;
  BassVideo_Play(chan); //Starte wiedergabe
end;
Am liebsten wärs mir ohne Download direkt vom Webserver zu spielen, so wie es VLC-Player auch kann, aber notfalls würde mir die Methode mit der Pufferung auch genügen.
(PS: Mit DSPack hab ichs auch schon probiert, jedoch ebenfalls ohne erfolg)
  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 23:14 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