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请求带文件

相关推荐
荣光波比5 小时前
Linux(十一)——LVM磁盘配额整理
linux·运维·云计算
牛奶咖啡136 小时前
云计算核心技术之容器技术
云计算·容器技术·容器引擎·容器的主要应用场景·docker核心技术·容器编排工具·k8s的运行架构和重要概念
XINVRY-FPGA11 小时前
10CL016YF484C8G Altera FPGA Cyclone
嵌入式硬件·网络协议·fpga开发·云计算·硬件工程·信息与通信·fpga
眠りたいです11 小时前
Qt音频播放器项目实践:文件过滤、元数据提取与动态歌词显示实现
c++·qt·ui·音视频·媒体·qt5·mime
AKAMAI1 天前
AI需要防火墙,云计算需要重新构想
人工智能·云原生·云计算
Byte_Me2 天前
突发新闻 1 小时过时?热更新技术如何让融媒体 App “边播边更”?
媒体
是乐谷2 天前
阿里云杭州 AI 产品法务岗位信息分享(2025 年 8 月)
java·人工智能·阿里云·面试·职场和发展·机器人·云计算
青岛佰优联创新科技有限公司2 天前
移动板房的网络化建设
服务器·人工智能·云计算·智慧城市
夕阳与风馨2 天前
三分钟搞懂云计算三大模型:SaaS、PaaS、IaaS 是怎么在业务中“各司其职”的?
后端·云计算
weixin_307779133 天前
AWS Lambda解压缩S3 ZIP文件流程
python·算法·云计算·aws