本文為您介紹如何修改SubmitMediaProducingJob的Timeline參數完成字幕及字幕模板處理。
使用說明
智能生產製作支援直播流、點播和OSS素材檔案的剪輯合成、特效渲染、模板生產等功能,更多詳情請參見智能生產製作概述。
將一個或多個視頻、音頻、圖片、字幕素材合成為成品,可以通過不同的Timeline參數配置提交剪輯,然後調用SubmitMediaProducingJob - 提交剪輯合成作業來完成合成。
時間軸是將素材按照視頻創意進行編排和特效設計的產物,時間軸主要包含軌道、素材、效果3種對象,詳情請參見Timeline配置說明。
如果您想通過調用SDK進行音視訊剪輯,請參見安裝IMS服務端SDK的準備工作。
視頻添加字幕
字幕可以放在單獨的字幕軌道SubtitleTracks中,也可以在視頻Effects下設定字幕。
字幕的出場和入場時間可以通過TimelineIn和TimelineOut進行設定。如果不設定這兩個參數,字幕軌道中的字幕將預設按照整個成片視頻的時間長度產生。而在Effects下的字幕,則會預設按照當前Effects歸屬的視頻素材的時間來產生。
字幕中可以使用\N或\n來實現字幕換行效果。
成片效果 | Timeline樣本 |
|
設定字型大小、字型、自訂字型、描邊、陰影、字幕旋轉角度
FontSize表示字幕的字型大小。如果使用Effects下的字幕,建議使用FixedFontSize來設定字型大小,這樣字幕不會隨著視頻尺寸的變化而發生變化。
使用Font來指定系統字型,使用FontURL來指定自訂字型OSS檔案路徑。當兩者同時設定時,系統將優先按照FontURL來渲染字幕。
可以利用Outline、OutlineColour、Shadow、BackColour等參數來產生簡單的單層描邊陰影製作效果。如果需要實現複雜的多層描邊效果,可以參考樣本3中有關自訂花字的樣本。
設定Angle來調整字幕逆時針旋轉角度。
成片效果 | Timeline樣本 |
|
設定花字、自訂花字
使用EffectColorStyleId欄位來一鍵式設定花字,關於花字效果,請參考:花字效果樣本
如果需要自訂字型效果,可以使用SubtitleEffects設定多層描邊和陰影製作效果。有關詳細欄位說明,請參考SubtitleEffect部分。
成片效果 | Timeline樣本 |
|
字幕局部效果
通過在Content欄位中添加覆寫代碼,可以實現字幕的局部效果。下面是覆寫代碼的說明:
所有覆寫代碼均以兩個反斜線(\\)開頭。
所有局部參數覆寫代碼必須在{}中,且一個{}可以包含多個覆寫代碼。
覆寫代碼會作用於其後的字幕上,如果想要結束該覆寫代碼,需要加一個與之對應的結束覆寫代碼來取消該效果。
覆寫參數詳細說明:
覆寫參數 | 描述 | Content參數樣本 |
|
| "這裡設定{\\1c&00FF7F&}綠{\\1c}色" |
| bord、xbord、ybord分別表示邊框、沿X軸邊框和沿Y軸邊框的寬度,單位為像素。 | "這裡設定{\\bord3\\3c&EBCE87&}描邊寬度{\\bord\\3c}顏色和大小" |
\\b1 \\b0 | b1為加粗,b0為取消加粗。 | "這裡設定{\\b1}加粗{\\b0}效果", |
\\i1 \\i0 | i1為斜體,i0為取消斜體。 | "這裡設定{\\i1}斜體{\\i0}效果" |
\\u1 \\u0 | u1為加底線,u0為取消底線。 | "這裡設定{\\u1}底線{\\u0}效果" |
\\s1 \\s0 | s1為添加文本刪除線,s0為取消刪除線。 | "這裡設定{\\s1}刪除線{\\s0}效果" |
\\fs[字型尺寸] | 字幕大小,單位為像素。 | "這裡設定{\\fs100}100號{\\fs}文字" |
\\fn[字型名稱] | 字幕名稱,暫不支援設定自訂字型。 | "這裡設定{\\fnKaiTi}黑體{\\fn}字型" |
成片效果 | Timeline樣本 |
|
字幕自動換行
設定字幕的"AdaptMode"為"AutoWrap",可以實現在字幕超出畫布範圍時自動換行,以保證字幕內容完全顯示出來。同時可以通過設定TextWidth,支援絕對像素和按照畫布百分比來換行,以確保文字在指定寬度範圍內進行換行。
在英文等情境下,只允許在空格位置換行時,可以設定"AdaptMode": "AutoWrapAtSpaces",以確保字幕換行不會出現在英文單詞的中間位置。
成片效果 | Timeline樣本 |
|
字幕對齊
在不同的字幕對齊下,定位方式也會有所不同。在設定Alignment時,對齊和預設的定點位置如下:
Alignment
對齊
預設位置
TopLeft
靠左對齊
視頻左上方
TopCenter
置中對齊
視頻豎直中軸線上側
TopRight
靠右對齊
視頻右上方
CenterLeft
靠左對齊
視頻水平中軸線左側
CenterCenter
置中對齊
視頻中心位置視頻水平中軸線右側
CenterRight
靠右對齊
視頻水平中軸線右側
BottomLeft
靠左對齊
視頻左下角
BottomCenter
置中對齊
視頻豎直中軸線下側
BottomRight
靠右對齊
視頻右下角
如果需要進行簡單的對齊和定位,可以按照以上方式進行設定。若需要在三種不同對齊下依然能夠精確定位字幕位置,可以設定Alignment為Left、Center、Right。字幕的定位基準點分別為:
Alignment
對齊
定位基準點
Left
靠左對齊
字幕文字框左上方頂點
Center
置中對齊
字幕文字框上邊界中點
Right
靠右對齊
字幕文字框右上方頂點
不同Alignment時的不同定位基準點如下圖所示:

