您可以通過視頻拼接功能,將多個視頻拼接為一個視頻并轉換為需要的格式。本文介紹視頻拼接功能參數及示例。
使用場景
短視頻創作:在短視頻平臺上,用戶經常需要將不同場景拍攝的短視頻片段進行拼接,形成一個連貫的故事或展示多個不同的內容點。
電影與電視制作:在影視后期制作中,視頻拼接是基本操作。導演和剪輯師會將多個鏡頭組合在一起,以構建劇情、塑造角色或展現視覺效果。
廣告宣傳:廣告片的制作過程中,為了表現產品的多樣使用場景或突出不同特點,會把各個獨立拍攝的場景無縫銜接起來。
企業宣傳片:公司或組織制作宣傳片時,往往需要將各種產品特寫、員工采訪、工作現場等多種場景組合,形成統一的品牌故事。
注意事項
視頻拼接僅支持異步處理(x-oss-async-process處理方式)。
使用視頻拼接前,需要先綁定IMM Project。關于控制臺和API如何綁定,請參見快速入門和AttachOSSBucket。
不支持匿名訪問。
必須擁有IMM處理所需的相關權限。更多信息,請參見權限。
當使用默認采樣率或聲道數進行轉碼時,拼接可能由于目標視頻容器的兼容性而失敗。
進行視頻拼接時,最大支持的視頻數量為 11 個。
參數說明
操作名稱:video/concat
具體參數如下表所示。
拼接參數
video/concat
的拼接順序按照pre
與sur
在請求串中的先后順序進行拼接,具體如下:
/pre
:前置拼接的視頻文件。/sur
:后置拼接的視頻文件。
參數 | 類型 | 是否必須 | 描述 |
ss | int | 否 | 前綴、后綴視頻的拼接起始時間,單位為毫秒。取值:
|
t | int | 否 | 前綴、后綴視頻的拼接持續時長,單位為毫秒。取值:
|
o | string | 是 | 當前Bucket下的OSS Object,需要以Base64 URL安全方式編碼。 |
轉碼參數
參數 | 類型 | 是否必須 | 描述 |
ss | int | 否 | 被拼接視頻的轉碼起始時間,單位為毫秒。取值:
|
t | int | 否 | 被拼接視頻的轉碼持續時長,單位為毫秒。取值:
|
f | string | 是 | 視頻容器,取值:
|
vn | int | 否 | 是否禁用視頻流。取值:
|
vcodec | string | 是 | 視頻codec(編碼格式)。取值:
說明 mxf與flv不支持h265。 |
fps | float | 否 | 視頻幀率。默認與align指定的源視頻一致,取值范圍為0~240。 |
fpsopt | int | 否 | 視頻幀率選項。取值:
說明 該參數需要與fps一同設置。 |
pixfmt | string | 否 | 像素采樣格式。默認與align指定的源視頻一致,取值:
|
s | string | 否 | 分辨率。
|
sopt | int | 否 | 分辨率選項。取值:
說明 該參數需要與s一同設置。 |
scaletype | string | 否 | 縮放方式。取值:
|
arotate | int | 否 | 自適應分辨率方向。取值:
|
g | int | 否 | 關鍵幀間隔。默認值為150。取值范圍:1~100000。 |
vb | int | 否 | 視頻比特率(碼率),單位為比特/秒(bps)。取值范圍:10000~100000000。 說明 該參數與crf互斥,表示不同碼率控制算法。若都不設置則按照輸出分辨率的默認碼率進行編碼。 |
vbopt | int | 否 | 視頻碼率選項。取值:
說明 該參數需要與vb一同設置。 |
crf | float | 否 | 碼率控制因子。取值范圍:0~51。數值越大畫質越差,建議取值范圍為18~38。 |
maxrate | int | 否 | 峰值碼率,單位為比特/秒(bps),默認為0。取值范圍:10000~100000000。 說明 該參數需要與crf一同設置。 |
bufsize | int | 否 | 緩沖區大小,單位為比特(bits),默認為0。取值范圍:10000~200000000。 說明 該參數需要與crf一同設置。 |
an | int | 否 | 是否禁用音頻流。取值:
|
acodec | string | 是 | 音頻codec(編碼格式)。取值:
說明 mp4不支持pcm;mov不支持flac與opus;asf不支持opus;avi不支持opus;mxf只支持pcm;ts不支持flac、vorbis、amr與pcm;flv不支持flac、vorbis、amr、opus與pcm。 |
ar | int | 否 | 音頻采樣率。默認與align指定的源視頻一致,取值:
說明 不同格式支持的采樣率有所不同,mp3僅支持48kHz及以下;opus支持8kHz、12kHz、16kHz、24kHz與48kHz;ac3支持32kHz、44.1kHz與48kHz;amr僅支持8kHz與16kHz。 |
ac | int | 否 | 音頻聲道數。默認與align指定的源視頻一致,取值范圍:1~8。 說明 不同格式支持的聲道數有所不同,mp3僅支持單、雙聲道;ac3最大支持6聲道(5.1);amr僅支持單聲道。 |
aq | int | 否 | 音頻壓縮質量。取值范圍:0~100。 說明 該參數與ab互斥,若都不設置則按照編碼器默認碼率進行編碼。 |
ab | int | 否 | 音頻比特率(碼率)。單位為比特/秒(bps)。取值范圍:1000~10000000。 |
abopt | string | 否 | 音頻碼率選項。取值:
說明 該參數需要與ab一同設置。 |
align | int | 否 | 主視頻文件(提供默認轉碼參數)在拼接列表中的序號,默認為0(對齊拼接列表中第一個視頻文件)。 |
adepth | int | 否 | 音頻采樣位深,取值為16或24。 說明 該參數僅在acodec為flac時有效 |
媒體分片參數
/segment
:分片參數
參數 | 類型 | 是否必須 | 描述 |
f | string | 是 | 分片格式。取值:
|
t | int | 是 | 分片長度,單位為毫秒。取值范圍:0~3600000。 |
媒體分片僅支持mp4與ts容器。
使用REST API
將3段不同格式視頻拼接為1段mp4格式視頻
拼接信息
拼接前
視頻名稱:pre.mov、example.mkv、sur.mov
處理方式
拼接時長與順序:
視頻名稱
順序
時長
pre.mov
1
整段視頻
example.mkv
2
第10秒到結尾
sur.mov
3
開頭到第十秒
轉碼完成消息通知:發送MNS消息
拼接后
視頻信息
視頻格式:h264
視頻幀率:25fps
視頻碼率:1 Mbps
音頻信息
音頻格式:aac
音頻配置:48kHz采樣率,雙聲道
音頻碼率:96 Kbps
文件存儲路徑
mp4文件:oss://outbucket/outobj.mp4
處理示例
// 對文件example.mkv進行視頻拼接。
POST /example.mkv?x-oss-async-process HTTP/1.1
Host: video-demo.oss-cn-hangzhou.aliyuncs.com
Date: Fri, 28 Oct 2022 06:40:10 GMT
Authorization: OSS qn6qrrqxo2oawuk53otf****:UNQDb7GapEgJkcde6OhZ9J****
x-oss-async-process=video/concat,ss_10000,f_mp4,vcodec_h264,fps_25,vb_1000000,acodec_aac,ab_96000,ar_48000,ac_2,align_1/pre,o_cHJlLm1vdgo/sur,o_c3VyMS5hYWMK,t_10000|sys/saveas,b_b3V0YnVja2V0,o_b3V0b2JqLnthdXRvZXh0fQo/notify,topic_QXVkaW9Db252ZXJ0
使用SDK
視頻拼接僅支持異步處理,SDK使用方法請參見異步處理。