wmobile Eğer webcam / wireless camera gibi bir cihazdan görüntü alıp streaming yapmak istiyorsanız, bunu gerçekleştirmek için çeşitli yollar mevcut. Aldığınız bu görüntüyü, mobil cihazda kendi uygulamanız içinde görüntülemek istiyorsanız çok fazla bir seçeneğiz yok malesef. Bu yazımda öncelikle streaming yaparken karşılaştığım sorunları, kullandığım uygulamaları ve aldığım performans sonuçlarını sizlerle paylaşacağım. Ayrıca, mobil uygulamanızda aldığınız bu görüntüyü  nasıl gösterebileceğinizden de bahsetmeye çalışacağım.

 

Streaming yaptığım platform;

  • HP Nx6310
  • Windows Vista Ultimate, Service Pack 1
  • Core Duo 1.83 ghz
  • 2gb RAM
  • 128 mb Ekran Kartı

Not: Belirtilen uygulamalarda HTTP Video Streaming yapılmıştır. (Live Streaming)

Streaming Verisinin (Audio/Video) Gösterildiği platform;

  • HP IPAQ 514 Voice Messenger
  • Windows Mobile 6
  • .NET Compact Framework 3.5

Değerlendirme;

Test edilen uygulamalar:

Windows Media Encoder

mediaEncoder Windows Media Encoder, windows üzerinden video/audio streaming yapmanızı sağlayan, yapılan streaming'in HTTP üzerindende bu bilgiyi dağıtmanıza olanak sağlıyor. Kolay kullanılabilir arayüzü ile bir kaç dakikada streaming yapabiliyorsunuz. Çok fazla ayar gerektirmiyor. Pocket PC için özel olarak belirlenmiş çözünürlük ayarları var. Streaming'i çalıştırmanız için Windows Media Player yeterli. Fakat media output için çok fazla seçeneğiniz yok. (.wma,.wmv,.mp3) Standart olarak *.wmv formatında çıktı üretiyor. Video ya da audio kayıtları saklanabiliyor. Streaming yaparken gecikme süresi 5-6 saniye arasında değişiyor. Ayrıca SDK mevcut. (Ücretsiz) (6/10)

Download: http://www.microsoft.com/windows/windowsmedia/forpros/encoder/default.mspx (Vista için bir ek bir patch dosyası var indirmek için burayı tıklayın.

SDK Download: Windows Media Encoder 9 Series SDK

Expression Encoder

expencoder Windows Media Encoder gibi windows üzerinden video/audio streaming yapabiliyorsunuz. Windows Media Encoder'dan farkı göüntü kalitesi. Görüntü kalitesi, yüksek çözünürlükte HD destekleyebiliyor. Gecikme süresi olarak 6-7 saniye arasında değişiyor. Expression Encoder 2 ile SDK kullanılabilir durumda olacak. Ayrıca Silverlight desteği olması ile direkt olarak publish edebilirsiniz. Video ya da audio kayıtları saklanabiliyor. Media format için çok fazla output seçeneğiniz yok, Windows Media Encoder ile aynı formatları destekliyor.(Ücretli) (7/10)

Download: http://www.microsoft.com/expression/products/overview.aspx?key=encoder

Unreal Media Server & Live Streaming Server

streamingunreal Live Server, Unreal Media Server ile beraber kullanılabiliyor. Görüntü kalitesi, Windows Media Encoder'dan daha iyi. Farklı formatları destekliyor, bunlar; AVI, MPEG-1 (VCD), MPEG-2 (SVCD, DVD), MPEG-4, MPA, WMV, WMA, ASF, MP3, QuickTime (version 2 ve aşağısı). Farklı codecleri yüklerseniz bu formatlara da destek vermekte. (DivX, XVid, VP6, Apple mp4, AC3, h.264.). SDK ve Tutorial sitesinde mevcut. (Ücretli) Deneme sürümünde 15 kullanıcıya kadar aynı anda streaming yapabilme imkanı sağlıyor. Gecikme süresi 6-8 saniye arasında değişiyor.

Streaming Media Player, ürünüyle streaming kullanıcılar tarafından ister MAC, ister Windows, ister Linux ortamında görüntülenebiliyor. Video ya da audio kayıtları saklanabiliyor.

Streaming Media Player for Windows Mobile, Windows Mobile 5 ve üzeri destekli PDA, Smartphone cihazlar için Unreal Media Server'dan gelen görüntü/ses verileri gösterilebiliyor. Deneme sürümünde 10 dakika çalma zamanı limiti var.

