C#获取视频第一帧_腾讯云媒体处理获取视频第一帧

devtools/2024/11/17 6:35:08/

一、 使用步骤:
第一步、腾讯云开启万象
第二步、安装Tencent.QCloud.Cos.Sdk 包
第三步、修改 腾讯云配置 + 图片存储目录配置
第四步、执行获取图片并保存

二、封装代码

using System.Text;
using System.Threading.Tasks;using COSXML.Model.CI;
using COSXML.Auth;
using System;
using COSXML;using UploadHandle;
using QLCommon;/// <summary>
/// 腾讯云视频获取第一帧
/// 使用步骤:
/// 第一步、腾讯云开启万象
/// 第二步、安装Tencent.QCloud.Cos.Sdk 包
/// 第三步、修改 腾讯云配置 + 图片存储目录配置
/// 第四步、执行获取图片并保存
/// </summary>
public class SnapshotHelper
{public string Region { get; set; } = "ap-beijing";public string SecretID { get; set; } = "自己的";public string SecretKey { get; set; } = "自己的";public string Bucket { get; set; } = "beijing-1330411582";public string BasePath { get; set; } = "";//网站根目录wwww+/file/video/private CosXml cosXml;/// <summary>/// 初始化/// </summary>public SnapshotHelper(){CosXmlConfig config = new CosXmlConfig.Builder().SetRegion(this.Region).Build();long durationSecond = 60;          //每次请求签名有效时长,单位为秒QCloudCredentialProvider qCloudCredentialProvider =new DefaultQCloudCredentialProvider(this.SecretID,this.SecretKey, durationSecond);this.cosXml = new CosXmlServer(config, qCloudCredentialProvider);}/// 视频截帧public string GetSnapshot(string fileKey){string bucket = this.Bucket;string key = fileKey; // 媒体文件的对象键,需要替换成桶内存在的媒体文件的对象键float time = 0.01F; // 截取的具体时间,用浮点数表示string destPath = BasePath + fileKey.ToLower().Replace(".mp4", ".jpg"); // 截图文件保存路径, 需要替换成本地具体路径, 例如"/usr/local/"GetSnapshotRequest request = new GetSnapshotRequest(bucket, key, time, destPath);// 执行请求GetSnapshotResult result = cosXml.GetSnapshot(request);//获取图片信息Console.WriteLine(result.GetResultInfo());if (result.IsSuccessful()){return destPath;}elsethrow new Exception(result.httpMessage);}/// <summary>/// 获取视频帧,并剪切固定大小/// </summary>public void GetCut(string fileKey, int width, int height){string fileName = this.GetSnapshot(fileKey);//图片剪切处理ImageOperate.Cut(fileName, width, height);}}

三、使用案例

SnapshotHelper _snap = new SnapshotHelper();//_snap.GetSnapshot("1684292777834-3.mp4");_snap.GetSnapshot("1731393344259-45.mp4");

更多:

.Net Core上传组件_.Net Core图片上传组件_Uploader7.0

C# 获取Http请求服务器响应的cookie

C# Post请求上传文件_C#Post请求带文件


http://www.ppmy.cn/devtools/134634.html

相关文章

lua实现雪花算法

lua实现雪花算法 雪花算法介绍组成部分优点缺点 代码示例 雪花算法介绍 雪花算法&#xff08;Snowflake Algorithm&#xff09;是一种用于生成唯一ID的分布式生成算法&#xff0c;最初由Twitter开发。它的主要目的是在分布式系统中生成唯一的、时间有序的ID&#xff0c;这些ID通…

esp8266的使能多链接,使能单链接是社么意思 AT+CIPMUX

在ESP8266的AT指令集中&#xff0c;ATCIPMUX指令用于设置模块的连接模式&#xff0c;即是否支持多个TCP/UDP连接。具体来说&#xff1a; 使能多链接&#xff08;Multiplexed Connection&#xff09;&#xff1a;当通过ATCIPMUX1设置时&#xff0c;ESP8266模块进入多连接模式。…

leetcode hot100【LeetCode 5.最长回文子串】java实现

LeetCode 5.最长回文子串 题目描述 给定一个字符串 s&#xff0c;找到 s 中最长的回文子串。 示例 1: 输入: s "babad" 输出: "bab" 解释: "aba" 也是一个有效答案。示例 2: 输入: s "cbbd" 输出: "bb"说明: 1 <…

flink实战 -- flink SQL 实现列转行

在 SQL 任务里面经常会遇到一列转多行的需求,下面就来总结一下在 Flink SQL 里面如何实现列转行的,先来看下面的一个具体案例. 需求 原始数据格式如下: namedatatest[{"content_type":"flink","url":"111"},{"content_type&quo…

vcenter service基本异常处理

服务&#xff1a;vcenter service 版本&#xff1a; 7.0.3 问题描述&#xff1a;无法访问vcenter ui 排障思路&#xff1a; 1. 登入vcenter所在服务器执行基础排查&#xff1a;内存、cpu、磁盘、网络等&#xff0c;发现磁盘日志目录已经爆满&#xff0c;删除180天前的日志恢…

智能算法引领金融创新:正大科技的智能分析框架

金融行业的智能化浪潮&#xff0c;推动了算法在投资分析中的深度应用。正大科技依托智能算法&#xff0c;构建了一套涵盖数据采集、分析和优化的智能分析框架&#xff0c;帮助投资者在瞬息万变的市场中作出更明智的决策。本文将解析正大科技如何利用智能算法实现市场洞察&#…

为什么hbase在大数据领域渐渐消失

HBase 曾是大数据存储领域的标杆之一,凭借其强大的分布式、列式存储和高扩展性,广泛应用于电商、社交网络、金融等需要海量数据管理的场景。然而,近年来 HBase 的使用确实在减少,这主要是因为数据技术栈的演变和用户需求的变化。以下是一些主要原因: 1. 复杂的运维和管理…

from sklearn.feature_selection import VarianceThreshold.移除低方差的特征来减少数据集中的特征数量

VarianceThreshold 是 scikit-learn 库中的一个特征选择类&#xff0c;它通过移除低方差的特征来减少数据集中的特征数量。这种方法特别适用于删除那些在整个数据集中几乎不变的特征&#xff0c;因为这些特征对于模型的预测能力贡献不大。 参数&#xff1a; threshold&#x…