七牛云 转码_普通音视频转码(avthumb)
普通音視頻轉碼接口方便用戶對音頻、視頻資源進行編碼和格式轉換。
接口規格
注意:接口規格不含任何空格與換行符,下列內容經過格式化以便閱讀。
avthumb/
/vcodec/
/avsmart/<0|1>
/smtType/
/smtEnhance/
/smtQuality/
/refine/
/maxrate/
/r/
/hr/
/vb/
/stripmeta/
/crf/
/h264Profile/
/h264Level/
/s/
/aspect/
/autoscale/
/padW/
/padH/
/padVideoX/
/padVideoY/
/gop/
/keyFramePosition/
/rotate/
/flip/
/compressLevel/
/ss/
/t/
/gifHighColor/
/deinterlace/
/wmImage/
/wmGravity/
/wmScale/
/wmScaleType/
/wmConstant/
/wmAlpha/
/wmIgnoreLoop/
/wmText/
/wmGravityText/
/wmFont/
/wmFontColor/
/wmFontSize/
/wmOffsetX/
/wmOffsetY/
/wmPos/
/wmDuration/
/wmShortest/
/mosaic/
/mosaicGravity/
/mosaicOffsetX/
/mosaicOffsetY/
/mosaicSize/
/mosaicStart/
/mosaicDuration/
/stream/
/cut/
/vn/
/sn/
/scodec/
/subtitle/
/stripmeta/
/acodec/
/ab/
/ac/
/ar/
/aq/
/audioProfile/
/volume/
/loudnorm/
/loudnormI/
/loudnormLRA/
/loudnormTP/
/an/
/speex/
/writeXing/<0|1>
/amix/
/amixOffset/
/amixStart/
/amixDuration/
/multiArep/
/multiArepOffset/
/multiArepStart/
/multiArepDuration/
封裝格式
參數名稱
類別
必填
說明
A/V
Y
封裝格式,具體細節請參考支持轉換的封裝格式。
視頻參數
參數名稱
類別
必填
說明
/vcodec/
V
N
視頻編碼格式,具體細節請參考支持轉換的視頻編碼格式。
/avsmart/
V
N
是否啟用視頻瘦身,設置為 1 時開啟。smtType 1僅支持H.264;smtType 2支持H.264和H.265。默認使用H.264編碼。注意:該參數會使 vb 失效。使用 avsmart 的計費和 avthumb 有區別。
/smtType/
V
N
開啟avsmart時生效。視頻瘦身模型,不同的視頻內容場景適配不同的的模型,詳情可咨詢客服。整數,取值范圍[1,2],默認值為 1。
/smtQuality/
V
N
開啟avsmart時生效。瘦身時的轉碼質量等級,值越大,畫質越好。smtType 1時,整數,取值范圍[1,5];smtType 2時,整數,取值范圍[-5,5]。
/smtEnhance/
V
N
開啟avsmart時生效。視頻增強開關,僅適用smtType 1。設置為 "0" 時關閉,默認開啟。
/refine/
V
N
是否啟用高質量轉碼,設置為 1 時開啟。保證在視頻內優化碼率分配。
/maxrate/
V
N
該參數必須在使用 /refine/1 時使用,以限制輸出視頻流的峰值碼率。當不使用 /vb/ 時,該值不可低于輸入視頻碼率;當使用 /vb/ 時,該值不可低于由 /vb/指定的視頻碼率。
/r/
V
N
視頻幀率,每秒顯示的幀數,單位:赫茲(Hz),常用幀率:24,25,30 等。默認等于源視頻幀率,HighFrameRate=0,取值[1,30],超出范圍取25幀;HighFrameRate=1時允許高幀率,取值[1,60],超出范圍取60幀。
/hr/
V
N
視頻高幀率,與FrameRate配合使用,默認為HighFrameRate=0,即常規幀率;HighFrameRate=1表示保留高幀率。
/vb/
V
N
1、視頻碼率,單位:比特每秒(bit/s),常用視頻碼率:128k,1.25m,5m等。
2、在不改變視頻編碼格式時,若指定碼率大于原視頻碼率,則使用原視頻碼率進行轉碼。
3、參數末尾使用 ! ,可以以強制使用指定碼率轉碼, 如 128k!
/crf/
V
N
1、設置 crf 值,為整數;vcodec 為 libx264 時取值為范圍 [18,28],vcodec 為 libx265 時取值范圍為 [23,33],默認取值為范圍 [18,28];
2、其值越小,輸出視頻質量越好,輸出文件可能變大。其不可與 vb 共用
/h264Profile/
V
N
設置 h264 的 profile等級,支持 baseline、main、high。
/h264Level/
V
N
設置 h264 的 level 值,合法的值有 3.0、3.1、4.0、4.1、4.2。
/s/
V
N
0、指定目標視頻分辨率,格式為寬 x 高 ,長邊取值范圍[20,3840]的整數,短邊取值范圍[20,2160]的整數。
1. w、h 都為空時,則和原視頻保持一致。
2. w為空,h不為空,則按h的值對原視頻等比例縮放。
3. w不為空,h為空時,則按w的值對原視頻等比例縮放。
4. w、h都不為空時,則根據w、h來縮放。
/aspect/
V
N
該參數為視頻在播放器中顯示的寬高比,格式為:。例如:取值3:4表示視頻在播放器中播放是寬:高=3:4(注:此處取值僅為體現演示效果)。
/autoscale/
V
N
0、配合分辨率參數使用,0或者不指定會強制縮放到對應分辨率,可能造成視頻變形。
1、指定為1時,把視頻按原始比例縮放到分辨率指定的矩形框內。
2、指定為2時,把視頻按分辨率中指定的比例添加黑框后,再等比例縮放到分辨率指定到矩形框內。
/padW/
V
N
1、用于給視頻添加自定義黑框,不能跟autoscale/2 共用。
2、添加黑框后的視頻的寬,取值范圍[20,3840]且取值大于或等于原視頻寬, 和 padH 同時有效時啟用 pad。
/padH/
V
N
1、用于給視頻添加自定義黑框,不能跟autoscale/2 共用。
2、添加黑框后的視頻高,取值范圍[20,3840]且取值大于或等于原視頻寬, 和 padW 同時有效時啟用 pad。
/padVideoX/
V
N
1、用于給視頻添加自定義黑框,不能跟autoscale/2 共用。
2、當 padW、padH 有效時生效,添加黑框后的視頻中的橫向偏移, 即原視頻在添加黑框后視頻左上角的 x 坐標, 默認0
/padVideoY/
V
N
1、用于給視頻添加自定義黑框,不能跟autoscale/2 共用。
2、當 padW、padH 有效時生效,添加黑框后的視頻中的縱向偏移, 即原視頻在添加黑框后視頻左上角的 y 坐標, 默認0
/gop/
V
N
GOP參數,即視頻流關鍵幀間的間隔幀數,取值[0,3000]的整數,默認為0表示采用指定視頻編碼格式的默認GOP值,例如libx264格式默認GOP值為250。GOP取值過小會影響視頻編碼壓縮率,碼率變大,過大會使圖像群組的時長跨度過大,影響播放隨機性,故一般建議采用默認值。
/keyFramePosition/
V
N
設置多個關鍵幀出現的時間點,以.分隔,個數范圍[1,5],單位:秒,時間范圍[1,10],且時間采用增長趨勢,例如:keyFramePosition/1.3.5.8.10
/rotate/
V
N
指定順時針旋轉的度數,可取值為90、180、270、auto,默認為 auto。
/flip/
V
N
視頻翻轉, 水平翻轉 horizontal, 垂直翻轉 vertical
/compressLevel/
V
N
視頻編碼時壓縮的等級,選項為1,1.5,2,4,等級越高壓縮效果越好,更耗CPU。
/ss/
A/V
N
指定音視頻截取的開始時間,單位:秒,支持精確到毫秒,例如3.345s。用于視頻截取,從一段視頻中截取一段視頻。
/t/
A/V
N
指定音視頻截取的長度,單位:秒,支持精確到毫秒,例如1.500s。用于視頻截取,從一段視頻中截取一段視頻。
/gifHighColor/
V
N
輸出為 gif 時,值為 1 表示選擇輸出高畫質的 gif 文件,默認值為 0。只支持與以下參數共用:、、、、。輸出 gif 的幀數最多為 4500。
/deinterlace/
V
N
是否啟用去交錯功能。
1. 默認值為 1,表示開啟,即將視頻從隔行掃描調整為逐行掃描。
2. 值為 0 則表示關閉,即保持原有模式,保留視頻為隔行掃描模式。
3. 不支持將視頻從逐行掃描調整為隔行掃描。
/mosaic/
V
N
是否啟用馬賽克,固定為 1,且后續馬賽克參數必須連續
/mosaicGravity/
V
N
馬賽克的位置,參考錨點參數表,默認值為NorthEast(右上角)
/mosaicOffsetX/
V
N
馬賽克位置的相對橫向偏移量 ,正數則向右偏移,負數向左偏移,當mosaic/1時必填
/mosaicOffsetY/
V
N
馬賽克位置的相對縱向偏移量 ,正數則向下偏移,負數向上偏移,當mosaic/1時必填
/mosaicSize/
V
N
馬賽克區域大小,即指定馬賽克的寬和高,例如:100x200, 當mosaic/1時必填
/mosaicStart/
V
N
馬賽克起始時間 默認為0 e.g. 12.3
/mosaicDuration/
V
N
馬賽克持續時間 默認直到片尾 e.g. 21.3
/stream/
A/V
N
從輸入源中選擇要保留的或者要去除的媒體流,假設輸入源有 n 個流(編號從 0 開始,n > 2),則保留媒體流的合法參數有 0、(n-1)、0..2、0..0、0,1,2 等,去除媒體流的合法參數有 -0、-(n-1)、-0..(n-2)、-1..1、-1,2 等,其中形如 a..b 表示保留編號為 [a,b] 流,a,b,c 表示保留編號為 a、b 和 c 的流,-a..b 表示去除編號為 [a,b] 流,-a,b,c 表示去除編號為 a、b 或 c 的流。流的編號可以通過 avinfo 來查看。
/cut/
A/V
N
從輸入源中選擇要去除的時間段。每個要去除的時間段由起止絕對時間表示,單位為 s,精確到 ms。例如,0.5,1.0 表示去除時間范圍為 [0.5,1.0] 上的音視頻; 0.5,1.0;1.5,2.0 表示去除時間范圍為 [0.5,1.0]、[1.5,2.0] 上的音視頻。注意,其中時間范圍不可有重疊,且需按起始點的位置順序組織。參數值需要經過 urlsafe_base64_encode,例如 cut/MC41LDEuMDsxLjUsMi4w 是合法的。
V
N
是否去除視頻流,0為保留,1為去除。
默認值為0。
V
N
是否去除字幕,0為保留,1為去除。默認值為0。
/scodec/
V
N
字幕編碼方案,支持方案:mov_text。該參數僅用于修改帶字幕視頻的字幕編碼。
/subtitle/
S
N
1、添加字幕,支持 srt 格式字幕(uft-8 編碼和和 utf-8 BOM編碼)、帶有字幕的 mkv 文件、embed(將原視頻的字幕流嵌入目標視頻)。
2、目前支持公網資源,及 kodo 資源。公網資源由 url 表示,kodo 資源可由 kodo:/// 表示(此時 bucketname 需要與輸入源在同一區域),需要經過 urlsafe_base64_encode
/stripmeta/
A/V
N
是否清除文件的metadata,1為清除,0為保留。
視頻水印參數
參數名稱
類別
必填
說明
/wmImage/
V
N
圖片水印的源路徑,目前支持公網資源,及 kodo 資源。公網資源由 url 表示,kodo 資源可由 kodo:/// 表示(此時 bucketname 需要與輸入源在同一區域),均需要經過 urlsafe_base64_encode。水印具體介紹見視頻水印。
/wmGravity/
V
N
圖片水印位置。存在/wmImage/時生效。
/wmScale/
V
N
指定圖片水印的短邊、長邊、寬、高與輸入視頻之間的比例,取值為(0,1],存在/wmImage/時生效,默認值時不進行自適應縮放水印圖。
/wmScaleType/
V
N
選擇圖片水印自適應縮放的方式,取值0、1、2、3分別表示為自適應原圖的短邊、長邊、寬、高。存在/wmImage/時生效,默認值為0。
/wmConstant/
V
N
用于設置圖片水印是否隨源視頻 DAR(display aspect ratio)變化而產生形變。為 0 時,圖片水印會隨源視頻 DAR 變化而產生形變;為 1 時,圖片水印保持原有寬高比。存在/wmImage/時生效,默認值為 0。
/wmIgnoreLoop/
V
N
是否忽略水印gif圖的循環屬性,可取值 0(使用)`1(忽略)`,默認為1。
/wmText/
V
N
水印文本內容,需要經過urlsafe_base64_encode。
/wmGravityText/
V
N
文本位置,存在/wmText/時生效,默認 NorthEast。
/wmAlpha/
V
N
文字水印透明度。范圍 (0.0,1.0],越小越透明。默認值為1.0,即不透明。
/wmFont/
V
N
文本字體,需要經過urlsafe_base64_encode。存在/wmText/時生效,默認為黑體,注意:中文水印必須指定中文字體。
/wmFontColor/
V
N
水印文字顏色,需要經過urlsafe_base64_encode,RGB格式,可以是顏色名稱(例如紅色)或十六進制(例如#FF0000),參考RGB顏色編碼表。存在/wmText/時生效,默認為黑色。
/wmFontSize
V
N
水印文字大小,單位: 緹,等于1/20磅。存在/wmText/時生效,默認值為16 緹。
/wmOffsetX/
V
N
設置圖片或文字水印位置的相對橫向偏移量,當值為正數時則向右偏移,反之向左。位置里包含West時,默認有+10的固定偏移,位置里包含East時,默認有-10的固定偏移,中間位置則固定偏移為0。
/wmOffsetY/
V
N
設置圖片或文字水印位置的相對縱向偏移量,當值為正數時則向下偏移,反之向上。位置里包含North時,默認有+10的固定偏移,位置里包含South時,默認有-10的固定偏移,中間位置則固定偏移為0。
/wmPos/
V
N
指定圖片或文字水印顯示的起始時間,單位:秒,不填表示全時長。支持魔法變量$(end)表示視頻結束時間點,注:需要和wmDuration同時存在。
/wmDuration/
V
N
指定圖片或文字水印顯示的持續時間,單位:秒,正數表示時間增長方向,負數表示時間遞減方向。不填表示全時長。支持魔法變量$(lte)(小于wmPos的區間)、$(gte)(大于wmPos的區間)。注:需要和wmPos同時存在。
/wmShortest/
V
N
wmPos在視頻duration內,在添加wmDuration后超出視頻duration后是否自動調整wmDuration大小,1 調整到視頻duration內,0 不處理, 默認為0。
音頻參數
參數名稱
類別
必填
說明
/acodec/
A
N
音頻編碼格式,具體細節請參考支持轉換的音頻編碼格式。
/ab/
A
N
1、音頻碼率,單位:比特每秒(bit/s),常用碼率:64k,128k,192k,256k,320k等。
2、在不改變音頻編碼格式時,若指定碼率大于原音頻碼率,則使用原音頻碼率進行轉碼。
3、參數末尾使用 !, 可以以強制使用指定碼率轉碼, 如 64k!
/ac/
A
N
音頻聲道數量,單位:整數值,不大于輸入源的聲道數量。目前 acodec 為 libfdk_aac 時,支持的聲道數量為 1、2、4、5、6、8;為 aac 時,支持的聲道數量為 1、2、3、4、5、6、7、8;為 libmp3lame 時,支持的聲道數量為 1、2。其他數值不合法。
/ar/
A
N
音頻采樣頻率,單位:赫茲(Hz),常用音頻采樣頻率有 8000, 11025、12000、16000、22050、24000、32000、44056、44100、47250、48000、50000、64000、88200、96000 等。其它特定限制請參考注意項。
/aq/
A
N
音頻質量,取值范圍為0-9(mp3),10-500(aac),僅支持mp3和aac,值越小越高。不能與上述碼率參數共用。
/audioProfile/
A
N
設置音頻的profile等級,支持:aac_he。注:需配合 libfdk_aac 編碼方案使用,如 avthumb/m4a/acodec/libfdk_aac/audioProfile/aac_he。
/volume/
A
N
調整音頻音量為原音頻音量的倍數, 精確到小數點后2位 ,默認值為 1.0, 范圍 [0.01, 3], 不可與 loudnorm 共用。
/loudnorm/
A
N
是否使用音頻響度標準化調整,0為不使用,1為使用。默認值為0
/loudnormI/
A
N
音頻整體響度值,當 loudnorm 為1時有效,取值范圍 [-70.0, -5.0], 默認為 -24.0
/loudnormLRA/
A
N
音頻響度范圍,當 loudnorm 為1時有效, 取值范圍 [1.0, 20.0], 默認為 7.0
/loudnormTP/
A
N
音頻最高峰值,當 loudnorm 為1時有效, 取值范圍 [-9.0, 0.0], 默認為 -2.0
A
N
是否去除音頻流,0為保留,1為去除。
默認值為0。
/speex/
A
N
取值為1時,把源音頻文件作為微信版speex處理,版本為1.2rc1,其他類別音視頻文件處理均會失敗。默認取值為0。
A
N
轉碼成mp3時是否寫入xing header,默認1寫入,寫入會導致 file,afinfo 等命令識別出錯誤的碼率。好處是在需要音頻時長、幀數的時候只需要獲取header。 值為 0 表示不寫入 xing header。
/amix/
A
N
1、期望混音的音視頻文件,目前支持公網資源及 kodo 資源。
2、公網資源由 url 表示;kodo 資源可由 kodo:/// 表示(此時 bucketname 需要與輸入源在同一區域),需要經過 urlsafe_base64_encode。
3、源音視頻、混音輸入音視頻都僅支持單音軌;混音的兩個音頻的channel數必須一致。
/amixOffset/
A
N
混音效果起始位置,相對于混音后視頻起始位置計算,單位為秒,精確到毫秒,默認取0,即混音后音視頻從起始位置起有混音效果
/amixStart/
A
N
目標混音文件截取的開始時間,單位為秒,精確到毫秒,默認取0,即目標混音文件從起始開始混入源音視頻
/amixDuration/
A
N
目標混音文件截取的時長,單位為秒,精確到毫秒,默認為目標混音文件音軌原始長度,即全部混入源音視頻
/multiArep/
A
N
1、用于替換原視頻中音頻的目標音頻文件。
2、目前支持公網資源及 kodo 資源,公網資源由 url 表示;kodo 資源可由 kodo:/// 表示(此時 bucketname 需要與輸入源在同一區域),需要經過 urlsafe_base64_encode。
3、多個文件以英文逗號分隔。
/multiArepOffset/
A
N
目標音頻相對于原視頻的起始位置,相對于原視頻視頻起始位置計算,單位為秒,精確到毫秒,默認取0,從結果視頻的起始位置起有指定音頻,多個文件以參數指定使用英文逗號分隔,且必須與multiArep文件順序對應
/multiArepStart/
A
N
目標音頻文件截取的開始時間,單位為秒,精確到毫秒,默認取0,即目標音頻文件從起始開始添加到原視頻中,多個文件以參數指定使用英文逗號分隔,且必須與multiArep文件順序對應
/multiArepDuration /
A
N
目標音頻文件截取的時長,單位為秒,精確到毫秒,默認為目標音頻文件音軌原始長度,即全部目標音頻替換原視頻音頻,多個文件以參數指定使用英文逗號分隔,且必須與multiArep文件順序對應
加密參數
對視頻內容進行私有加密,只能通過七牛云播放器解碼播放。關于輸出視頻解密以及播放的要求可參考 qplayer 說明。
視頻私有加密單獨計費。如果只希望對視頻加密而不進行轉碼操作,則需要將和值同時指定為copy。
當值不為copy且 值不同時為copy且指定了加密參數時,服務價格 = 視頻轉碼價格 + 視頻加密價格
當和值同時為copy 并且指定了加密參數時,服務價格 = 視頻加密價格
視頻加密服務計費方式為按時(分鐘)計費。服務價格為:0.018 元/分鐘。
參數名稱
類別
必填
說明
/drmComKey/
V
N
QPlayer 中使用的用于區別用戶的秘鑰,由長度為[1,8]的字符串表示,需要經過urlsafe_base64_encode,需要與 DrmFileKey同時使用。目前僅支持輸出為 mp4。
/drmFileKey/
V
N
QPlayer 中使用的進行視頻文件加密的秘鑰,由長度為[1,8]的字符串表示,需要經過urlsafe_base64_encode,需要與 DrmCompanyKey 同時使用。目前支持輸出格式 mp4。
接口備注
轉碼操作若未指定音視頻碼率,轉碼結果的碼率會小于等于原音視頻碼率,若指定碼率大于原音視頻碼率,轉碼操作會使用原視頻碼率進行轉碼。
avthumb轉碼的結果會保存在原文件的空間中,但是文件名按照默認規則生成,為了方便獲取轉碼后資源鏈接,建議自定義處理結果資源的名稱,請參考處理結果另存 (saveas)。
當和值同時為copy,即不進行音視頻編解碼操作時以音視頻轉封裝計費。
視頻轉碼時,當視頻實際處理幀率在(30, 60]時,按視頻高幀率轉碼計費。
我們為一些預設集設置了默認參數,如果用戶覺得某些參數不適合自己的業務場景可以在后面加參數覆蓋。如: avthumb/mp3/ab/64k 會把默認碼率128k調整為64k。
不同格式的默認轉碼參數列表:
格式
視頻編碼器
視頻碼率
音頻編碼器
音頻碼率
音頻采樣率
flash
flv
512k
libmp3lame
64k
44100
webm
libvpx
700k
libvorbis
128k
48k
mp3
-
-
libmp3lame
128k
44100
amr
-
-
amr_nb
12.20k
8000
為 mp4 且 為 libmp3lame 時, 的值不可小于 16000;另外,特定音頻編碼方案 可使用的音頻采樣頻率 如下表所示:
音頻編碼方案
可使用的音頻采樣頻率
libfdk_aac
96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025, 8000
libmp3lame
48000, 44100, 32000, 24000, 22050, 16000, 12000, 11025
libspeex
32000, 16000, 8000
libopencore_amrnb
8000
使用avsmart參數時,為避免轉碼處理超時,目前對于視頻時長有一些限制。不同規格的視頻時長限制如下:
規格
時長限制(s)
720p
9000
1080p
5400
2K
1800
4K
600
支持對視頻加多個不同類型的水印。以預轉持久化形式,將視頻轉換成mp4格式,對視頻資源加2個圖片水印和2個文字水印,示例如下:
{
"scope": "test:sample.mp4",
"deadline": 1608652800,
"persistentOps":
"avthumb/mp4/
/wmImage/aHR0cDovL3Rlc3QtMi5xaW5pdWRuLmNvbS9sb2dvLnBuZw/wmGravity/NorthWest==
/wmImage/aHR0cDovLzd4bHY0Ny5jb20wLnowLmdsYi5jbG91ZGRuLmNvbS_kuoznu7TnoIEucG5n==
/wmText/d2Vsb3ZlcWluaXU=/wmFontColor/cmVk/wmFontSize/60/wmGravityText/North==
/wmText/d2Vsb3ZlcWluaXU=/wmFontColor/cmVk/wmFontSize/20/wmGravityText/South
|saveas/dGVzdDpzYW1wbGVfdGFyZ2V0Lm1wNA==",
"persistentPipeline": "newtest",
"persistentNotifyUrl": "http://fake.com/qiniu/notify"
}水印錨點參數表
NorthWest | North | NorthEast
| |
| |
--------------+----------------+--------------
| |
West | Center | East
| |
--------------+----------------+--------------
| |
| |
SouthWest | South | SouthEast
參數設置舉例
以預轉持久化形式,將wav音頻轉換為mp3格式:
{
"scope": "qiniu-ts-demo:sample.wav",
"deadline": 1390528576,
"persistentOps": "avthumb/mp3",
"persistentNotifyUrl": "http://fake.com/qiniu/notify"
}以預轉持久化形式,將wav音頻轉換為mp3格式,比特率為192k:
{
"scope": "qiniu-ts-demo:sample.wav",
"deadline": 1390528576,
"persistentOps": "avthumb/mp3/ab/192k",
"persistentNotifyUrl": "http://fake.com/qiniu/notify"
}以預轉持久化形式,將mp4視頻轉換為flv格式,幀率為24,使用x264進行視頻編碼:
{
"scope": "qiniu-ts-demo:thinking-in-go.mp4",
"deadline": 1390528576,
"persistentOps": "avthumb/flv/r/24/vcodec/libx264",
"persistentNotifyUrl": "http://fake.com/qiniu/notify"
}以預轉持久化]形式,將mp4視頻轉換為avi格式,使用mp3進行音頻編碼,且音頻比特率為64k:
{
"scope": "qiniu-ts-demo:thinking-in-go.mp4",
"deadline": 1390528576,
"persistentOps": "avthumb/avi/ab/64k/acodec/libmp3lame",
"persistentNotifyUrl": "http://fake.com/qiniu/notify"
}以持久化數據處理(即觸發持久化)形式,將wav音頻轉換為mp3格式,VBR參數為3,采樣頻率為44100:
POST /pfop/ HTTP/1.1
Host: api.qiniu.com
Content-Type: application/x-www-form-urlencoded
Authorization: QBox
bucket=qiniu-tsdemo
&key=sample.wav
&fops=avthumb%2Fmp3%2Far%2F44100%2Faq%2F3
¬ifyURL=http%3A%2F%2Ffake.com%2Fqiniu%2Fnotify以持久化數據處理(即觸發持久化)形式,將mp4視頻進行銳智轉碼(即視頻瘦身),設置視頻編碼格式為x264,分辨率為480x260,默認開啟視頻增強:
POST /pfop/ HTTP/1.1
Host: api.qiniu.com
Content-Type: application/x-www-form-urlencoded
Authorization: QBox
bucket=qiniu-ts-demo
&key=thinking-in-go.mp4
&fops=avthumb%2Fmp4%2Fvcodec%2Flibx264%2Fs%2F480x360%2Favsmart%2F1
¬ifyURL=http%3A%2F%2Ffake.com%2Fqiniu%2Fnotify以持久化數據處理(即觸發持久化)形式,將mp4視頻轉換為flv格式,幀率為30,視頻比特率為256k,使用x264進行視頻編碼,音頻采樣頻率為22050,音頻比特率為64k,使用mp3進行音頻編碼:
POST /pfop/ HTTP/1.1
Host: api.qiniu.com
Content-Type: application/x-www-form-urlencoded
Authorization: QBox
bucket=qiniu-ts-demo
&key=thinking-in-go.mp4
&fops=avthumb%2Fflv%2Fr%2F30%2Fvb%2F256k%2Fvcodec%2Flibx264%2Far%2F22050%2Fab%2F64k%2Facodec%2Flibmp3lame
¬ifyURL=http%3A%2F%2Ffake.com%2Fqiniu%2Fnotify以持久化數據處理(即觸發持久化)形式,將mp4視頻轉換為ogv格式,幀率為30,視頻比特率為1800k,使用libtheora進行視頻編碼,音頻采樣頻率為44100,音頻比特率為128k,使用libvorbis進行音頻編碼:
POST /pfop/ HTTP/1.1
Host: api.qiniu.com
Content-Type: application/x-www-form-urlencoded
Authorization: QBox
bucket=qiniu-ts-demo
&key=thinking-in-go.mp4
&fops=avthumb%2Fogv%2Fr%2F30%2Fvb%2F1800k%2Fvcodec%2Flibtheora%2Far%2F44100%2Fab%2F128k%2Facodec%2Flibvorbis
¬ifyURL=http%3A%2F%2Ffake.com%2Fqiniu%2Fnotify以持久化數據處理(即觸發持久化)形式,為指定視頻資源打上圖片水印http://78re52.com1.z0.glb.clouddn.com/resource%2Flogo.jpg, 位置是右上角;同時給視頻打上文字水印weloveqiniu,顏色為紅色,大小為3磅(60緹),字體為黑體,位置為正上方;生成文件名為為sample_target.mp4的新mp4視頻資源:
POST /pfop/ HTTP/1.1
Host: api.qiniu.com
Content-Type: application/x-www-form-urlencoded
Authorization: QBox
bucket=test&key=sample.mp4&fops=avthumb%2fmp4%2fwmImage%2faHR0cDovL3Rlc3QtMi5xaW5pdWRuLmNvbS9sb2dvLnBuZw==%2fwmText%2fd2Vsb3ZlcWluaXU=%2fwmFontColor%2fcmVk%2fwmFontSize%2f60%2fwmGravityText%2fNorth%2csaveas%2fdGVzdDpzYW1wbGVfdGFyZ2V0Lm1wNA==¬ifyURL=http%3A%2F%2Ffake.com%2Fqiniu%2Fnotify
注意:要在Authorization頭部的前添加QBox和半角空格。
以 Python Sdk 為例,需要在音視頻轉碼的示例的基礎修改數據處理命令 fops ,將其修改為:
fops = avthumb/mp4/wmImage/aHR0cDovL3Rlc3QtMi5xaW5pdWRuLmNvbS9sb2dvLnBuZw==/wmText/d2Vsb3ZlcWluaXU=/wmFontColor/cmVk/wmFontSize/60/wmGravityText/North
示例
觸發持久化
以Python Sdk為例,本例將空間名為bucket_name中的視頻 key轉碼為MP4的視頻文件,并且保存到目標Bucket_Name,且文件名為自定義文件key。
注意:
其他語言 SDK 可在官方 SDK下載,可以通過查看 SDK 使用指南中觸發持久化使用。
from qiniu import Auth, PersistentFop, build_op, op_save, urlsafe_base64_encode
# 對已經上傳到七牛的視頻發起異步轉碼操作
# access_key,secret_key在個人面板的密鑰管理處獲得,非個人賬號密碼
access_key = '...'
secret_key = '...'
q = Auth(access_key, secret_key)
# 要轉碼的文件所在的空間和文件名。
bucket_name = '...'
key = '...'
# 是使用的隊列名稱,不設置代表不使用私有隊列,使用公有隊列。
pipeline = 'your_pipeline'
# 要進行轉碼的轉碼操作。
fops = 'avthumb/mp4/s/640x360/vb/1.25m'
# 可以對轉碼后的文件進行使用saveas參數自定義命名,當然也可以不指定文件會默認命名并保存在當前空間
saveas_key = urlsafe_base64_encode('目標Bucket_Name:自定義文件key')
fops = fops+'|saveas/'+saveas_key
pfop = PersistentFop(q, bucket_name, pipeline)
ops = []
ops.append(fops)
ret, info = pfop.execute(key, ops, 1)
print(info)
assert ret['persistentId'] is not None
預轉持久化
以Python Sdk為例,本例中將上傳的視頻轉碼為MP4的視頻文件,保存到目標Bucket_Name,且文件名為自定義文件key,原上傳視頻保存到bucket_name空間,且文件名為key。
注意:
其他語言 Sdk 可在官方 Sdks下載,可以通過查看 Sdk 使用指南中預轉持久化使用。
from qiniu import Auth, put_file, etag, urlsafe_base64_encode
import qiniu.config
# access_key,secret_key在個人面板的密鑰管理處獲得,非個人賬號密碼
access_key = '...'
secret_key = '...'
# 初始化Auth狀態
q = Auth(access_key, secret_key)
# 你要測試的空間, 并且這個key在你空間中存在
bucket_name = '...'
key = '...'
# 是使用的隊列名稱,不設置代表不使用私有隊列,使用公有隊列。
pipeline = 'your_pipeline'
# 設置轉碼參數
fops = 'avthumb/mp4/vcodec/libx264'
# 通過添加'|saveas'參數,指定處理后的文件保存的bucket和key,不指定默認保存在當前空間,bucket_saved為目標bucket,bucket_saved為目標key
saveas_key = urlsafe_base64_encode('bucket_saved:bucket_saved')
fops = fops+'|saveas/'+saveas_key
# 在上傳策略中指定fobs和pipeline
policy={
'persistentOps':fops,
'persistentPipeline':pipeline
}
token = q.upload_token(bucket_name, key, 3600, policy)
# 視頻所在的本地路徑
localfile = './python_video.flv'
ret, info = put_file(token, key, localfile)
print(info)
assert ret['key'] == key
assert ret['hash'] == etag(localfile)
總結
以上是生活随笔為你收集整理的七牛云 转码_普通音视频转码(avthumb)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单招软件职业技能测试,招生信息网-201
- 下一篇: 获得代理ippython_Python自