腾讯云点播及声音上传

news2024/11/17 9:44:23

文章目录

  • 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、开通腾讯云点播

开通主要包括以下几个主要步骤:

  1. 微信扫描快速注册(也有其他注册方式):https://cloud.tencent.com/register

  2. 扫描授权完成之后,“立即实名认证” --> “个人实名认证”,按照提示完成认证过程。

  3. 开通云点播服务: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:8858
    openfeign:
      lazy-attributes-resolution: true #开启懒加载,否则启动报错
      client:
        config:
          default:
            connectTimeout: 30000
            readTimeout: 30000
            loggerLevel: basic
  data:
    redis:
      host: 192.168.74.148
      port: 6379
      database: 0
      timeout: 1800000
      password: 123456
      jedis:
        pool:
          max-active: 20 #最大连接数
          max-wait: -1    #最大阻塞等待时间(负数表示没限制)
          max-idle: 5    #最大空闲
          min-idle: 0     #最小空闲
  kafka:
    bootstrap-servers: 192.168.74.148:9092
    producer:
      retries: 3  #设置大于0的值,则客户端会将发送失败的记录重新发送
      acks: all
      batch-size: 16384
      buffer-memory: 33554432
      key-serializer: org.apache.kafka.common.serialization.StringSerializer
      value-serializer: org.apache.kafka.common.serialization.StringSerializer
    consumer:
      group-id: service-album
      enable-auto-commit: true
      auto-offset-reset: earliest
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.74.148:3306/tingshu_album?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=true
    username: root
    password: 123456
    hikari:
      connection-test-query: SELECT 1
      connection-timeout: 60000
      idle-timeout: 500000
      max-lifetime: 540000
      maximum-pool-size: 10
      minimum-idle: 5
      pool-name: GuliHikariPool
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8
  servlet:
    multipart:
      max-file-size: 10MB     #单个文件最大限制
      max-request-size: 20MB  #多个文件最大限制
minio:
  endpointUrl: http://192.168.74.148:9000
  accessKey: admin
  secretKey: admin123456
  bucketName: sph
