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

相关推荐
dayuOK630715 分钟前
AI内容创作工具的下一个战场:从“生成”到“全流程自动化”
运维·人工智能·chatgpt·职场和发展·自动化·新媒体运营·媒体
测试狗科研平台4 小时前
VASP软件如何计算电子局域化函数?
科技·云计算·材料工程
神秘的摄影师6 小时前
2026年AE音乐素材下载网站TOP5评测——短视频与自媒体创作者专属指南
音视频·媒体
2601_957879337 小时前
自媒体账号矩阵的冷启动与增长飞轮:从零线索到百条转化的技术路径拆解
人工智能·矩阵·媒体
翼龙云_cloud9 小时前
腾讯云代理商:腾讯云 AI 算力成本全解析 从技术原理到价格优化策略
人工智能·云计算·腾讯云
测试狗科研平台9 小时前
洞悉微观电荷流动,VASP计算电荷密度分布
算法·云计算·开源软件
Harm灬小海10 小时前
【云计算学习之路】学习Centos7系统:服务搭建(VSFTP)
linux·运维·服务器·学习·云计算
oy_mail12 小时前
当前主流大语言模型核心优势解析:Gemini、GPT与Claude的能力图谱
人工智能·媒体
一线数智12 小时前
2026腾讯云城市峰会·长沙峰会将于6月12日开启
云计算·腾讯云
凌冰_12 小时前
Claude Code + 阿里云百炼 实战
阿里云·云计算