成片效果 | Timeline樣本 |
|
字幕特效
出場入場特效可以指定出場和入場時間,而迴圈特效則可以設定迴圈速度。
出場入場特效和迴圈特效不可同時使用。
成片效果 | Timeline樣本 |
|
字幕背景
可以利用SubtitleEffects中的Box欄位來實現字幕純色背景效果,同時支援設定花字、換行等樣式。
成片效果 | Timeline樣本 |
|
官方氣泡字、自訂氣泡字
可以使用BubbleStyleId一鍵設定氣泡的樣式Id,氣泡樣式請參見:氣泡字樣本。
在氣泡字模式下,支援設定BubbleWidth和BubbleHeight來調整氣泡的寬度和高度。此外,X和Y分別表示泡泡圖片左上方相對於視頻左上方的座標。
在SubtitleEffects中的Box樣式下,支援設定圖片來實現自訂氣泡字效果。需要傳入Width和Height,分別表示氣泡原始圖片的寬和高,以及TextArea文字框相對於氣泡的位置和大小。其中四個欄位分別表示字幕文字框左上方座標相對於氣泡的位置,以及字幕文字框相對於氣泡的寬高。
在使用氣泡字功能時,文字會在氣泡內部自動換行,並自動進行縮放處理。
成片效果 | Timeline樣本 |
|
字幕滾動樣本
您可以通過設定ScrollStartY和ScrollEndY來指定字幕滾動的起始和結束位置,同時使用ScrollSpeed參數來控制字幕滾動的速度,單位均為像素。
縱向滾動字幕功能支援在未設定TimelineOut的情況下,自動依據滾動周期時間估算字幕的期間,並能夠設定字幕的滾動起止位置(ScrollStartY、ScrollEndY)、起止靜幀時間(ScrollStartFreeze、ScrollEndFreeze)、起止位移量(ScrollStartShift、ScrollEndShift)以及縱向捲動速度(ScrollSpeed)。
橫向滾動字幕支援配置字幕滾動的起始和結束位置(ScrollStartX、ScrollEndX)、縱向捲動速度(ScrollSpeed)以及是否啟用迴圈滾動(ScrollLoop)。
字幕支援素材之間的對齊,可以設定縱向滾動字幕,參數為"ClipId": "ScrollSubtitle"。背景圖、背景音以及橫幅文字的滾動均需與縱向滾動字幕對齊,相關設定為"ReferenceClipId": "ScrollSubtitle"。此外,縱向滾動字幕的開始時間必須與視頻軌道標題的期間相同,若不一致,則無法實現對齊。
成片效果 | Timeline樣本 |
|
通過設定FECanvas實現相同FontSize在不同解析度成片下字幕顯示大小一致
FontSize代表的是字幕文字高度在成片視頻中所佔的像素數。在預設情況下,相同FontSize在輸出到不同解析度的視頻中時,佔比往往是不一致的,比如FontSize:100時,輸出到480P的視頻字幕佔比比較大,輸出到720P的視頻字幕佔比比較小。如果期望使用合成到720P下的字幕FontSize,在合成到480P視頻時,字幕佔比不變,可以在Timeline中設定FECanvas來實現該效果。
成片效果 | Timeline樣本 |
|