簡體   English   中英

在Azure存儲Blob上使用.Net Core和C#將圖像序列轉換為MP4文件

[英]Convert image sequence to MP4 file using .Net Core and C# on Azure Storage Blobs

我有一個具有POST方法的API,該API可以捕獲圖像並將其存儲到Azure上的Blob容器中。 一旦准備好處理,這些圖像將構成視頻文件的一系列幀。 當應用程序准備好處理序列並取回視頻文件時,我將調用另一個端點。

我已經准備好一切並可以進行視頻處理,但是我仍然堅持如何實現我認為非常簡單的方法! 由於我的終結點計算機在.NET Core中運行,因此我無法使用任何舊版.Net庫,並且由於我正在部署到可能需要擴展/擴展的Azure WebApp(Windows OS),因此我無法安裝除預編譯的.Net Core兼容以外的任何軟件。作為我從DevOps部署的一部分,硬件上的Nuget軟件包。

我找不到在這種情況下運行的任何好的庫或示例。 我在嘗試使用與GDI +或FFMPEG相關的任何內容時遇到了問題...

希望找到類似於SixLabors.ImageSharp的東西

我按順序列出了所有圖像,並准備像這樣進行處理:

var frames = new List<Image>();

// (Removed for brevity) Retrieve images from blobs & append to frame list...

foreach(var frame in frames)
{
    // Convert frames/sequence to video file
}

// Save to blob storage as .mp4

任何幫助,將不勝感激!

根據我的經驗,將圖像序列轉換為視頻流或文件的解決方案通常是使用一些流行的庫,例如ffmpeglibav

如果搜索諸如C# ffmpeg images videoC# libav images video類的關鍵字,您將獲得許多有用的內容來幫助實現它,如下所示,您可以引用的線程很少。

  1. 圖像序列到視頻流?
  2. 使用C#將圖像轉換為視頻
  3. tomaszzmuda / Xabe.FFmpeg

然后,您可以獲取視頻流或文件作為塊Blob上載到Azure Blob存儲,請按照官方教程Quickstart: Azure Blob storage client library for .NET了解如何使用適用於.NET標准的Azure存儲SDK和C#中的關鍵類是CloudBlockBlob Class ,該函數在此處輸入鏈接描述(對於視頻文件為BeginUploadFromFile或對於視頻流為BeginUploadFromStream

但是有關您的應用程序部署存在問題。 由於下圖對Azure Web App sandbox的限制(關於Win32k.sys (User32/GDI32) Restrictions ,您無法將任何使用過GDI系統調用的應用程序部署到Azure WebApp。

在此處輸入圖片說明

因此,通常為您的應用推薦的Azure服務是Azure VM。


更新:

如果您考慮使用dotNet Core來實現它,我建議您可以嘗試在基於Docker且對GDI沒有限制的Linux上使用Azure App Service 另外, Azure Batch是實現任何語言需求的另一種選擇。 希望您能完成評估。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM