2012-09-13 26 views
5

Mam aplikację MVC 4, która zawiera widok, aby wyświetlać "Wideo" tylko z magazynu BLOB z MPL w formacie MP4. Obecnie używam MediaElment.js (lub dowolnego typowego Flash Playera) jako odtwarzacza wideo. W jaki sposób mogę odtwarzać te filmy w płynnej lub progresywnej metodzie pobierania (Adaptive streaming). Jakie konfiguracje muszę ustawić na platformie Azure, aby obsługiwać przesyłanie strumieniowe? Czy jest coś, co muszę zrobić przed przesłaniem pliku MP4 do magazynu BLOB?Smooth Streaming Video z Blob Storage

Przeszedłem przez ten link http://msdn.microsoft.com/en-us/spazuretrainingcourse_spblobstorageazure.aspx i o ile zrozumiałem, Windows Azure Blobs Uploader służy do przesyłania plików wideo do lazuru i silverlight jako klienta. W moim przypadku wideo jest przesyłane z oddzielnej aplikacji, więc manipulowanie plikiem wideo nie jest możliwe. Czy istnieje sposób na transmisję strumieniową bez żadnych zmian i odtwarzanie jej w odtwarzaczu wideo innym niż przy użyciu silverlight?

Czy mogę coś zmienić, jeśli mogę zmienić plik multimedialny podczas przesyłania?

Dzięki.

+0

Czy z ciekawości zaglądnąłeś do usług Windows Azure Media Services? WAMES obsługuje adaptacyjną transmisję strumieniową z Blob Storage, a nawet umożliwia konwersję wideo na płynny format streaming przy odrobinie wysiłku. – Rytmis

Odpowiedz

4

Zrobiłem prawie dokładnie to, ale bez Adaptive Streaming (mam do czynienia z plikami wideo tylko 25mb lub mniejszymi). Używam JWPlayer dla interfejsu użytkownika na mojej stronie internetowej, a wideo znajduje się w magazynie blob Azure.

Używam wstępnie zbudowanego binarnego pliku ffmpeg.exe. Przesyłam go do Azure (umieszczam go w katalogu głównym projektu Rola pracownika), a następnie używam System.Diagnostics.Process w WorkerRole do masażu plików wideo. Możesz zrobić to samo, aby stworzyć różne wersje jakości, które chcesz.

Tak więc, gdy użytkownik przesyła wideo, moja warstwa logiki biznesowej umieszcza komunikat w kolejce komunikatów Azure, moja rola roboczy odbiera, kopiuje wideo do Azure LocalStorage (LocalStorage to dysk fizyczny, który można skonfigurować w projekcie Azure plik ustawień), uruchamia plik ffmpeg.exe, a następnie umieszcza go z powrotem w magazynie blob.

+0

Wielkie dzięki. Tak jak w przypadku twojej metody, podczas przesyłania pliku wideo do magazynu BLOB konwertujesz plik multimedialny, aby strumieniować zawartość za pomocą ffmpeg i zapisując tę ​​zawartość strumienia w blob.Right? – Dennis

+0

Niezupełnie. Po przesłaniu do pliku blob, kopiuję plik wideo do folderu tymczasowego, używając ffmpeg do zmiany kodowania (ale możesz zrobić wiele rzeczy za pomocą ffmpeg i podejrzewam, że możesz użyć go zamiast Enkodera wyrażeń, aby zrobić to, co chcesz w linii poleceń po stronie serwera w instancji Azure) Następnie umieszczam zmieniony plik wideo z powrotem w magazynie BLOB. –

+0

ok. Jestem gotowy do użycia FFMPEG do kodowania pliku wideo (MP4) w razie potrzeby. Teraz, aby przekazać strumień do gracza, jakie kroki należy wykonać? Czy muszę utworzyć coś podobnego do programu obsługi, który może przesyłać strumieniowo wideo do odtwarzacza na żądanie? Chcę, aby wideo zaczęło grać progresywnie (bez czekania na pobranie całego filmu). Czy muszę ustawić wszystko po stronie klienta (odtwarzacza) lub po stronie serwera? – Dennis

Powiązane problemy