Domain name for API request: vod.tencentcloudapi.com.
This API is used to cut a clip from an HLS video to generate a new video (in HLS format). You can either share the new video or save it.
VOD supports two types of clipping:
FileId
.FileId
with the input file.Notes:
In this mode, a video clip is saved as an independent video file with a FileId
, and its lifecycle is not subject to the input video. Even if the source video is deleted, the video clip still exists. Moreover, the video clip can be transcoded, published on WeChat, and processed in other ways.
Suppose you recorded a two-hour football match. You want to save the full video for only two months to save costs, but want to save the highlights for a longer time and perhaps transcode and publish the highlight clip to WeChat. In this case, you can choose clipping for persistent storage.
The advantage of clipping for persistent storage is that the video clip has a lifecycle independent of the input video and can be managed independently and stored persistently.
Notice: If solidification is specified during clipping, enable the reception of persistence completed event notifications through the ModifyEventConfig interface. After successful solidification, an event notification of type PersistenceComplete will be received. Before receiving this event notification, operations such as deletion or cooling down of live recording videos should not be performed, otherwise, abnormal playback may occur in the video generated by the clipping.
The video clip (an M3U8 file) shares the same TS segments with the input video instead of being an independent video. It only has a playback URL but has no FileId
, and its validity period is the same as that of the input video. Once the input video is deleted, the video clip cannot be played back.
Because the video clip is not an independent video, it's not displayed as a media asset in the VOD console, and cannot be transcoded or published to WeChat.
Clipping for temporary sharing is lightweight and incurs no additional storage fees. However, the video clip has the same lifecycle as the source recording video and cannot be transcoded or processed in other ways.
A maximum of 100 requests can be initiated per second for this API.
The following request parameter list only provides API request parameters and some common parameters. For the complete common parameter list, see Common Request Parameters.
Parameter Name | Required | Type | Description |
---|---|---|---|
Action | Yes | String | Common Params. The value used for this API: SimpleHlsClip. |
Version | Yes | String | Common Params. The value used for this API: 2018-07-17. |
Region | No | String | Common Params. This parameter is not required. |
Url | Yes | String | URL of the HLS video in VOD that needs to be clipped. |
SubAppId | No | Integer | The VOD application ID. For customers who activate VOD service from December 25, 2023, if they want to access resources in a VOD application (whether it's the default application or a newly created one), they must fill in this field with the application ID. |
StartTimeOffset | No | Float | Start offset time of clipping in seconds. Default value: 0, which means to clip from the beginning of the video. A negative number indicates how many seconds from the end of the video clipping will start at. For example, -10 means that clipping will start at the 10th second from the end. |
EndTimeOffset | No | Float | End offset time of clipping in seconds. Default value: 0, which means to clip till the end of the video. A negative number indicates how many seconds from the end of the video clipping will end. For example, -10 means that clipping will end at the 10th second from the end. |
IsPersistence | No | Integer | Whether to store the video clip persistently. 0: no (default), 1: yes. |
ExpireTime | No | String | The expiration time of the video clip that is to be saved, in ISO date format. 9999-12-31T23:59:59Z is the default value, which means the video clip will never expire. After expiration, the media file and its related resources (such as transcoding results and image sprites) will be permanently deleted. This parameter is valid only if IsPersistence is 1. |
Procedure | No | String | The task flow to execute on the video clipped for persistent storage. For details, see Upload from Server. This parameter is valid only if IsPersistence is 1. |
ClassId | No | Integer | The ID of the media file's category. You can use the CreateClass API to create a category and get the category ID.0 , which means the "Other" category.This parameter is valid only if IsPersistence is 1 . |
SourceContext | No | String | The source context, which is used to pass through user request information. The NewFileUpload callback will return the value of this parameter. It can contain up to 250 characters and is valid only if IsPersistence is 1 . |
SessionContext | No | String | The session context, which is used to pass through user request information. If the Procedure parameter is specified, the ProcedureStateChanged callback will return the value of this parameter. It can contain up to 1,000 characters and is valid only if IsPersistence is 1 . |
Precision | No | String | |
OutputMediaType | No | String | |
ExtInfo | No | String |
Parameter Name | Type | Description |
---|---|---|
Url | String | Address of clipped video. |
MetaData | MediaMetaData | Metadata of clipped video. Currently, Size , Rotate , VideoDuration , and AudioDuration fields use default value with no actual data. |
FileId | String | Unique ID of a video clip for persistent storage. |
TaskId | String | The ID of the task flow to execute on the video clipped for persistent storage. |
RequestId | String | The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. |
This example shows you how to clip a video that starts at two seconds from the beginning of the original video and ends ten seconds from the end of the original video.
POST / HTTP/1.1
Host: vod.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: SimpleHlsClip
<Common request parameters>
{
"Url": "http://xxxxx.vod2.myqcloud.com/xxxxx/aaaaaa/hhhh.m3u8",
"StartTimeOffset": 2.0,
"EndTimeOffset": 10.0
}
{
"Response": {
"Url": "http://xxxxx.vod2.myqcloud.com/xxxxx/aaaaaa/10_50.m3u8",
"FileId": "",
"TaskId": "",
"MetaData": {
"Size": 0,
"Container": "hls",
"Bitrate": 622014,
"Height": 480,
"Width": 640,
"Duration": 48.0,
"Rotate": 0,
"VideoStreamSet": [
{
"Bitrate": 592385,
"Height": 480,
"Width": 640,
"Codec": "h264",
"Fps": 25,
"CodecTag": "",
"DynamicRangeInfo": {
"Type": "",
"HDRType": ""
}
}
],
"AudioStreamSet": [
{
"Bitrate": 29629,
"SamplingRate": 44100,
"Codec": "aac"
}
],
"VideoDuration": 0.0,
"AudioDuration": 0.0,
"Md5": "Md5"
},
"RequestId": "12ae8d8e-dce3-4151-9d4b-5594145287e1"
}
}
This example shows you how to clip a video from 00:02 to 00:10.
POST / HTTP/1.1
Host: vod.tencentcloudapi.com
Content-Type: application/json
X-TC-Action: SimpleHlsClip
<Common request parameters>
{
"Url": "http://xxxxx.vod2.myqcloud.com/xxxxx/aaaaaa/hhh.m3u8",
"StartTimeOffset": 2.0,
"EndTimeOffset": 10.0
}
{
"Response": {
"Url": "http://xxxxx.vod2.myqcloud.com/xxxxx/aaaaaa/10_50.m3u8",
"FileId": "",
"TaskId": "",
"MetaData": {
"Size": 0,
"Container": "hls",
"Bitrate": 622014,
"Height": 480,
"Width": 640,
"Duration": 48.0,
"Rotate": 0,
"VideoStreamSet": [
{
"Bitrate": 592385,
"Height": 480,
"Width": 640,
"Codec": "h264",
"Fps": 25,
"CodecTag": "",
"DynamicRangeInfo": {
"Type": "",
"HDRType": ""
}
}
],
"AudioStreamSet": [
{
"Bitrate": 29629,
"SamplingRate": 44100,
"Codec": "aac"
}
],
"VideoDuration": 0.0,
"AudioDuration": 0.0,
"Md5": "Md5"
},
"RequestId": "12ae8d8e-dce3-4151-9d4b-5594145287e1"
}
}
TencentCloud API 3.0 integrates SDKs that support various programming languages to make it easier for you to call APIs.
The following only lists the error codes related to the API business logic. For other error codes, see Common Error Codes.
Error Code | Description |
---|---|
FailedOperation | Operation failed. |
FailedOperation.InvalidVodUser | The VOD service is not activated. |
InternalError | Internal error. |
InvalidParameterValue | Incorrect parameter value. |
InvalidParameterValue.EndTimeOffset | Incorrect parameter: the end time is invalid. |
InvalidParameterValue.ExpireTime | Incorrect parameter value: incorrect ExpireTime format. |
InvalidParameterValue.IsPersistence | |
InvalidParameterValue.OutputMediaType | |
InvalidParameterValue.Precision | |
InvalidParameterValue.Procedure | |
InvalidParameterValue.StartTimeOffset | Incorrect parameter: the start time is invalid. |
InvalidParameterValue.Url | Incorrect parameter: the URL is invalid. |
ResourceUnavailable.MasterPlaylist | Incorrect parameter: M3U8 of MasterPlaylist is not supported. |
UnauthorizedOperation | Unauthorized operation. |
문제 해결에 도움이 되었나요?