vod:
  appId: 1320762610
  secretId: AKIDlUNRjBb8dFoRCtUE7ykVLB7CHVq9avKk
  secretKey: Wr23xx0w1GbsBazVyUuDYr5Mbp29IVer
  region: ap-shanghai
  procedure: SimpleAesEncryptPreset #任务流
  tempPath: D:\\project-1108\\tempPath
  playKey: 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
     */
    @SneakyThrows
    public 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 {

    @Autowired
    private VodConstantProperties vodConstantProperties;

    @Override
    public 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;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2162732.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

长列表加载性能优化

一、长列表优化概述 列表是应用开发中最常见的一类开发场景&#xff0c;它可以将杂乱的信息整理成有规律、易于理解和操作的形式&#xff0c;便于用户查找和获取所需要的信息。应用程序中常见的列表场景有新闻列表、购物车列表、各类排行榜等。随着信息数据的累积&#xff0c;特…

MobaXterm基本使用 -- 服务器状态、批量操作、显示/切换中文字体、修复zsh按键失灵

监控服务器资源 参考网址&#xff1a;https://www.cnblogs.com/144823836yj/p/12126314.html 显示效果 MobaXterm提供有这项功能&#xff0c;在会话窗口底部&#xff0c;显示服务器资源使用情况 如内存、CPU、网速、磁盘使用等&#xff1a; &#xff08;完整窗口&#xff0…

kafka集群架构与原理

前言 这次我们从消息队列开始讨论。生产者-消费者模型中间需要一个消息队列&#xff0c;以存储生产者的产品。对传统的消息队列来说&#xff0c;它支持点对点&#xff08;P2P&#xff09;和发布/订阅&#xff08;Pub/Sub&#xff09;两种消息模型。在点对点模型中&#xff0c;消…

【楚怡杯】职业院校技能大赛 “云计算应用” 赛项样题九

某企业根据自身业务需求&#xff0c;实施数字化转型&#xff0c;规划和建设数字化平台&#xff0c;平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”&#xff0c;拟采用开源OpenStack搭建企业内部私有云平台&#xff0c;开源Kubernetes搭建云原生服务平台&#xff0c;选…

基于姿态估计算法的健身辅助应用

作为一名健身爱好者&#xff0c;我一直对探索改善锻炼习惯的方法很感兴趣。一个一直让我着迷的领域是使用计算机视觉和机器学习来分析和纠正锻炼过程中的姿势。在本文中&#xff0c;我将分享我使用姿势估计算法构建一个简单的健身房训练辅助应用程序的历程。 NSDT工具推荐&…

Qt实现自定义的文件对话框CustomFileDialog

背景&#xff1a; 最近客户有需求说Qt自带的文件对话框在windows上打开网络共享文件的时候比较卡&#xff0c;需要解决这个问题&#xff0c;于是参考Qt源码&#xff0c;自定义了一个文件对话框。已经实现流畅加载网络共享文件夹了。效果如下&#xff0c;所有的代码都可以直接修…

ComfyUI中缺失节点安装一点小小注意事项

加载工作流&#xff0c;遇到了红当当的缺失节点警告窗口&#xff1a; 在ComfyUI-Manager点击安装缺失节点&#xff0c;发现竟然弹出4个&#xff0c;而上面告警窗口中只是缺失3个&#xff0c;究竟是怎么回事呢&#xff0c;刚开始接触ComfyUI时&#xff0c;我也是不管3721&#x…

echarts 导出pdf空白原因

问题阐述 页面样式&#xff1a; 导出pdf: 导出pdf&#xff0c;统计图部分为空白。 问题原因 由于代码中进行了dom字符串的复制&#xff0c;而echarts用canvas绘制&#xff0c;canvas内部内容不会进行复制&#xff0c;只会复制canvas节点&#xff0c;因此导出pdf空白。 解决…

卷轴模式开发的技术架构分析与源代码展示

在软件开发中&#xff0c;"卷轴模式"&#xff08;虽然不是一个广泛认知的术语&#xff0c;在此我们可以理解为一种类似于游戏或应用中内容逐步加载与展示的模式&#xff0c;类似于古代卷轴展开的方式&#xff09;通常用于处理大量数据或内容&#xff0c;特别是当这些…

人工智能与自然语言处理发展史

前言 在科技的浪潮中&#xff0c;人工智能 (AI) 作为一股不可阻挡的力量&#xff0c;持续推动着社会与科技的进步。本博客旨在深入剖析人工智能及其核心领域——神经网络、自然语言处理、统计语言模型、以及大规模语言模型——的演进历程&#xff0c;以专业的视角展现这一领域…

网站建设中常见的网站后台开发语言有哪几种,各自优缺点都是什么?

市场上常见的网站后台开发语言有PHP、Python、JavaScript、Ruby、Java和.NET等。这些语言各有其独特的优缺点&#xff0c;适用于不同的开发场景和需求。以下是对这些语言的具体介绍&#xff1a; PHP 优点&#xff1a;PHP是一种广泛用于Web开发的动态脚本语言&#xff0c;特别适…

828华为云征文|华为云Flexus云服务器X实例Windows系统部署一键短视频生成AI工具moneyprinter

在追求创新与效率并重的今天&#xff0c;我们公司迎难而上&#xff0c;决定自主搭建一款短视频生成AI工具——MoneyPrinter&#xff0c;旨在为市场带来前所未有的创意风暴。面对服务器选择的难题&#xff0c;我们经过深思熟虑与多方比较&#xff0c;最终将信任票投给了华为云Fl…

使用vite+react+ts+Ant Design开发后台管理项目(四)

前言 本文将引导开发者从零基础开始&#xff0c;运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈&#xff0c;构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导&#xff0c;文章旨在为开发者揭示如何利用这些技术…

将Pytorch环境打包,快速部署到另一台机器上(在没有网络,或者网络环境不好的情况下推荐使用)

打包PyTorch环境 当您需要在不同的机器上快速部署包含PyTorch的Python环境时&#xff0c;使用conda-pack是一个很好的选择。conda-pack可以打包一个完整的Conda环境&#xff0c;包括所有已安装的包和依赖项&#xff0c;使其能够轻松地在其他机器上还原。 步骤一&#xff1a;…

Django 对数据库的增删改查

新增 使用方法&#xff1a;类模型.objects.create 类模型 from django.db import models# Create your models here. class Car(models.Model):user models.CharField(max_length200)plate_number models.CharField(max_length20)def __str__(self):return f{self.user} -…

Linux之我不会

一、常用命令 1.系统管理 1.1 systemctl start | stop | restart | status 服务名 案例实操 1 查看防火墙状态 systemctl status firewalld2 停止防火墙服务 systemctl stop firewalld3 启动防火墙服务 systemctl start firewalld4 重启防火墙服务 systemctl restart f…

构建高可用和高防御力的云服务架构第一部分:深入解析DDoS高防(1/5)

引言 在数字化时代&#xff0c;网络安全已成为全球关注的焦点。随着互联网技术的快速发展和应用的广泛深入&#xff0c;网络安全形势日益严峻。特别是分布式拒绝服务&#xff08;DDoS&#xff09;攻击&#xff0c;以其破坏性强、难以防范的特点&#xff0c;对个人、企业乃至国…

Django操作ES实现搜索功能

Django操作ES实现题目的高亮搜索功能 一、基础配置二、使用ES完成题目的高亮搜索1. ES的初始化接口2. 使用ES实现题目的增删改查1. 题目的高亮搜索2. 题目的高亮搜索优化3. 将数据存储到MYSQL中持久化存储并同步到ES中一、基础配置 下载依赖,与之前配置的ES版本一致。 ES的配置…

Mac安装manim

文章目录 0.关于Manim1.官方安装方法2.使用conda2.1 下载Anaconda2.2 创建环境2.3 Required Dependencies 3.实验 今天发现Mac电脑以前安装的manim不能用了&#xff0c;索性重新装一次&#xff0c;顺便把过程记录下来。 0.关于Manim Manim 主要分为两个主要版本&#xff1a; …

使用VSCode远程调试AutoDL上的程序

在租用的AutoDL服务器上基于终端不便进行代码调试&#xff0c;而使用远程桌面控制部署也相对麻烦。pycharm 则需要专业版才能进行远程开发&#xff0c;如果使用Shell启动的程序也没有办法调试&#xff0c;最终选择利用 VScode 来进行远程代码调试。 一、远程租用并启动服务器 …