视频转码

This commit is contained in:
bianyadong
2024-05-07 19:56:31 +08:00
parent 7dec4b8c47
commit 847e1822d0
16 changed files with 982 additions and 0 deletions

View File

@@ -173,5 +173,12 @@ public class CommonConstants {
public static final String SEVEN_DAY="第七天-道具安装、室外招牌安装";
public static final String EIGHT_DAY="第八天-卫生保洁、网络及收银设备安装、撤场交接";
public static final String WITHDRAWAL="撤场";
public static final String TRANSCODE_VIDEO = "mp4";
public static final String PRODUCT_REMIND = "product_remind";
/**
* 返回成功描述
*/
public static final String SUCCESS_STR = "success";
}

View File

@@ -0,0 +1,40 @@
package com.cool.store.enums.video;
import java.util.Arrays;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
public enum AlarmTypeEnum {
/**
* 区域入侵
*/
REGION_INTRUSION("region_intrusion","区域入侵"),
/**
* 排队告警
*/
WAITING_ALARM("waiting_alarm","排队告警");
private String code;
private String msg;
protected static final Map<String, AlarmTypeEnum> map = Arrays.stream(values()).collect(
Collectors.toMap(AlarmTypeEnum::getCode, Function.identity()));
AlarmTypeEnum(String code, String msg){
this.code=code;
this.msg=msg;
}
public String getCode() {
return code;
}
public String getMsg() {
return msg;
}
public static AlarmTypeEnum getByCode(String code) {
return map.get(code);
}
}

View File

@@ -0,0 +1,29 @@
package com.cool.store.enums.video;
/**
* video status
*/
public enum ResourceStatusEnum {
UPLOADING(0),// 上传中
TRANSCODING(1),// 转码中
SCREENSHOT_FINISHED(2),//截图完成
TRANSCODE_FINISH(3),//完成
TRANSCODE_FAILED(4);//失败
private final Integer value;
ResourceStatusEnum(Integer value) {
this.value = value;
}
public Integer getValue() {
return value;
}
}

View File

@@ -0,0 +1,82 @@
package com.cool.store.enums.video;
/**
* video status
*/
public enum UploadTypeEnum {
/**
* 检查项提交
*/
TB_DATA_STA_TABLE_COLUMN(1),
/**
* 巡店记录总结
*/
TB_PATROL_STORE_RECORD(2),
/**
* 工单创建
*/
QUESTION_CREATE(3),
/**
*工单处理审核提交
*/
QUESTION_SUMMIT(4),
/**
* 父工单创建
*/
QUESTION_PARENT_CREATE(5),
/**
* 店务提交
*/
STORE_WORK_SUBMIT(6),
/**
* 运营手册
*/
TASK_SOP_ADD(7),
DEVICE_CAPTURE(8),
/**
* 巡店自定义检查项提交
*/
TB_DATA_DEF_TABLE_COLUMN(9),
/**
* 督导自定义检查项提交
*/
SUPERVISION_DATA_DEF_TABLE_COLUMN(10),
ACTIVITY_COMMENT(11),
WEEKLY_NEWSPAPER_LIST(12),
/**
* 陈列检查项提交
*/
TB_DISPLAY_TABLE_DATA_COLUMN(13),
/**
* 陈列检查内容提交
*/
TB_DISPLAY_TABLE_DATA_CONTENT(14),
;
private final Integer value;
UploadTypeEnum(Integer value) {
this.value = value;
}
public Integer getValue() {
return value;
}
}

View File

@@ -0,0 +1,49 @@
package com.cool.store.utils.vod;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
/**
* Created by Joshua on 2017/9/28 15:50
*/
public class AliResponseUtil {
public static String GetPostBody(InputStream is, int contentLen) {
if (contentLen > 0) {
int readLen = 0;
int readLengthThisTime = 0;
byte[] message = new byte[contentLen];
try {
while (readLen != contentLen) {
readLengthThisTime = is.read(message, readLen, contentLen - readLen);
if (readLengthThisTime == -1) {// Should not happen.
break;
}
readLen += readLengthThisTime;
}
return new String(message);
} catch (IOException e) {
}
}
return "";
}
public static Map<String, String> convert(Map<String, String[]> requestParams) throws UnsupportedEncodingException {
Map<String, String> params = new HashMap<>();
for (String name : requestParams.keySet()) {
String[] values = (String[]) requestParams.get(name);
String valueStr = "";
for (int i = 0; i < values.length; i++) {
valueStr = (i == values.length - 1) ? valueStr + values[i]
: valueStr + values[i] + ",";
}
//乱码解决,这段代码在出现乱码时使用
valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
params.put(name, valueStr);
}
return params;
}
}

