Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
IP Kamera - VLC - Formu 36 Kareye Bölme
#1
Herkese Merhaba,

Bir kaç gündür çalıştığım firma içerisinde kullandığımız Wireless ip kameralar için masa üstü yazılımı geliştirme işi ile uğraşıyorum, proje bittiğinde de ücretsiz ve açık kaynak kodlu olarak yayınlamayı planlıyorum. Denediğim ücretli ve ücretsiz componetler arasında RTSP üzerinden yayın yapan kameraları izleme ve kaydetme konusunda en başarılı VLC Player ActiveX'i oldu(ileride ihtiyaç duyabilecekler için öneri niteliğinde Smile ), en yakın rakibi ücretli olan Visioforge ancak çoklu görüntü takibi veya kaydetme konusunda inanılmaz bir Memory isteği var,o nedenle kullanmanızı önermem.

Yukarıda bahsettiğim gibi tekli olarak bağlantı, random görüntü değiştirme, PTZ (kamera destekliyor ise sağa sola döndürme gibi işlemler), Zoom,video üzerine OSD olarak tabir edilen yazı ekleme gibi işlemleri tamamladım, son olarak DVR uygulamalarından aşina olduğunuz formu 8-16-36 kanal şeklinde bölüp 8-16-32 kamerayı ana form üzerinde aynı anda gösterme özelliğini nasıl yapabileceğim konusunu çözebilmiş değilim. 

Teoride runtime esnasında kullanıcı 16 kanal seçmiş ise ana formun width ve height değerini almalı, o değer üzerinden 16 adet eşit boyutta kare veya dikdörtgen ölçüsü hesaplamalı ve forma 16 adet panel koyup bu panellerin içerisine align'ı client olarak ayarlı şekilde 16 adet VLCPLAYER koymam gerekiyor. (Yanlış düşünüyor isem düzeltin lütfen.) Ancak bu tarz bir işlemle daha önce hiç uğraşmamış orta seviyeye yakın bir Delphi'ci olarak nasıl yapacağıma dair en ufak bir fikrim yok Smile

Araştırmadan sorma alışkanlığına kanser gözü ile bakan birisi olarak Türkçe ve İngilizce(auto align,divide form elements,auto positioning form elements gibi.) aklıma gelen tüm kelimeler ile arama yaptım ancak tatmin edici bir çözüme ulaşamadım, daha doğrusu bu yöntemin adı nedir, tam olarak aramam gereken konu başlığı nedir bu konuda yardımcı olabilecek veya benzer bir konuda elinde örnek olan arkadaşlarımız var ise yardımcı olabilirler/fikir verebilirler ise sevinirim. 

Şimdiden Teşekkürler Smile
Cevapla
#2
Merhaba,
Bu tip kapsamlı ve önem arzeden projelere başlamadan önce mutlaka Gereksinim ve ihtiyaç analizlerini çok iyi yapmak gerekiyor.
Kendinizi VCL Player Plugin (Activex)'i ile sınırladığınızda, projenizin bir sonraki ihtiyacı doğrultusunda aynı sıkıntıları yaşamaya devam edeceksiniz.
Naçizhane önerim; projenizin hangi aşamada olduğunu ve aciliyetini (süre kısıtlamasını) bilmiyorum, fakat bu konuda (görüntü işleme) kendini dünya çapında ıspatlamış ve açık kaynak kodlu olarak yayınlanan OpenCV kütüphanesini kullanmanızı tavsiye ediyorum.

Örnek OpenCv Örnekleri/Projeleri

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

OpenCv kütüphanesini Delphi ile kullanabilmek için açık kaynak kodlu  Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol SVN'inde bulabilirsiniz.
Aynı SVN'de bir çok örnek proje de yar almaktadır.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#3
(23-08-2016, Saat: 18:15)Fesih ARSLAN Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,
Bu tip kapsamlı ve önem arzeden projelere başlamadan önce mutlaka Gereksinim ve ihtiyaç analizlerini çok iyi yapmak gerekiyor.
Kendinizi VCL Player Plugin (Activex)'i ile sınırladığınızda, projenizin bir sonraki ihtiyacı doğrultusunda aynı sıkıntıları yaşamaya devam edeceksiniz.
Naçizhane önerim; projenizin hangi aşamada olduğunu ve aciliyetini (süre kısıtlamasını) bilmiyorum, fakat bu konuda (görüntü işleme) kendini dünya çapında ıspatlamış ve açık kaynak kodlu olarak yayınlanan OpenCV kütüphanesini kullanmanızı tavsiye ediyorum.

Örnek OpenCv Örnekleri/Projeleri

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

OpenCv kütüphanesini Delphi ile kullanabilmek için açık kaynak kodlu  Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol SVN'inde bulabilirsiniz.
Aynı SVN'de bir çok örnek proje de yar almaktadır.
Bilgi için teşekkürler, OpenCV VLC'ye nazaran daha karışık geldiği için sakin kafayla araştırılacaklar listemde duruyor :Smile Proje ticari değil, kameralar ile gelen yazılımdan memnun değiliz ve üretici firma güncelleme taraftarı değil, o nedenle kendimiz geliştiriyoruz, herhangi bir zaman kısıtlaması da yok. 36 Kamera ile RTSP-UDP ve RTSP-TCP akışları üzerinden yaptığımız testlerde VLC'den çok memnun edici sonuçlar aldık o nedenle kullanıyoruz. Benim teorisini kafamda kurduğum ancak (bugüne kadar hep Database işlemleri ağırlıklı uygulamalar geliştirmiş birisi olarak) Delphi'ye nasıl anlatacağımı anlayamadığım bölüm DVR uygulamalarında yapılan form üzerinde 8-16-32 gibi adetlerde eşit boyutta paneller oluşturmak veya VLC player nesnesini konumlandırmak.
Cevapla
#4
Merhaba;
Burada kodlamasından ziyade size bir fikir vermesi açısından, işin pseudo kod ile mantıksal yapısını anlatmak istiyorum.
İşi biraz matematiğe dökelim;
Öncelikle herbir görüntünün ebatlarını tespit etmemiz gerekiyor.
Bunu yaparken ana form boyutunu temel alın.

Form Boyutu = 1920 X 1080 olsun
4 Görüntü için  (1920 / 4) X (1080 / 4)
                        = 480 X 270  bir VCLPlayer gerekiyor
 
8 Görüntü için  (1920 / 8) X (1080 / 8)
                        = 240 X 135   bir VCLPlayer gerekiyor
 
Daha sonra bu 4, 8, 16 ... görüntü ekrana nasıl yerleşecek ona bakalım.
Örneğin 4 görüntü için;
VCLPlayer1.Left:=0;
VCLPlayer1.Top:=0;

VCLPlayer2.Left:=VCLPlayer1.Left+VCLPlayer1.Width+2{Hafif bir aralık bırakın};
VCLPlayer2.Top:=0;

VCLPlayer3.Left=0;
VCLPlayer3.Top=VCLPlayer1.Top+VCLPlayer1.Height+2{Hafif bir aralık bırakın};

VCLPlayer4.Left=VCLPlayer3.Left+VCLPlayer3.Width+2{Hafif bir aralık bırakın};
VCLPlayer4.Top=VCLPlayer3.Top;
  
Umarım bir fikir vermişimdir.
Gelişmeler konusunda bizleri de aydınlatmanız dileğiyle görüşmek üzere...

Not: Bu arada form boyutu değiştiğinde nesne (Kaç adet player'iniz varsa) yerleşimlerini yeniden düzenleyecek bir metod da olmalı.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#5
Delphinin hangi versiyonunu kullanıyorsunuz bilmiyorum ama XE versiyonlarında standart bileşen olan TGridPanel ve TFlowPanel'i araştırmanızı tavsiye ederim.
There's no place like 127.0.0.1
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Excel, PDF ve Yazıcı formu Component 3ddark 8 146 1 saat önce
Son Yorum: edo
  delphide kamera arsl01 9 381 27-02-2018, Saat: 19:19
Son Yorum: mrmarman
  Program menü formu için dashboard çalışması Abdullah ILGAZ 4 378 06-10-2017, Saat: 23:05
Son Yorum: pro_imaj
  [Çözüldü] HTTP üzerinden RTSP ile IP kamera stream işlemek Abdullah ILGAZ 2 631 18-08-2017, Saat: 15:59
Son Yorum: Abdullah ILGAZ
  Runtime da Oluşturulan Formu Showlamak hyperxman 6 408 17-07-2017, Saat: 10:14
Son Yorum: Tuğrul HELVACI



Konuyu Okuyanlar: 1 Ziyaretçi