簡體   English   中英

上傳時從視頻中獲取縮略圖。 (Azure Blob存儲)

[英]Grabbing a thumbnail from a video when uploading. (Azure Blob Storage)

我目前有一個將視頻上傳到Azure Blob存儲的系統,並且工作正常。 我想實現一項功能,該功能可在上傳時從視頻中獲取縮略圖並將其推送到Azure。

我嘗試按照建議使用此方法:

new FFMpegConverter().GetVideoThumbnail(file, outputJPEG);

問題是我不確定要使用什么作為outputJPEG,因為我沒有要寫入的文件,而是想將該文件寫入Azure的Blob存儲。

誰能幫助我解決這個問題,或者建議其他方法?

我努力了:

  • 創建一個新的空HttpPostedFileBase作為outputJPEG文件,但這是不可能的,因為它僅接受用戶上傳的文件。

  • 使用文件流,但這似乎不起作用,因為它需要寫入文件的位置,而不是讓我直接推送到Blob存儲。 (通過:blob.UploadFromStream(file.InputStream);)

在此先感謝您的幫助!

看起來好像有一個覆蓋了一個流的替代,因此您可以將其寫入內存流,然后獲取該內存流並在Blob存儲區中創建一個新文件:

MemoryStream ms = new MemoryStream();
var converter = new FFMpegConverter();

converter.GetVideoThumbnail(file, ms);

ms.Position = 0;

// Write ms to a blob object here
blockblob.UploadFromStream(ms);

請注意,即使使用了接受Stream的重載,GetVideoThumbnail方法也始終為輸出jpeg文件創建臨時文件。

如果您的目標是避免創建臨時文件,則可以使用FFMpegConverter.ConvertLiveMedia重載,該重載從文件接受inputSource並將結果寫入輸出流(提取視頻縮略圖等效於僅轉換1幀即可轉換為MJPEG流)。

暫無
暫無

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

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