疑難排解媒體服務

媒體服務標誌 v3


警告

Azure 媒體服務將於 2024 年 6 月 30 日淘汰。 如需詳細資訊,請參閱 AMS淘汰指南

尋找媒體服務問題的原因和解決方案。

注意

您可以 藉由移轉至媒體服務 v3 API 或閱讀 即時串流最佳做法指南來解決許多問題。

帳戶問題

原因 解決方法
您可能嘗試使用 v3 API 的功能搭配 v2 帳戶或 v2 API 實作。 更新您的程式代碼以使用 v3 API。 如需更詳細的協助,請參閱 移轉指南

常見的視訊播放問題

  • 影片需要很長的時間才能開始播放。
  • 影片在開始播放時變得模糊。
  • 視訊品質很低。
  • 影片完全不會播放或顯示黑色畫面。
原因 解決方法
您可能嘗試觸達大型物件,而不使用造成延遲問題的CDN。 將CDN新增至您的串流定位器。 如需使用 CDN 的詳細資訊,請參閱 使用 CDN 整合串流內容
您可能尚未實作動態封裝。 如需實作動態封裝的詳細資訊,請參閱 媒體服務 v3 中的動態封裝
您可能有所謂的「雜訊芳鄰」,這表示您要與其他客戶共用計算資源。 為了避免「雜訊鄰近」從標準串流端點升級至具有專用串流單位的進階串流端點。
您可能使用較舊的瀏覽器來檢視影片。 升級瀏覽器。
您可能使用第三方播放器和篩選條件。 新增 audio-only=false 至串流 URL,如下所示 https://streamingtest.streaming.media.azure.net/00000000-0000-0000-0000-000000000000/sample.ism/manifest(format-m3u8-aapl,audio-only=false)

您無法從資產播放 MP4 檔案

原因 解決方法
Azure 媒體服務的設計目的是使用指令清單檔案,而不是直接播放完整大小的 MP4 數據流。 指令清單檔案會告訴玩家要播放哪些編碼媒體片段,以及依何種順序播放。 使用其中一個提供的媒體編碼器來建立媒體片段和指令清單檔案。 如需編碼的詳細資訊,請參閱使用自動產生的比特率階梯編碼進行內容感知編碼和編碼。
檔名包含保留字元。 從檔名中移除保留字元。

保留字元

  • 媒體服務會在建置串流內容的 URL 時,使用資產檔名的值。 基於這個理由,不允許 percent-encoding。 name 屬性的值不能有下列任何百分比編碼保留字元:!*' () ;:@&=+$,/?%#[]“。 而且,副檔名只能有一個 '.'。
  • 名稱長度不應超過 260 個字元。

加密的內容不會在離線模式中播放。

原因 解決方法
您用來在 iOS 裝置上以離線模式播放下載的 AES 加密影片的播放機會處理這些影片播放的方式。 原因與媒體服務不一致。 檢視所選離線視訊播放程式的檔。

音訊同步處理不足。

原因 解決方法
影片封包會延遲傳遞。 可能的解決方案:

1.您可能已實作自動開啟的記憶體版本控制原則,這會導致緩衝和中斷連線。 拿掉原則並關閉自動儲存版本控制。
2.啟用CDN。
3.使用具有足夠保留單元的進階串流端點。

VTT 檔案的播放機要求造成 CORS 錯誤。

原因 解決方法
CORS 規則設定 設定記憶體帳戶或CDNCORS規則

Yuu 也可以從資產取得 VTT 檔案的下載 URL。

串流端點不會啟動。

原因 解決方法
您可能已建立只啟用 HTTPS 的自訂原則。 媒體服務目前不支援此功能。 可能的因應措施:
1.在 Azure 入口網站 中,停用您的自定義原則。
2.建立已啟用CDN的串流端點,並停用CDN端點的 HTTP。
Or
1.請勿使用入口網站或 API 為串流端點啟用 CDN。
2.請改為移至 Azure 入口網站 中的 Azure CDN 頁面,或使用 Azure CDN API 建立指向媒體服務端點的端點,並將 CDN 端點的來源設定為串流端點的主機名。
您可能已停止具有 CDN 的串流端點。 請參閱 串流端點不會停止

具有 CDN 的串流端點不會停止。

原因 解決方法
當您啟用任何串流端點的CDN時,在您啟動串流端點之前,將不會建立CDN端點。 這是因為在啟動過程中,我們的平臺會建立CDN端點,並將其連結至串流端點, (包括設定自定義主機名) 。

在串流端點的停止程式期間,我們的平臺應該刪除CDN端點。 因此,如果串流端點處於停止狀態,CDN 端點就不會存在,也不會指向串流端點。

不過,在某些情況下,當AMS呼叫CDN以刪除CDN端點時,由於CDN上的快取,因此無法刪除端點。 如果 CDN 端點仍然存在,並觸發停止串流端點問題,這會導致主機名衝突問題。
手動刪除 CDN 設定檔,然後刪除串流端點並設定新的設定檔。

將帳戶移至不同的訂用帳戶之後,串流端點不會出現。

原因 解決方法
串流端點需要一些時間才能移至新的訂用帳戶。 等候 2 小時,並檢查您的串流端點是否出現在新的訂用帳戶中。

內部部署編碼器不會將數據傳送至即時活動。

