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

一、 使用步骤:

第一步、腾讯云开启万象

第二步、安装Tencent.QCloud.Cos.Sdk 包

第三步、修改 腾讯云配置 + 图片存储目录配置

第四步、执行获取图片并保存

二、封装代码

cs 复制代码
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;
        }
        else
            throw 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);
    }


}

三、使用案例

cs 复制代码
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请求带文件

相关推荐
想躺平的咸鱼干1 小时前
远程MCP的调用和阿里云生态的知识库和工作流的使用
阿里云·大模型·云计算·idea·格式化输出·mcp
小小星球之旅4 小时前
SpringBoot后端实现阿里云oss上传文件
阿里云·云计算
吉普赛的歌9 小时前
【阿里云】记一次oss攻击
阿里云·云计算
wanhengidc9 小时前
移动端云手机的优势都有哪些?
运维·服务器·游戏·智能手机·云计算
siliconstorm.ai12 小时前
阿里下场造“机器人”:从通义千问到具身智能,中国AI正走向“实体化”阶段
人工智能·自然语言处理·chatgpt·机器人·云计算
沐欣工作室_lvyiyi15 小时前
基于腾讯云的物联网导盲助手设计与实现(论文+源码)
单片机·物联网·云计算·毕业设计·腾讯云·导盲杖
九河云16 小时前
在云计算环境中实施有效的数据安全策略
大数据·网络·数据库·云计算
openHiTLS密码开源社区16 小时前
ARMv9 CCA机密计算架构演进技术解析:重塑云原生时代的数据安全基石
云计算·arm·trustzone·realm·cca·机密计算·tee/ree
Dev7z1 天前
构建基于PyTorch的社交媒体情感倾向分析系统:从数据处理到模型部署
媒体
缘的猿1 天前
云计算划分标准与Kubernetes NetworkPolicy深度解析
容器·kubernetes·云计算