Tüm Platformlar için Hızlı Uygulama Geliştirme Kitabı... Delphi
Ön Sipariş Talebinde Bulunan Üyelerimiz
Sipariş Talebinde Bulunan Üyelerimiz

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
VLC Youtube
#1
VLC player bileşeni ile youtube  videolarını göstermek istedim. Bunun için bünyesinde bir kaç yapı var fakat her nedense düzgün çalıştırmadım.

VlcPlayer.Play(Edit1.Text);
VlcPlayer.PlayYoutube(Edit1.Text);

Bunlar bazen çalışıyor bazen çalışmıyor. Herhangi bir hata vermiyor öylece bekliyor. Sorunun nerede olduğunu anlamış değilim.

1) VLC playerı windowsa kurdum.
2) plugin , dll ve pas dosyalarını exenin olduğu klasöre ekledim.
3) VLC bileşenini delphiye kurdum.

Birtek activex olarak projeye eklemedim. Acaba youtube için activex şartmı ?
Cevapla
#2
vlcplayer bileşenini kod ile create ettikten sonra işi bittiğinde free edip, öyle bir deneyebilir misiniz?
Cevapla
#3
Merhaba.

Daha önce Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Hatta LOGO vs. koymuştuk.  

Forma 1 adet TPanel (video penceresi) ile 1 adet TTrackBar ( ses seviye kontrol) ekleyip aşağıdaki procedure'ü örnekteki gibi çalıştırıp dener misin ?

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol kurduğunu düşünerek bunu yazdım. 
(Eğer kurmamışsan kurmana da lüzum yok, proje UNIT(s) klasöründe yer alması kafidir. ) Idea

Uses PasLibVlcPlayerUnit, PasLibVlcClassUnit;

Var
 xVLCPlayer    : PasLibVlcPlayerUnit.TPasLibVlcPlayer;
 xVLCMediaList : PasLibVlcPlayerUnit.TPasLibVlcMediaList;

procedure VLCPlayer( strVideo: String; VideoPanel:TPanel; SesTrackBar:TTrackBar );
begin
 if xVLCPlayer    = nil
 then xVLCPlayer := TPasLibVlcPlayer.Create(nil);

 if xVLCMediaList = nil
 then xVLCMediaList := TPasLibVlcMediaList.Create(nil);

 with xVLCPlayer do
 begin
   Parent       := VideoPanel;
   Align        := alClient;
   AudioOutput  := PasLibVlcClassUnit.aoWaveOut;
   if xVLCMediaList.IsPlay then
   begin
     xVLCMediaList.Stop;
     xVLCMediaList.Clear;
   end;
   xVLCMediaList.Player := xVLCPlayer;
   Application.ProcessMessages;
   xVLCMediaList.Add( strVideo );
   xVLCMediaList.PlayItem( xVLCMediaList.GetItemAtIndex(0) );
 end;

 xVLCPlayer.SetAudioVolume( 50 );

 if SesTrackBar <> nil then
 begin
   SesTrackBar.Min      := 0;
   SesTrackBar.Max      := 100;
   SesTrackBar.Position := 50;
 end;
end;

Kullanımı :
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
 strFile : String;
begin
 strFile := 'https://www.youtube.com/watch?v=uiMMWLiazYI';
 VLCPlayer( strFile, Panel1, TrackBar1 );
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  xVLCPlayer.SetAudioVolume( TTrackBar(Sender).Max - TTrackBar(Sender).Position );
end;
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#4
Mrmarman hocam, dediğiniz şekilde denedim çalıştı fakat video çok geç başlıyor 15 sn kadar bekliyor ve görüntü bazen buzlanma yapıyor. Sanırım vlc bileşininden kaynaklı
Cevapla
#5
Görüntü kalitesi değişkenliği ağ hızına göre stream edilen klip kalitesiyle ilgili olmalı. 

Ben deneyip yolladım FullHD yayın aldım. (kablo kotam ay başı ile maksimuma döndü 25 mb hızında) 

Gecikme ise muhtemelen reklam yayınına denk gelen bir akış nedenli olabilir. VLC nasıl davranıyor ancak yazılımcısı cevap verebilir. 

Ayrıca geçmiş tecrübe, VLC playerin dll dosyalarını proje klasörüne aldığında kısıtlı kullanıyorsun. çünkü LUA ve PlugIn klasörü içerisinde stream, video codec, arayüz vb. bir çok eklenti hazır durumda. 

DLL dosyalarını silerek orjinal kurulu konumdan otomatik kullanılmasının önünü açtığında kalite de hız da (codec tercihi ile ilişkili) artacağını değerlendiriyorum. 

Sonucu bildirirsen herkes için faydalı olur. 
Başarılar
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#6
ok üstadım deneyip sonuçları paylaşıyorum. VLC playerı açıp aynı adresi orada denediğimde görüntü saniyede geliyor. Sanırım sorun video kalitesinde değil hocam. Görüntü kalitesini değiştirip dener sonuçları paylaşırım. Mediaplayer youtube için kullanılabiliyormu ?
Cevapla
#7
Merhaba.

