2012-09-13 24 views
5

Sadece MP4 formatında azure blob depolamadan "Videolar" ı görüntülemek için bir görünüm içeren bir MVC 4 uygulamasına sahibim. Şu anda MediaElment.js (veya herhangi bir tipik flash player) video oynatıcı olarak kullanıyorum. Bu videoları düzgün akışlı veya aşamalı indirme (Uyarlamalı akış) yönteminde nasıl çalabilirim. Akışı desteklemek için Azure'da ayarlamam gereken yapılandırmalar nelerdir? MP4 dosyasını blob depolama alanına yüklemeden önce yapmam gereken bir şey var mı?Blob Storage'dan Pürüzsüz Akış Videosu

Bu bağlantıdan geçtiğimde http://msdn.microsoft.com/en-us/spazuretrainingcourse_spblobstorageazure.aspx ve anladığım kadarıyla, Windows Azure Blobs Uploader, video dosyalarını istemci olarak masmavi ve gümüş ışığa yüklemek için kullanılır. Benim durumumda, video ayrı bir uygulamadan yüklenir, böylece video dosyasının manipülasyonu mümkün değildir. Yani herhangi bir değişiklik olmadan akış uygulamak ve Silverlight kullanmak dışında bir video oynatıcıda oynamak için herhangi bir yolu var mı?

Yüklerken medya dosyasını değiştirebilirsem bir şey yapmak mümkün mü?

Teşekkürler.

+0

Merak etme, Windows Azure Media Services'ı incelediniz mi? WAMES, Blob Storage'dan uyarlanabilir akışı destekler ve hatta videoları biraz akışla sorunsuz akış biçimine dönüştürmenin bir yolunu sağlar. – Rytmis

cevap

4

Neredeyse tam olarak bunu yapıyorum, ancak Adaptive Streaming olmadan (sadece 25mb veya daha küçük video dosyalarını ele alıyorum). Web sayfamda ön uç için JWPlayer kullanıyorum ve video Azure blob deposunda.

Önceden oluşturulmuş pencereleri kullanıyorum ikili ffmpeg.exe Azure'a yükledim (Worker Role projesinin kök dizinine koydum), daha sonra video dosyalarını masaj yapmak için WorkerRole'da System.Diagnostics.Process kullanıyorum. İstediğiniz farklı kalite sürümlerini oluşturmak için de aynısını yapabilirsiniz.

Bir kullanıcı bir videoyu yüklediğinde, iş mantığı katmanım Azure ileti kuyruğundaki bir iletiyi işaretlediğinde, iş rolüm onu ​​alır, videoyu Azure LocalStorage ürününe kopyalar (LocalStorage, Azure projenizde yapılandırabileceğiniz fiziksel disktir) ayarlar dosyası), dosya üzerinde ffmpeg.exe'yi çalıştırır ve daha sonra blob deposuna geri koyar.

+0

Çok teşekkürler. Yani, yönteminize göre, video dosyasını blob depolama alanına yüklerken, medya dosyasını ffmpeg kullanarak akış içeriğine dönüştürür ve bu akış içeriğini blob olarak depolarsınız. – Dennis

+0

Oldukça değil. Blob yüklemeden sonra video dosyasını bir fpmpeg kullanarak kodlamayı değiştirmek için bir temp_folder'a kopyalamaktayım (ancak ffmpeg ile birçok şey yapabilirsiniz ve komut satırında istediğinizi yapmak için bunu Expression Encoder yerine kullanabileceğinden şüpheliyim Azure örneğinizde sunucu tarafı) Sonra değiştirilen video dosyasını blob deposuna geri koydum. –

+0

tamam. Video dosyasını (MP4) gerektiği gibi kodlamak için FFMPEG kullanmaya hazırım. Şimdi bir oyuncuya akış yapmak için, yapılacak adımlar neler? Örn: Oyuncuya istek üzerine video akışı yapabilen bir işleyici gibi bir şey yaratmam gerekiyor mu? Videonun aşamalı olarak oynatılmasını (tüm videonun indirilmesini beklemeden) istiyorum. İstemci tarafında (oynatıcıda) veya sunucu tarafında bir şey ayarlamam gerekiyor mu? – Dennis