2012-09-13 36 views
5

Tôi có ứng dụng MVC 4 chứa chế độ xem để hiển thị "Video" từ lưu trữ màu xanh dương chỉ dành cho định dạng MP4. Hiện tại tôi đang sử dụng MediaElment.js (hoặc bất kỳ trình phát flash điển hình nào) làm trình phát video. Làm thế nào tôi có thể phát các video này bằng phương thức tải xuống trực tiếp hoặc tải xuống liên tục (Thích ứng trực tuyến). Các cấu hình mà tôi phải đặt trong Azure để hỗ trợ phát trực tiếp là gì? Có bất cứ điều gì mà tôi phải làm trước khi tải lên tập tin MP4 để lưu trữ blob?Video trực tuyến mượt mà từ Kho lưu trữ Blob

Tôi đã đi qua liên kết này http://msdn.microsoft.com/en-us/spazuretrainingcourse_spblobstorageazure.aspx và theo như tôi hiểu, Windows Azure Blobs Uploader được sử dụng để tải lên các tệp video lên Azure và Silverlight với tư cách khách hàng. Trong trường hợp của tôi, video được tải lên từ một ứng dụng riêng biệt do đó không thể thao tác với tệp video. Vì vậy, có cách nào để thực hiện streaming mà không có bất kỳ thay đổi và chơi nó trong một máy nghe nhạc video khác hơn là sử dụng Silverlight?

Có thể làm bất cứ điều gì nếu tôi có thể thay đổi tệp phương tiện trong khi tải lên không?

Cảm ơn.

+0

Ngoài sự tò mò, bạn đã xem xét Dịch vụ phương tiện của Windows Azure chưa? WAMES hỗ trợ phát trực tiếp thích ứng từ Bộ nhớ Blob và thậm chí cung cấp cách chuyển đổi video sang định dạng phát trực tuyến mượt mà với một chút nỗ lực. – Rytmis

Trả lời

4

Tôi đã thực hiện gần như chính xác điều này, nhưng không có Luồng thích ứng (Tôi đang xử lý các tệp video chỉ có 25MB hoặc nhỏ hơn). Tôi đang sử dụng JWPlayer cho giao diện người dùng trong trang web của tôi và video nằm trong bộ nhớ Azure blob.

Tôi đang sử dụng các cửa sổ dựng sẵn nhị phân ffmpeg.exe Tôi đã tải nó lên Azure (đặt nó vào thư mục gốc của dự án Vai trò công nhân), sau đó tôi sử dụng System.Diagnostics.Process trong WorkerRole để xoa bóp các tệp video. Bạn có thể làm tương tự để tạo các phiên bản chất lượng khác nhau mà bạn muốn. Vì vậy, khi người dùng tải lên một video, lớp logic nghiệp vụ của tôi sẽ gửi một thông báo trong hàng đợi thư Azure, vai trò công nhân của tôi chọn, sao chép video lên Azure LocalStorage (LocalStorage là đĩa vật lý mà bạn có thể định cấu hình trong dự án Azure của mình tập tin cài đặt), chạy ffmpeg.exe trên tập tin và sau đó đặt nó trở lại trong lưu trữ blob.

+0

Rất cám ơn. Vì vậy, theo phương pháp của bạn, trong khi tải lên tập tin video để lưu trữ blob bạn đang chuyển đổi các tập tin phương tiện truyền thông để dòng nội dung bằng cách sử dụng ffmpeg và lưu trữ nội dung dòng này trong blob.Right? – Dennis

+0

Không hoàn toàn. Sau khi tải lên blob, tôi sao chép tệp video vào temp_folder, sử dụng ffmpeg để thay đổi mã hóa (nhưng bạn có thể làm nhiều việc với ffmpeg và tôi nghi ngờ bạn có thể sử dụng nó thay vì Bộ mã hóa biểu thức để thực hiện những gì bạn muốn trên dòng lệnh , phía máy chủ trên cá thể Azure của bạn) Sau đó, tôi đặt tệp video đã thay đổi trở lại bộ nhớ blob. –

+0

ok. Tôi đã sẵn sàng sử dụng FFMPEG để mã hóa tệp video (MP4) nếu cần. Bây giờ để làm cho nó phát trực tiếp đến người chơi, bạn cần thực hiện các bước nào sau đây? tức là Tôi có cần tạo một thứ gì đó giống như một trình xử lý có thể truyền phát video đến trình phát theo yêu cầu không? Tôi muốn video bắt đầu phát dần dần (không phải đợi toàn bộ video được tải xuống). Tôi có cần đặt bất kỳ thứ gì ở phía máy khách (trình phát) hoặc phía máy chủ không? – Dennis

Các vấn đề liên quan