View File

@@ -0,0 +1,209 @@
package com.cool.store.utils.vod;
import java.util.List;
/**
* Created by Joshua on 2017/9/28 13:06
*/
public class CallbackRequest {
private String EventType;
private String VideoId;
private String MediaId;
private String Status;
private String Bitrate;//视频流码率单位Kbps
private String Definition;//视频流清晰度定义, 取值FD(流畅)LD(标清)SD(高清)HD(超清)OD(原画)2K(2K)4K(4K)
private Float Duration;//视频流长度,单位秒
private Boolean Encrypt;//视频流是否加密流
private String ErrorCode;//视频流转码出错的时候,会有该字段表示出错代码
private String ErrorMessage;// 视频流转码出错的时候,会有该字段表示出错信息
private String FileUrl;//视频流的播放地址不带鉴权的auth_key如果开启了URL鉴权则需要自己生成auth_key才能访问
private String Format;//视频流格式取值mp4, m3u8
private String Fps;//视频流帧率,每秒多少帧
private Long Height;// 视频流高度单位px
private Long Size;// 视频流大小单位Byte
private Long Width;// 视频流宽度单位px
private List<CallbackStreamInfo> StreamInfos;
private String CoverUrl;//封面图片地址,若未设置封面,则取第一张截图为封面
private String[] Snapshots;// 截图地址列表
private String Data;
private String CreationTime; //人工审核时间
private String AuditStatus; //人工审核的结果
public String getEventType() {
return EventType;
}
public void setEventType(String eventType) {
EventType = eventType;
}
public String getVideoId() {
return VideoId;
}
public void setVideoId(String videoId) {
VideoId = videoId;
}
public String getStatus() {
return Status;
}
public void setStatus(String status) {
Status = status;
}
public String getBitrate() {
return Bitrate;
}
public void setBitrate(String bitrate) {
Bitrate = bitrate;
}
public String getDefinition() {
return Definition;
}
public void setDefinition(String definition) {
Definition = definition;
}
public Float getDuration() {
return Duration;
}
public void setDuration(Float duration) {
Duration = duration;
}
public Boolean getEncrypt() {
return Encrypt;
}
public void setEncrypt(Boolean encrypt) {
Encrypt = encrypt;
}
public String getErrorCode() {
return ErrorCode;
}
public void setErrorCode(String errorCode) {
ErrorCode = errorCode;
}
public String getErrorMessage() {
return ErrorMessage;
}
public void setErrorMessage(String errorMessage) {
ErrorMessage = errorMessage;
}
public String getFileUrl() {
return FileUrl;
}
public void setFileUrl(String fileUrl) {
FileUrl = fileUrl;
}
public String getFormat() {
return Format;
}
public void setFormat(String format) {
Format = format;
}
public String getFps() {
return Fps;
}
public void setFps(String fps) {
Fps = fps;
}
public Long getHeight() {
return Height;
}
public void setHeight(Long height) {
Height = height;
}
public Long getSize() {
return Size;
}
public void setSize(Long size) {
Size = size;
}
public Long getWidth() {
return Width;
}
public void setWidth(Long width) {
Width = width;
}
public List<CallbackStreamInfo> getStreamInfos() {
return StreamInfos;
}
public void setStreamInfos(List<CallbackStreamInfo> streamInfos) {
StreamInfos = streamInfos;
}
public String getCoverUrl() {
return CoverUrl;
}
public void setCoverUrl(String coverUrl) {
CoverUrl = coverUrl;
}
public String[] getSnapshots() {
return Snapshots;
}
public void setSnapshots(String[] snapshots) {
Snapshots = snapshots;
}
public String getData() {
return Data;
}
public void setData(String data) {
Data = data;
}
public String getCreationTime() {
return CreationTime;
}
public void setCreationTime(String creationTime) {
CreationTime = creationTime;
}
public String getAuditStatus() {
return AuditStatus;
}
public void setAuditStatus(String auditStatus) {
AuditStatus = auditStatus;
}
public String getMediaId() {
return MediaId;
}
public void setMediaId(String mediaId) {
MediaId = mediaId;
}
}

View File

@@ -0,0 +1,124 @@
package com.cool.store.utils.vod;
/**
* Created by Joshua on 2017/9/28 13:09
*/
public class CallbackStreamInfo {
private String Status;// 视频流转码状态取值success(成功)fail(失败)
private Float Bitrate;// 视频流码率单位Kbps
private String Definition;// 视频流清晰度定义, 取值FD(流畅)LD(标清)SD(高清)HD(超清)OD(原画)2K(2K)4K(4K)
private Float Duration;// 视频流长度,单位秒
private Boolean Encrypt;// 视频流是否加密流
private String ErrorCode;// 视频流转码出错的时候,会有该字段表示出错代码
private String ErrorMessage;// 视频流转码出错的时候,会有该字段表示出错信息
private String FileUrl;// 视频流的播放地址不带鉴权的auth_key如果开启了播放鉴权此地址会无法访问
private String Format;// 视频流格式取值mp4, m3u8
private Float Fps;// 视频流帧率,每秒多少帧
private Long Height;// 视频流高度单位px
private Long Size;// 视频流大小单位Byte
private Long Width;// 视频流宽度单位px
public String getStatus() {
return Status;
}
public void setStatus(String status) {
Status = status;
}
public Float getBitrate() {
return Bitrate;
}
public void setBitrate(Float bitrate) {
Bitrate = bitrate;
}
public String getDefinition() {
return Definition;
}
public void setDefinition(String definition) {
Definition = definition;
}
public Float getDuration() {
return Duration;
}
public void setDuration(Float duration) {
Duration = duration;
}
public Boolean getEncrypt() {
return Encrypt;
}
public void setEncrypt(Boolean encrypt) {
Encrypt = encrypt;
}
public String getErrorCode() {
return ErrorCode;
}
public void setErrorCode(String errorCode) {
ErrorCode = errorCode;
}
public String getErrorMessage() {
return ErrorMessage;
}
public void setErrorMessage(String errorMessage) {
ErrorMessage = errorMessage;
}
public String getFileUrl() {
return FileUrl;
}
public void setFileUrl(String fileUrl) {
FileUrl = fileUrl;
}
public String getFormat() {
return Format;
}
public void setFormat(String format) {
Format = format;
}
public Float getFps() {
return Fps;
}
public void setFps(Float fps) {
Fps = fps;
}
public Long getHeight() {
return Height;
}
public void setHeight(Long height) {
Height = height;
}
public Long getSize() {
return Size;
}
public void setSize(Long size) {
Size = size;
}
public Long getWidth() {
return Width;
}
public void setWidth(Long width) {
Width = width;
}
}

View File

@@ -0,0 +1,29 @@
package com.cool.store.utils.vod;
/**
* Created by Joshua on 2017/9/28 13:41
*/
public class EventType {
/**
* 视频上传完成
*/
public static final String FileUploadComplete = "FileUploadComplete";
/**
* 视频截图完成
*/
public static final String SnapshotComplete = "SnapshotComplete";
/**
* 视频单个清晰度转码完成
*/
public static final String StreamTranscodeComplete = "StreamTranscodeComplete";
/**
* 视频全部清晰度转码完成
*/
public static final String TranscodeComplete = "TranscodeComplete";
/**
* 智能审核
*/
public static final String AIMediaAuditComplete = "AIMediaAuditComplete";
public static final String CreateAuditComplete = "CreateAuditComplete";
}

View File

@@ -0,0 +1,39 @@
package com.cool.store.utils.vod;
import lombok.Data;
import java.util.Date;
/**
* @author chenyupeng
* @since 2021/10/11
*/
@Data
public class SmallVideoParam {
/**
* 企业id
*/
private String enterpriseId;
/**
* 任务id
*/
private Long businessId;
/**
* 转码视频videoId
*/
private String videoId;
/**
*
* 上传类型
*/
private Integer uploadType;
/**
* 上传时间
*/
private Date uploadTime;
}

View File

@@ -0,0 +1,32 @@
package com.cool.store.utils.vod;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
/**
* @Title UserData
* @Description vod服务UserData参数
* @Author zhucg
*/
@Data
public class UserData {
/**
* 回调设置
*/
@JSONField(name = "MessageCallback")
private MessageCallback messageCallback;
public void setCallBack(String callBackUrl) {
this.messageCallback = new MessageCallback();
this.messageCallback.setCallbackURL(callBackUrl);
}
@Data
public class MessageCallback {
@JSONField(name = "CallbackURL")
private String callbackURL;
}
}