編碼

本主題回答有關視頻編碼的基本問題。

編碼問題

我應該使用什麼設置?

從默認值開始。我們對默認設置進行了很多思考,所以如果您堅持使用這些設置,您可能就沒問題了。

通常,您要調整以下設置。

為您的目標應用程序選擇正確的 編解碼器 。我們所有的編解碼器都可以在網絡上播放,但 H.264 具有最廣泛的兼容性和最好的質量。如果這正是您要尋找的,請使用 H.264 + AAC(或者 MP3)。目前,它也是移動設備兼容性的最佳選擇。如果你想要沒有 許可問題 的東西,VP8 + Vorbis 非常好(雖然是新的),而 Theora + Vorbis 是一個更成熟的選擇。

確定 目標分辨率縱橫比 轉換策略,以及是否要放大小於目標的視頻。(將較小的視頻留小並在播放器中縮放它們通常是明智的。這可以為您節省千比特和帶寬。)

之後,選擇一個 視頻比特率。比特率是決定視頻質量的最重要因素。我們建議設置目標 質量 而不是比特率,因為將相同的比特率應用於不同大小/形狀/內容的視頻效率不高。根據質量/大小權衡選擇質量設置:質量 3 看起來相當不錯(比大多數網絡視頻更好),質量 4 看起來很棒,質量 5 幾乎無損。如果您想要小比特率的優質視頻,請選擇質量 2,對於低帶寬情況,請選擇質量 1。音頻質量 也值得考慮;質量 2-3 通常很好,如果音樂或配樂保真度很重要,請考慮質量 4。

除此之外,其他設置實際上是可選的。您可能會忽略其中的大部分,其中一些甚至可能會損害您的視頻質量。例如,強制視頻採用不同的幀速率會使視頻看起來起伏不定,手動設置音頻採樣率會導致編碼錯誤。

有關更多信息,請參閱我們的 API 文檔

我如何獲得最好的質量?

當然,沒有“最好”。有權衡,更好和更壞的選擇,但沒有完美的編碼設置集。結束免責聲明。

實現高質量輸出視頻的第一步是擁有高質量的輸入視頻。如果可能,請向我們發送與您想要的輸出大小相同或更大的高質量視頻,並且質量高於您認為需要的質量。(當然,如果你正在處理 UGC,這並不總是由你決定。)

其次,不要吝嗇文件大小。比特率對視頻質量的影響遠比其他任何因素都重要。如果您要求 300kbps 的 1080p 視頻,無論您選擇什麼其他選項,它都可能看起來很糟糕。如果質量優先,將視頻質量設置為 4 通常是一個不錯的選擇。音頻質量 3 聽起來不錯,但 4 更好。

第三,如果您使用的是 H.264,請嘗試使用 Main 或 High 配置文件。這些會佔用更多 CPU,但會產生質量更好的視頻。但它們不適用於 iPhone。

第四,您可以嘗試一些高級設置。如果您的輸入是高度壓縮和塊狀的,您可以使用我們的 Deblock 過濾器。如果您想以相同的比特率將質量提高 5%-10%,請嘗試將降噪設置為“弱”或“中”。

第五,減慢編碼速度。將 Speed 設置為 1 或 2,這將允許我們的編碼器應用一些我們不應用於更快編碼的心理視覺優化。

請記住,這些都是權衡。我們的默認編碼,沒有額外的設置,看起來很不錯。歸根結底,您要在視覺質量、編碼速度和文件大小之間做出權衡。

Zencoder 可以編碼純音頻文件嗎?

是的我們可以將音頻文件轉換為 MP3、AAC 或 Vorbis。我們還可以從視頻文件中導出音頻。

我要提交很多作業,Zencoder 可以處理嗎?我應該在開始之前讓你知道嗎?

Zencoder 絕對可以處理。除非您要達到我們每分鐘 1,000 個職位創建請求的 API 速率限制, 否則您不需要在提交職位之前警告我們。

事實上,我們更擔心的是,如果您發送大量作業,我們可能會使您的服務器不堪重負。您應該從 Zencoder 看到的唯一延遲將是在數量超過我們當前容量的情況下將必要的編碼服務器聯機處理您的工作所花費的時間。如果發生這種情況,從您最初的請求到可用的額外容量應該不會超過幾分鐘。之後,最大的擔憂將是您的服務器如何處理來自 Zencoder 的流量。如果最初的延遲會影響您的轉碼,請在開始提交之前與我們聯繫,以便我們可以提前將更多服務器上線。

需要考慮的文件傳輸問題

如果您將 S3 用於輸入和輸出目的地,那麼您應該可以繼續使用,因為它們可以處理大量的傳輸量,尤其是在同一 區域內。

如果您正在使用 FTP 服務器,您可能希望減少一些作業並以 50 到 500 個為一組運行它們,具體取決於服務器的容量。我們有過大量作業完全壓垮 FTP 服務器並導致作業失敗的經歷,因為我們無法訪問文件。

如果輸出文件與輸入文件進入同一台服務器,請務必考慮必要的帶寬。在第一批作業上下載可能工作正常,但一旦輸出開始上傳就開始受到影響。

需要考慮的通知問題

如果您正在使用通知,同樣的問題也適用。您的服務器是否能夠(可能)快速連續地處理來自 Zencoder 的數百個 POST?

這不是什麼大問題,因為我們最多會重試失敗的通知 25 次,並且文件已經上傳。但是,如果您的視頻在同一台服務器上,或者正在上傳到同一台服務器,即正在接收通知,則如果服務器不堪重負,這可能會導致連續作業失敗。

避免服務器通知過載的最佳方法是在收到通知時盡快成功響應 Zencoder。我們建議在響應範圍之外對通知正文進行任何處理,使用作業隊列或其他後台處理。這將確保 Zencoder 不會使通知超時並在幾秒鐘後再次嘗試。