Download: Unreal Media Server & Live Streaming Server

Download: SDK ve Örnek Kodlar

Flash Media Streaming Server 3

Flash Media Streaming Server, yukarıdaki ürünlere nazaran performansı en iyi ürün. .flv formatındaki çıktısı ile gecikme süresini 1-2 saniye arasına düşürüyor. Görüntülemek için Flash yüklü olması gerekiyor haliyle. (Ücretli). Görüntü kalitesi gerçekten iyi ama çok hızlı streaming yaptığı için, Expression Encoder'a nazaran görüntü kalitesi çok yüksek olmuyor.

Download: Flash Media Development Server (Free)

flashmediaserver

 

VLC Media Player

videolan VLC Media Player, cross-platform media player ve aynı zamanda streaming server. Windows, MAC ve birçok Linux dağıtımı üzerinde destekleniyor. Birçok audio/video formatını destekliyor.(MPEG-1, MPEG-2, MPEG-4, DivX, mp3..). DVD, VCD üzerinden alınan audio/video kayıtları ile de streaming yapılabiliyor. LAN üzerinden streaming yapabiliyorsunuz, ayrıca bir media server'a stream edilen veriler aktarılabiliyor. Arayüzü çok karışık, ilk bakışta programa uyum sağlamanız gerekiyor. Çok fazla ayar var, dökümantasyon mevcut ama yinede sorun çıkabiliyor. Görüntü kalitesi güzel, gecikme süresi 4-5 saniye.(Ücretsiz)

Ayrıntılı bilgi: http://www.videolan.org/vlc/features.html

Download: http://www.videolan.org/vlc/

Streaming Features: http://www.videolan.org/vlc/streaming.html

Documentation: http://www.videolan.org/doc/

Test edilmeyen uygulamalar;

Windows Media Services

wmediaservices Windows Server 2003/2008 ile geliyor. IIS üzerinden ayarlamalar yaparak Windows ortamında hızlı streaming yapabiliyorsunuz. Windows Media Services ile bir ya da birden fazla Windows Media Server'ı, Windows Server işletim sistemi üzerinde yönetebiliyorsunuz. Gecikme süresi 3-4 saniye (not: edindiğim bilgilere dayanarak, değişiklik gösterebilir.). SDK mevcut. (Windows Media Software Development Kit) . Cache ve Proxy yönetimini basit arayüzü ile yapabiliyorsunuz.

Detaylı bilgi ve download: http://www.microsoft.com/windows/windowsmedia/forpros/serve/prodinfo2008.aspx

SDK: http://msdn2.microsoft.com/en-us/library/aa969732.aspx

 

 

Bazı notlar;

Streaming yapmak istiyorsanız, önerilen platform (eğer Windows platformu kullanacak iseniz) Windows Server 2003/2008 olmalı. Client için geliştirilmiş Vista,XP gibi işletim sistemlerinde streamingde gecikme süreleri malesef yüksek oluyor. Aslında burada ihtiyacınıza göre karar vermek en önemlisi. Sizin için önemli olan performans ve hız ise Windows Server üzerinde çalışmak daha mantıklı olacaktır. Ama gecikme süresi misal 5-6 saniye sizin için önemli değilse ki client işletim sistemi kullanabilirsiniz. Ayrıca eğer uygulamanız içinde audio/video gösterme/ işleme gibi işlemleri programatik olarak yapmak istiyorsanız SDK'in zenginliği ve yeni olması da önem taşıyor.Ürünlerin ücretleri, özellikleri ve performanslarının detaylı bilgilerine kendi sitelerinden ulaşabilirsiniz.

 

Windows Mobile

 

Media Player aracılığı ile gösterim;

Öncelikle, streaming ile gelen verileri (audio/video), Windows Mobile cihazında göstermeniz için bir media player'a ihtiyacınız var. Benim kullandığım 3 alternatif uygulama var. Bunlar;

Windows Media Player for Mobile

 *.wma, *.wmv ve *.mp3 uzantılı dosyaları destekliyor. Streaming http üzerinden yaptığım için (LAN)  verdiğim IP üzerinden direk az önce belirttiğim formatlardaki streaming çıktılarını alabiliyor. Bu üç formatın dışında malesef desteği yok.

wmobileplayer

TCPMP Player