原因 解決方法
您可能使用尚未透過媒體服務測試的編碼器。 請參閱 已驗證的內部部署即時串流編碼器
內部部署編碼器可能無法正確設定。 確認您已正確 設定內部部署編碼器

編碼似乎需要很長的時間。

大部分的編碼持續時間問題都可以藉由設定編碼器設定來控制速度與質量之間的平衡來解決。 若要加快編碼速度,請將它設定為 速度 模式。

原因 解決方法
mezzanine 檔案可能非常大。 檔案大小等於比特率乘以持續時間。
有大量的輸出層。 減少輸出層的數目。
輸出層具有高解析度。 將輸出層的解析度減少為您想要串流媒體的比特率。
模糊檔案可能很複雜,特別是當您編碼 4k 解析度檔案時。

轉換失敗

原因 解決方法
您可能已超過每個帳戶的轉換配額,也就是 100。 刪除未使用的轉換。

無法上傳媒體

您無法將媒體上傳至記憶體帳戶。

原因 解決方法
您嘗試使用 HTTP。 使用 HTTPS: 不再支援 HTTP 通訊協定上傳內容。
您等候的時間不夠長,無法部署記憶體帳戶。 如果您以程式設計方式建立記憶體帳戶,請在嘗試上傳媒體之前,新增程式代碼來測試是否已部署記憶體帳戶。

CORS 問題

原因 解決方法
如果您嘗試使用包含追蹤父項標頭的預檢要求,您會收到CORS錯誤。 目前,媒體服務不支援預檢要求。 我們知道預檢要求對客戶有價值。 在功能可用之前,請勿使用預檢要求。

記憶體帳戶連線問題

已中斷連線的狀態

媒體服務帳戶的「中斷連線」狀態,代表帳戶無法繼續存取一個或多個附加的儲存體帳戶,因為儲存體存取金鑰已變更。 Media Services 需要最新的儲存體存取金鑰,才能在帳戶中執行多項工作。

以下是可能會導致媒體服務帳戶無法存取附加儲存體帳戶的主要情況。

原因 解決方法
媒體服務帳戶或附加儲存體帳戶已移轉至個別的訂用帳戶中。 移轉記憶體帳戶 () 或媒體服務帳戶,以便在記憶體帳戶位於相同的租使用者時,全都位於相同的訂用帳戶中,或使用受控識別進行記憶體帳戶驗證。
媒體服務帳戶使用的是不同訂用帳戶中的附加儲存體帳戶,因為其是受到支援的早期媒體服務帳戶。 所有的早期媒體服務帳戶均已轉換為最新的 Azure Resources Manager 帳戶,而且會出現中斷連線的狀態。 移轉記憶體帳戶或媒體服務帳戶,使其全都位於相同的訂用帳戶中,或者如果您的記憶體帳戶位於相同的租使用者中,請使用受控識別進行記憶體帳戶驗證。

媒體服務帳戶無法存取記憶體帳戶

原因 解決方法
媒體服務受控識別尚未獲得記憶體 Blob 數據參與者角色。 若要在 Azure 入口網站中檢查,請先從媒體服務帳戶功能表中選取 [儲存體帳戶] 來找出記憶體帳戶的身分識別,這應該是「系統指派」或使用者指派的受控識別名稱。 接下來,移至入口網站中的記憶體帳戶,從功能表中選取 [存取控制 (IAM) ],從工具欄選取 [角色指派],然後新增角色指派。 新增角色指派時,角色應設定為「記憶體 Blob 數據參與者」,而且成員應設定為媒體服務帳戶用來存取記憶體帳戶的受控識別。 新增角色指派之後,變更可能需要幾分鐘的時間才會生效。

Azure 媒體索引器 2 不會在媒體處理器清單中傳回。

原因 解決方法
Azure 媒體索引器 2 已在 2020 年 1 月 1 日淘汰。 遷移至 媒體服務 v3 API

網路錯誤導致影片下載失敗。

原因 解決方法
此錯誤通常是用戶端上的網路連線問題,而不是媒體服務的結果。 請連絡您的網路管理員,或使用 Fiddler 或 F12 瀏覽器偵錯來查看基礎錯誤。

下載問題

您可能收到下列錯誤:

「嘗試下載輸入檔案時,無法存取檔案,請檢查來源的可用性」

原因 解決方法
如果您使用 SAS 令牌來存取檔案,它可能已過期。 調整您的程式代碼,檢查令牌是否尚未過期,再使用它進行驗證。

過多和間歇性 5xx 錯誤

原因 解決方法
內部部署編碼可能已不正確實作。 檢查您的編碼器是否已 正確設定
您可能使用未測試的內部部署編碼器 使用 經過測試的內部部署編碼器 ,並檢查是否已 正確設定
串流端點與CDN之間的快取比率可能不足。 1.調整快取比例,讓 CDN 處理更多流量。
2.調整 CDN 的 串流優化 規則。
篩選組態可能不正確。 檢查您的 篩選是否已正確設定

請參閱 即時串流最佳做法指南

一般程式代碼錯誤

流端點錯誤碼即時事件錯誤碼作業錯誤碼 參考未涵蓋的程式代碼中可能會遇到錯誤。

原因 解決方法
您可能嘗試使用舊版 API 中未包含的物件、屬性或方法。 在開發環境中升級 API 連結庫。

如果您找不到問題的解決方案,請連絡 媒體服務支援

取得說明及支援

您可以連絡媒體服務並詢問問題,或依照下列其中一種方法追蹤我們的更新: