腾讯云点播及声音上传
文章目录
- 1、开通腾讯云点播
- 2、获取腾讯云API密钥
- 3、完成声音上传
- 3.1、引入依赖
- 3.2、参考:接入点地域
- 3.3、参考:任务流设置
- 3.4、首先修改配置:
- 3.4.1、
- 3.5、TrackInfoApiController --》 uploadTrack()
- 3.6、VodServiceImpl --》 uploadTrack()
- 3.6.1、UploadFileUtil
云点播(Video on Demand,VOD)面向音视频、图片等媒体,提供制作上传、存储、转码、媒体处理、媒体 AI、加速分发播放、版权保护等一体化高品质媒体服务。
需要开通腾讯云服务:https://cloud.tencent.com/
快速介入流程:云点播 快速入门-文档中心-腾讯云 (tencent.com)
1、开通腾讯云点播
开通主要包括以下几个主要步骤:
-
微信扫描快速注册(也有其他注册方式):https://cloud.tencent.com/register
-
扫描授权完成之后,“立即实名认证” --> “个人实名认证”,按照提示完成认证过程。
-
开通云点播服务:https://console.cloud.tencent.com/vod/register
同意授权并开通
VOD 的英文全称是 Video On Demand,即视频点播技术,也称为交互式电视点播系统。
这是一种全新的信息服务方式,集计算机技术、网络技术、多媒体技术于一身,
解决了传统电视受时空限制的束缚,用户可以根据自己的需求选择观看的节目和观看时间。
2、获取腾讯云API密钥
上传视频需要使用到开发者的 API 密钥(即 SecretId 和 SecretKey)
点击右上角用户下拉菜单中的“访问管理” --> 访问密钥 --> API密钥管理
一路下一步,即可完成创建,最终出现如下页面:
一定要把SecretId和SecretKey记录下来。
主账号ID:主应用ID
用户名:
登录密码:
SecretId:
SecretKey:
3、完成声音上传
云点播 Java SDK-开发指南-文档中心-腾讯云:https://cloud.tencent.com/document/product/266/10276
3.1、引入依赖
3.2、参考:接入点地域
上传存储设置 - 云点播 - 控制台:https://console.cloud.tencent.com/vod/upload-storage
云点播 媒体上传综述-开发指南-文档中心-腾讯云:https://cloud.tencent.com/document/product/266/9760
本产品所有接口 Region 字段的可选值如下表所示:
地域 | 取值 |
---|---|
亚太东南(曼谷) | ap-bangkok |
华北地区(北京) | ap-beijing |
西南地区(成都) | ap-chengdu |
西南地区(重庆) | ap-chongqing |
华南地区(广州) | ap-guangzhou |
港澳台地区(中国香港) | ap-hongkong |
亚太东南(雅加达) | ap-jakarta |
亚太南部(孟买) | ap-mumbai |
亚太东北(首尔) | ap-seoul |
华东地区(上海) | ap-shanghai |
华东地区(上海金融) | ap-shanghai-fsi |
华南地区(深圳金融) | ap-shenzhen-fsi |
亚太东南(新加坡) | ap-singapore |
亚太东北(东京) | ap-tokyo |
欧洲地区(法兰克福) | eu-frankfurt |
美国东部(弗吉尼亚) | na-ashburn |
美国西部(硅谷) | na-siliconvalley |
北美地区(多伦多) | na-toronto |
南美地区(圣保罗) | sa-saopaulo |
3.3、参考:任务流设置
文档说明:https://cloud.tencent.com/document/product/266/33819
预置任务流:
云点播服务为用户提供5条预置的任务流,该任务流包含了自适应码流任务、截图任务(雪碧图任务)、截取封面图任务,其中详细参数如下:
任务流名称 | 任务类型 | 任务模板/ID |
---|---|---|
LongVideoPreset | 转自适应码流 | Adpative-HLS(10) |
截图 | SpriteScreenshot(10) | |
截取封面 | TimepointScreenshot(10) | |
SimpleAesEncryptPreset | 转自适应码流 | Adpative-HLS-Encrypt(12) |
截图 | SpriteScreenshot(10) | |
截取封面 | TimepointScreenshot(10) | |
WidevineFairPlayPrese | 转自适应码流 | Adpative-HLS-FairPlay(11) Adpative-HLS-Widevine(13) |
截图 | SpriteScreenshot(10) | |
截取封面 | TimepointScreenshot(10) | |
SDMC-WidevineFairPlayPreset | 转自适应码流 | SDMC-Adpative-HLS-FairPlay(31) SDMC-Adpative-DASH-Widevine(41) |
截图 | SpriteScreenshot(10) | |
截取封面 | TimepointScreenshot(10) | |
MultiDRMPreset | 转自适应码流 | Adpative-HLS-EncryptBase(14) Adpative-HLS-Widevine(13) Adpative-HLS-FairPlay(11) |
截图 | SpriteScreenshot(10) | |
截取封面 | TimepointScreenshot(10) |
任务流仅支持选择配置好的模板。
3.4、首先修改配置:
3.4.1、
server:port: 8501
mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志
feign:sentinel:enabled: true
spring:main:allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册cloud:sentinel:transport:dashboard: 192.168.74.148:8858openfeign:lazy-attributes-resolution: true #开启懒加载,否则启动报错client:config:default:connectTimeout: 30000readTimeout: 30000loggerLevel: basicdata:redis:host: 192.168.74.148port: 6379database: 0timeout: 1800000password: 123456jedis:pool:max-active: 20 #最大连接数max-wait: -1 #最大阻塞等待时间(负数表示没限制)max-idle: 5 #最大空闲min-idle: 0 #最小空闲kafka:bootstrap-servers: 192.168.74.148:9092producer:retries: 3 #设置大于0的值,则客户端会将发送失败的记录重新发送acks: allbatch-size: 16384buffer-memory: 33554432key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializerconsumer:group-id: service-albumenable-auto-commit: trueauto-offset-reset: earliestkey-deserializer: org.apache.kafka.common.serialization.StringDeserializervalue-deserializer: org.apache.kafka.common.serialization.StringDeserializerdatasource:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.74.148:3306/tingshu_album?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=trueusername: rootpassword: 123456hikari:connection-test-query: SELECT 1connection-timeout: 60000idle-timeout: 500000max-lifetime: 540000maximum-pool-size: 10minimum-idle: 5pool-name: GuliHikariPooljackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8servlet:multipart:max-file-size: 10MB #单个文件最大限制max-request-size: 20MB #多个文件最大限制
minio:endpointUrl: http://192.168.74.148:9000accessKey: adminsecretKey: admin123456bucketName: sph
vod:appId: 1320762610secretId: AKIDlUNRjBb8dFoRCtUE7ykVLB7CHVq9avKksecretKey: Wr23xx0w1GbsBazVyUuDYr5Mbp29IVerregion: ap-shanghaiprocedure: SimpleAesEncryptPreset #任务流tempPath: D:\\project-1108\\tempPathplayKey: wrTwwu8U3DRSRDgC8l7q #播放加密key
3.5、TrackInfoApiController --》 uploadTrack()
@Tag(name = "声音管理")
@RestController
@RequestMapping("api/album/trackInfo")
@SuppressWarnings({"unchecked", "rawtypes"})
public class TrackInfoApiController {@PostMapping("uploadTrack")public Result<Map<String, Object>> uploadTrack(MultipartFile file){Map<String, Object> map = this.vodService.uploadTrack(file);return Result.ok(map);}
}
3.6、VodServiceImpl --》 uploadTrack()
3.6.1、UploadFileUtil
package com.atguigu.tingshu.common.util;import lombok.SneakyThrows;
import org.joda.time.DateTime;
import org.springframework.web.multipart.MultipartFile;import java.io.File;public class UploadFileUtil {/*** 文件上传到临时路径* @param file* @return*/@SneakyThrowspublic static String uploadTempPath(String tempPath, MultipartFile file) {if (null == file) return "";String date = new DateTime().toString("yyyyMMdd");String filePath = tempPath + File.separator + date;File curFlie = new File(filePath);if (!curFlie.exists()) {curFlie.mkdirs();}filePath = filePath + File.separator + file.getOriginalFilename();file.transferTo(new File(filePath));return filePath;}}
@Service
public class VodServiceImpl implements VodService {@Autowiredprivate VodConstantProperties vodConstantProperties;@Overridepublic Map<String, Object> uploadTrack(MultipartFile file) {// 初始化一个上传客户端对象VodUploadClient client = new VodUploadClient(vodConstantProperties.getSecretId(), vodConstantProperties.getSecretKey());// 构造上传请求对象VodUploadRequest request = new VodUploadRequest();String tempPath = UploadFileUtil.uploadTempPath(vodConstantProperties.getTempPath(), file);request.setMediaFilePath(tempPath);// 调用上传try {VodUploadResponse response = client.upload(vodConstantProperties.getRegion(), request);Map<String, Object> map = new HashMap<>();map.put("mediaUrl", response.getMediaUrl());map.put("mediaFileId", response.getFileId());System.out.println(map);return map;} catch (Exception e) {// 业务方进行异常处理e.printStackTrace();}return null;}
}
相关文章:

腾讯云点播及声音上传
文章目录 1、开通腾讯云点播2、获取腾讯云API密钥3、完成声音上传3.1、引入依赖3.2、参考:接入点地域3.3、参考:任务流设置3.4、首先修改配置:3.4.1、 3.5、TrackInfoApiController --》 uploadTrack()3.6、VodServiceImpl --》 uploadTrack(…...
如何查看服务器是否有raid阵列卡以及raid类型
要查看服务器是否配置了RAID阵列卡以及RAID的类型,可以使用多种方法。以下是一些常用的命令和步骤: 1. 使用 lspci 命令 这个命令可以列出所有的PCI设备,包括RAID控制器。 lspci | grep -i raid 如果输出中有RAID相关的设备信息,那…...

工博会动态 | 来8.1馆 看桥田如何玩转全场
北京时间2024年9月24日,中国国际工业博览会开幕,桥田智能(8.1馆A001)推出心意三重奏,有没有小伙伴们发现呢?现在,让我们一起city walk下! 桥田显眼包横空出道 有小伙伴已经发现&…...

新版torch_geometric不存在uniform、maybe_num_nodes函数问题(Prune4ED论文报错解决)
这是在复现论文“Towards accurate subgraph similarity computation via neural graph pruning”时遇到的报错。 ImportError: cannot import name uniform from torch_geometric.nn.pool.topk_pool 一、报错原因 论文作者使用的是2.1.0版本的torch_geometric。而我安装了2.…...

实现简易 vuedraggable 的拖拽排序功能
一、案例效果 拖拽计数4实现手动排序 二、案例代码 <draggable:list"searchResult.indicator":group"{ name: indicators }"item-key"field"handle".drag-handle-icon"><divclass"field-item"v-for"(item…...

第L2周:机器学习|线性回归模型 LinearRegression:2. 多元线性回归模型
本文为365天深度学习训练营 中的学习记录博客原作者:K同学啊 任务: ●1. 学习本文的多元线形回归模型。 ●2. 参考文本预测花瓣宽度的方法,选用其他三个变量来预测花瓣长度。 一、多元线性回归 简单线性回归:影响 Y 的因素唯一&…...

JavaScript的条件语句
if条件语句 if结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是JavaScript 的两个特殊值,true表示真,false表示伪。 if语句语法规范 if(布尔值){语句;}var m3if(m3){console.l…...

vue3 vite模式配置测试,开发、生产环境以及代理配置
1、首先在根目录下创建三个文本文件:.env.development,.env.production,.env.test .env.development中的内容为: // 开发环境 .env.development NODE_ENV development VITE_APP_MODE development VITE_OUTPUTDIR dist_dev /…...

【rabbitmq-server】安装使用介绍
在 1050a 系统下安装 rabbitmq-server 服务以及基本配置;【注】:改方案用于A版统信服务器操作系统 文章目录 功能概述功能介绍一、安装软件包二、启动服务三、验证四、基本配置功能概述 RabbitMQ 是AMQP的实现,高性能的企业消息的新标准。RabbitMQ服务器是一个强大和可扩展…...
Kafka系列之:安装部署CMAK,CMAK管理大型Kafka集群参数调优
Kafka系列之:安装部署CMAK,CMAK管理大型Kafka集群参数调优 一、CMAK二、要求三、配置四、启动服务五、使用 Security 启动服务六、消费者/生产者滞后七、从 Kafka Manager 迁移到 CMAK八、CMAK管理大型Kafka集群参数调优九、后台运行CMAK十、输出日志一、CMAK CMAK(之前称为…...

c语言200例 64
大家好,欢迎来到无限大的频道。 今天带领大家来学习c语言。 题目要求: 设计一个进行候选人的选票程序。假设有三位候选人,在屏幕上输入要选择的候选人姓名, 有10次投票机会,最后输出每个人的得票结果。好的ÿ…...
[leetcode]216_组合总和III_给定数字范围且输出无重复
找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。示例 1: 输入: k 3, n 7 输出: [[1,2,4]] 解释: 1…...
Doris 2.x 安装及使用
Doris 2.x 安装及使用 简介 Apache Doris 是一款基于 MPP 架构的高性能、实时的分析型数据库,以高效、简单、统一的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持…...
MySQL字符集设置
MySQL字符集设置 一、查看当前配置的字符集 \s;示例 MariaDB [(none)]> \s -------------- mysql Ver 15.1 Distrib 5.5.68-MariaDB, for Linux (x86_64) using readline 5.1Connection id: 11 Current database: Current user: rootlocalhost SSL: …...
深度学习模型量化
模型量化是深度学习领域中的一项重要技术,它通过降低模型参数的精度,将浮点数转换为整数或定点数,从而实现模型的压缩和优化。以下是进行模型量化的详细步骤和注意事项: 一、模型量化的基本步骤 选择量化方法 后训练量化…...
红黑树和B+树
红黑树和B树是两种常用的自平衡数据结构,适用于不同的应用场景和需求。下面是对这两种树的详细比较和描述: 红黑树 基本结构: 红黑树是一种自平衡的二叉搜索树(Binary Search Tree),其中每个节点都有一个颜…...
debian 12配置固定ip
配置文件 cat /etc/network/interfaces |grep -v # source /etc/network/interfaces.d/*auto lo iface lo inet loopbackallow-hotplug ens18 iface ens18 inet staticaddress 192.168.0.105/24network 192.168.0.0broadcast 192.168.0.255gateway 192.168.0.1dns-nameserver…...

OceanBase技术解析: 执行器中的自适应技术
在《OceanBase 数据库源码解析》这本书中,对于执行器的探讨还不够深入,它更多地聚焦于执行器的并行处理机制。因此,通过本文与大家分享OceanBase执行器中几种典型的自适应技术,作为对书中执行器部分的一个补充。 提升数据库分析性…...

Spring Cloud Gateway接入WebSocket:实现实时通信
在现代的微服务架构中,实时通信变得越来越重要。Spring Cloud Gateway作为Spring Cloud生态中的API网关,提供了动态路由、监控、弹性、安全等功能。本文将介绍如何通过Spring Cloud Gateway接入WebSocket,实现服务之间的实时通信。 为什么需…...

linux信号| 学习信号三步走 | 学习信号需要打通哪些知识脉络?
前言: 本节内容主要讲解linux下信号的预备知识以及信号的概念, 信号部分我们将会分为几个阶段进行讲解:信号的概念, 信号的产生, 信号的保存。本节主要讲解信号 ps:本节内容适合学习了进程相关概念的友友们进行观看哦 目录 什么是…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...