Çok başarılı bir media player. Çoğu video/audio formatını destekliyor. Windows Media Player Mobile'in açamadığı formatlarda hızve performans açısından da çok başarılı.

Donwload: http://picard.exceed.hu/tcpmp/test/

coreplayer

Streaming Media Player for Windows Mobile 5 OS Devices

Windows Mobile 5 ve üzeri destekli PDA, Smartphone cihazlar için Unreal Media Server'dan gelen görüntü/ses verileri gösterilebiliyor. Deneme sürümünde 10 dakika çalma zamanı limiti var.

Download: Mobile Media Player

 

 

 

Kendi Windows Mobile Form Uygulamanızda gösterim;

Mobile uygulamanızda herhangi bir video çalmanız için gömülü bir media player kontrolüne ihtiyacınız var. Bunun için, Windows Media Player ActiveX kontrolünü Mobil uygulamalar için host eden MSDN'de bulduğum örnek uygulamayı, bu bağlantıdan ve şu bağlantıdan edinebilirsiniz.  Diğer bir yol, OpenNETCF tarafından geliştirilen Windows Media Player kontrolü. Benimde uygulamamda kullandığım bu kontrolün deneme sürümünü http://www.opennetcf.org/ adresinden indirebilirsiniz. (Not: Kullanmak için .NET Compact Framework 2.0 ve üzeri istiyor.)

WM6

CorePlayer ürünü, aslında TCPMP uygulamasının yeni sürümü diyebiliriz. (yeni ve ücretli sürümü :) ) CorePlayer Embedded kullanarak da formunuza CorePlayer'ı gömerek görüntüleri gösterebilirsiniz. Fakat sitesinde download yok. Deneme sürümü yok ve lisans istiyor. Ayrıntılı bilgi için; http://coreplayer.com/content/view/30/69/ ziyaret edebilirsiniz.

Not: Uygulamamda kullandığım OpenNETCF ve Windows Media Player Mobile'ın ActiveX kontrollerine, URL adresi olarak misal: http://10.0.0.5:8080 verdiğim zaman "Dosya bulunamadı... ya da proxy ayarlarınzıı kontrol edin... ya da timeout oldu" gibi hatalar alabilirsiniz. Verdiğiniz URL adresini http://10.0.0.5:8080/* (sonuna * koyarak) bu şekilde değiştirirseniz çalışacaktır. Aksi takdirde network, firewall, proxy ve verdiğiniz port için ayarları kontrol edin.

 

 

 

Sonuç;

Streaming yapmak için birçok seçenek olmasına karşın, Windows Mobile cihazda bu alınan goruntuyu bastırmak için çok fazla seçenek yok. OpenNETCF, gibi Windows Media Player'dan türeyen kontroller sonuç olarak Windows Media Player'ın desteklediği formatları destekleyeceklerdir. (.mp3, .wma, .wmv).

Flash Media Server, en hızlı streaming yapan ürün olmasına karşın Windows Mobile cihazlarda şu an için sıkıntılı. Üstelik Flash için gömülü bir kontrol de malesef yok. Explorer ya da web browser kontrolunu kullanmanız gerekiyor. Bunun içinde Explorer'da Flash kurulu olması gerekiyor. Flash Lite 2.1 sürümü Windows Mobile 5 üzerinde çalışıyor. Windows Mobile 6 için Flash Player 2.1'i yüklesenizde malesef tam verimle destek alamayacaksınız. Şahsen bende açmadı :). Flash Lite 3 sürümünde Windows Mobile 6'dan sonra çıkacak yeni sürümde destek gelmesiyle, streaming için Flash Media Server'ı kullanabileceğiz. Microsoft, Flash Lite'ı mobile işletim sistemlerinde lisansladı ve gelecek işletim sistemlerinde yüklü olarak gelecek. İlgili haber için, buraya ve şuraya tıklayın.(Adobe - Flash Lite)

Görüntüyü explorer'dan göstermek isteyenlere bir başka çözüm de, Silverlight olacaktır. Şuan itibariyle Silverlight Mobile daha desteklenmiyor. Ama 2008'in ikinci yarısında bu destek gelecek. Ayrıntılı haber için burayı tıklayın.

Şu aşamada en doğru yolun Windows Media Player tabanlı çözümler olduğu görülüyor. OpenNetCF ve Windows Media Player Activex kontrolü, ve Windows Media Encoder kısa vade de işinizi görecektir. İlerisi aydınlık gözüküyor, merakla bekliyoruz :) .

Sevgiyle kalın...