基本概念

本主題回答有關 Zencoder 的一些基本問題。

常問問題

  • 有什麼Zencoder作用?

    Zencoder是一個在線視頻轉換/編碼/轉碼服務。我們獲取您從網站用戶或其他來源獲得的視頻,並將其轉換為與網絡播放、手機或您需要支持的任何其他設備兼容的格式。

  • 誰是Zencoder為了?

    Zencoder適用於希望將視訊整合到應用程式中的開發人員,而不需要經歷建置、維護和擴展自己的轉碼伺服器的痛苦和緩慢程序。任何接受用戶上傳視頻的網站或應用程序都需要某種形式的轉碼後端。用戶上傳的視頻很少有可在網絡和其他設備上播放的大小和格式。

  • 如何上傳要編碼的視頻?

    的目的Zencoder是自動轉換您的視頻,而無需通過網絡表單手動將每個視頻上傳給我們。為了達成這個目標,我們建立了一個 API,讓您的應用程式能夠Zencoder與您的應用程式進行通訊,並在需要編碼新影片時提醒我們。首先,您的視頻應該位於Zencoder可以通過網絡訪問的文件服務器或雲託管服務,例如亞馬遜 S3 或 Rackspace 雲文件上。然後,您可以使用我們的請求生成器創建一個編碼作業請求,該請求告訴Zencoder在哪裡可以找到您的視頻,如何對其進行編碼,以及將結果輸出視頻放在哪裡。有關詳細信息,請參閱您帳戶中的 請求生成器

  • 使用 Request Builder上傳的文件有大小限制嗎?

    是 - 使用請求生成器只能上傳小於 5GB 的文件。

  • 什麼是編碼作業?

    編碼作業是獲取輸入視頻或音頻文件並將其轉換為一種或多種輸出格式的過程。您可以通過 API 或使用您帳戶中的 Request Builder 啟動編碼作業。在編碼過程中,Zencoder首先從託管輸入文件的位置下載輸入文件。然後我們將文件轉換為指定的輸出設置,並將輸出文件上傳到我們自己的服務器或您設置的特定位置(通常與輸入文件相同的託管服務器)。

  • 我可以在一個編碼作業中提交多個輸入嗎?

    不可以,每個作業只允許一次輸入。

  • 什麼編程語言與Zencoder兼容?

    任何能夠發送 HTTP 請求的語言。這包括 Python、Ruby、Java、.NET(C#、VB、F# 等)、PHP、Perl、Javascript、Tcl、Haskell、Factor、Common Lisp、Smalltalk、Forth、ML、R、S、J、K、 Bash、Clojure、Scala、Modula2、Modula3、ColdFusion、Emacs Lisp、Lua、C、C++、D、Objective-C、NewtonScript、Mathematica、PL/SQL、Cobol、Arc 和 Assembly。如果您在這裡沒有看到您的首選語言,請檢查它是否支持互聯網。如果是這樣,那可能沒問題。

    換句話說,Zencoder API 只是 HTTP 請求進出。我們確實提供了一些集成庫,這使得它更容易使用,但是Zencoder沒有庫就很難集成。內置的 JSON 或 XML 支持是一個好處,但 JSON 非常簡單,如果您碰巧使用不支持它的語言(Cobol?),您可能可以自己破解它。

  • 你們提供哪些集成庫?

    我們已經創建了一些庫,以Zencoder便更輕鬆地集成:

    我們的一些客戶已經創建了自己的庫,並且也可供使用。

    我們很樂意在未來添加更多庫,所以如果您正在構建一個庫,請告訴我們,我們會將其添加到我們的文檔中。

  • 我需要集成庫嗎?

    沒有至少,與集成只Zencoder是發送帶有 JSON 或 XML 主體的 HTTP 請求。您可以 使用 curl 從命令行執行此操作。找到一個201 Created後面,你剛剛整合Zencoder

    除此之外,您可能希望通過 HTTP 接收 output_notification。給我們一個 URL,我們會將職位狀態發回給您。您只需要在您的站點上設置一個 URL 以接收帶有 JSON 或 XML 正文的 HTTP POST。

    最後,您可能希望使用我們的 API 對 編碼作業執行其他操作,例如 working_with_jobs、working_with_jobs 或 working_with_jobs。那也只是 HTTP 請求。

  • 集成庫有什麼作用?

    我們的集成庫將您從原始 HTTP 請求中抽像出來。例如,使用 我們的 Ruby 庫,您可以創建這樣的作業:

    Zencoder::Job.create({:input => 's3://bucket/key.mp4',
        :outputs => [{:label => 'vp8 for the web',
        :url => 's3://bucket/key_output.webm'}]})
    

    而不是做這樣的事情:

    require 'uri'
        require 'json'
        response = Net::HTTP.post_form(URI.parse('jobs.json'),
        {:input => 's3://bucket/key.mp4',
        :outputs => [{:label => 'vp8 for the web',
        :url => 's3://bucket/key_output.webm'}]}.to_json)

    這些庫不會啟用您在直接使用 API 時不具備的任何功能。他們只是讓它變得更容易一點。

  • 如果您沒有適合我的語言的集成庫,我該怎麼辦?

    你有三個選擇。

    • 構建你自己的並發布它
    • 沒有圖書館的工作
    • 問我們 是否有一個在工作
  • 我可以建立自己的Zencoder圖書館並共享它嗎?

    當然。如果您開放原始碼的Zencoder程式庫,我們甚至可能會連結到它。隨意以您選擇的語言複製我們的 Ruby 庫

  • 如何在我的開發機器上獲得通知?

    可以使用第三方工具,例如 ngrok

  • 什麼是集成模式?

    整合模式是您帳戶上的一項設定,可讓您測試整合,Zencoder而無需支付編碼費用。您可以在 測試作業和集成模式 部分閱讀更多相關信息。

  • 什麼是隱私模式?

    隱私模式將強制執行某些 API 參數,以保護您的內容免遭未經授權的查看。我們還將禁用系統拍攝的縮略圖(您仍然可以指定輸出縮略圖)並混淆任何潛在敏感信息。Zencoder員工不會出於任何原因查看私人文件。

    如果您透過Zencoder帳戶傳送成人內容,則必須處於隱私權模式

  • API 請求速率是否受限?

    是的,Zencoder限制在給定時間範圍內可以調用特定方法的次數。限制是在每個方法(資源)的基礎上進行跟踪的,但進度請求除外,它是按輸出進行跟踪的。例如,獲取作業和輸出信息的調用都計入相同的限制,而輸出進度的調用則按輸出單獨跟踪。

    每個賬戶每分鐘允許 60 個請求,但作業創建請求除外,它被限制為每分鐘 1,000 個請求,以及輸出進度請求,每個輸出被限制為每分鐘 60 個請求。

    每個 HTTP 回應都包含一個名為 " X-Zencoder-Rate-Remaining " 的標頭。此標頭列出了您在當前時間範圍內可以對給定資源進行的調用次數。

    如果您超出配額,Zencoder將傳回 403 錯誤,內文為「403 Forbidden (Rate Limit Exceeded)」。我們也會傳回額外的標頭Retry-After「」,其中包含重設配額前的秒數。

  • 為什麼 API 請求速率受限?

    我們將 API 請求限制在合理的數量,以確保一個客戶的使用Zencoder不會對其他客戶造成不利影響。如果沒有速率限制,一個客戶可能會以一種阻止另一個客戶使用系統的方式向我們的系統發送請求。當客戶第一次使用 API 時,這種情況會定期偶然發生 - 一個簡單的編程錯誤可能會使 API 充滿客戶無意發送的請求。

    只要您的應用程序設置正確,速率限制應該不是問題。當我們返回正文中包含“超出速率限制”的 403 時,只需在指定的時間段後重試您的請求即可。

    如果您發現您經常遇到這些限制, 請聯繫我們 討論您的設置和選項。