İşten döndüm bilgisayar başına oturup şu olayı bir araştırayım dedim. iki şey buldum.
(1) Kötü haber : Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol 
Alıntı:That's because the link you provided is NOT the link to the video.
VLC media player can get the actual link to the YouTube video, but libVLC will not do this.
Senin bildiğin ancak başlığı okuyan aşina olmayan misafirler için çevirelim, (cevaben) ... Sebebi Youtube linklerinin gerçek video linkleri olmayışıdır. VLC Media Player gerçek video linkini Yotube linkinden alabiliyor, ancak libVLC bunu yapamıyor.

Gecikme bundan olmalı. Şimdi iyi haber, ama üzerinde çalışılması gerek. Çünkü bir defa denedim, SES ve GÖRÜNTÜ linkleri ayrı ayrı geldi.
(2) Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol isminde Pyton'da yazılmış bir tool var. Bunu uygun vakitte Delphi'ye de çeviririz, sonuçta web request, response trafiği güdüyor. 

Yaptığı iş basit : komut satırına youtube-dl -g uiMMWLiazYI şeklinde YoutubeID'sini verdiğinde sana aşağıdaki CODE tagına aldığım şekilde Video ve Audio gerçek linklerini döndürüyor. İlginç ve faydalı bir çalışma.
Kod:
c:\ARMAN.Study\Programming\PasLibVLC>youtube-dl -g uiMMWLiazYI

https://r4---sn-nv47lnez.googlevideo.com/videoplayback?aitags=133%2C134%2C135%2C136%2C137%2C160%2C242%2C243%2C244%2C247%2C248%2C278&pl=19&id=o-AF83wMS5YEUUGHhHBGL7M9ih5-toue3luHS-m4SWVHI0&mime=video%2Fwebm&fvip=4&ms=au%2Conr&mm=31%2C26&mv=m&mt=1520022094&sparams=aitags%2Cclen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cexpire&mn=sn-nv47lnez%2Csn-4g5e6ney&ip=94.54.86.2&key=yt6&gir=yes&ipbits=0&lmt=1512368288556744&c=WEB&dur=304.504&clen=77602528&initcwndbps=640000&source=youtube&expire=1520043871&itag=248&keepalive=yes&requiressl=yes&signature=260D72CE97BA8F9015549DAB9BA7DD45E7401458.992EF2E7F4CB9A2628CAA0F283DC42EC0E82C7DE&ei=_7KZWvenCovj1gKb5JTABQ&ratebypass=yes

https://r4---sn-nv47lnez.googlevideo.com/videoplayback?pl=19&id=o-AF83wMS5YEUUGHhHBGL7M9ih5-toue3luHS-m4SWVHI0&mime=audio%2Fmp4&fvip=4&ms=au%2Conr&mm=31%2C26&mv=m&mt=1520022094&sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cexpire&mn=sn-nv47lnez%2Csn-4g5e6ney&ip=94.54.86.2&key=yt6&gir=yes&ipbits=0&lmt=1512365775172141&c=WEB&dur=304.599&clen=4838455&initcwndbps=640000&source=youtube&expire=1520043871&itag=140&keepalive=yes&requiressl=yes&signature=886E5C58D5E4883F6F24F862829E2C8C0390EA29.72D31AF83E1539AAFCF8A5039C14B376B0F2791D&ei=_7KZWvenCovj1gKb5JTABQ&ratebypass=yes

Arrow Birinci üretilmiş Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol.

Arrow İkinci üretilmiş Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol


Dediğim gibi üzerine çalışılabilir başka bir konu ancak bu başlık ile ilişkili olduğundan meraklısına diyerek paylaşmak istedim.  Idea

Başarılar.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#8
Üstadım emeğine sağlık bu harika bilgi için çok teşekkürler. Gördüğüm kadarıyla her şekilde de (webbrowser ile veya VLC ile ) sorunlu bir konu. Webbrowser ile yapsak explorerdan kaynaklı eksiklikler , vlc ile yapsak youtube tarafı sorunlardan malesef kurtulamayıp projeyi çöpe atıcaz..
Emeği geçen , bilgisini paylaşan herkese teşekkürler.
Cevapla
#9
Çöp demek erken.

Debug mode olduğu ve Delphi IDE içinden çalıştırdığın ihtimali değerlendirildiğinde ekstra bekleme söz konusu olabilir, ancak Release EXE'yi çalıştırdığında (IDE  dışından) öyle can sıkıcı bir bekleme olmadı. 

Bir local animasyonu (video birazdan görüntülenecek cinsinden bir görseli ) ön izleme ekranı olarak koyarsan iş görür diye düşünüyorum  

Yine de karar senin. 
Başarılar
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif


Cevapla
#10
Üstadım sayenizde sorunu çözdük. Dediğiniz gibi gecikme sorunu IDE içinde çalıştırmaktan çıktı. Exe den çalıştırınca 3 saniye içinde açıldı video Smile)) Süpersiniz. Şimdi video çözünürlüğünü düşürmeyi bulup buna dahil edersem sanırım hiç sorun kalmayacak. Çooook teşekkürler
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Youtube için kesin çözüm nedir Lord_Ares 20 1.479 24-02-2018, Saat: 08:47
Son Yorum: Lord_Ares



Konuyu Okuyanlar: 1 Ziyaretçi