diff --git a/src/common/utils/file.ts b/src/common/utils/file.ts
index c50b68d..edf579c 100644
--- a/src/common/utils/file.ts
+++ b/src/common/utils/file.ts
@@ -203,7 +203,14 @@ export async function getVideoInfo(filePath: string) {
     }>((resolve, reject) => {
         ffmpeg(filePath).ffprobe((err, metadata) => {
             if (err) {
-                reject(err);
+                resolve({
+                    width: 720, height: 1080,
+                    time: 15,
+                    format: "mp4",
+                    size: fs.statSync(filePath).size,
+                    filePath
+                })
+                // reject(err);
             } else {
                 const videoStream = metadata.streams.find(s => s.codec_type === 'video');
                 if (videoStream) {
diff --git a/src/ntqqapi/constructor.ts b/src/ntqqapi/constructor.ts
index 0640dfd..3674d73 100644
--- a/src/ntqqapi/constructor.ts
+++ b/src/ntqqapi/constructor.ts
@@ -17,6 +17,7 @@ import {NTQQFileApi} from "./api/file";
 import {calculateFileMD5, encodeSilk, getVideoInfo, isGIF} from "../common/utils/file";
 import {log} from "../common/utils/log";
 import {sleep} from "../common/utils/helper";
+import pathLib from "path";
 
 
 export class SendMsgElementConstructor {
@@ -108,7 +109,7 @@ export class SendMsgElementConstructor {
         return element;
     }
 
-    static async video(filePath: string, fileName: string = ""): Promise<SendVideoElement> {
+    static async video(filePath: string, fileName: string = "", diyThumbPath: string=""): Promise<SendVideoElement> {
         let {fileName: _fileName, path, fileSize, md5} = await NTQQFileApi.uploadFile(filePath, ElementType.VIDEO);
         if (fileSize === 0) {
             throw "文件异常,大小为0";
@@ -126,6 +127,13 @@ export class SendMsgElementConstructor {
         log("视频信息", videoInfo)
         const createThumb = new Promise<string>((resolve, reject) => {
             const thumbFileName = `${md5}_0.png`
+            const thumbPath = pathLib.join(thumb, thumbFileName)
+            if (diyThumbPath) {
+                fs.copyFile(diyThumbPath, pathLib.join(thumb, thumbFileName)).then(() => {
+                    resolve(thumbPath);
+                })
+                return;
+            }
             ffmpeg(filePath)
                 .on("end", () => {
                 })
@@ -138,7 +146,7 @@ export class SendMsgElementConstructor {
                     folder: thumb,
                     size: videoInfo.width + "x" + videoInfo.height
                 }).on("end", () => {
-                resolve(pathLib.join(thumb, thumbFileName));
+                resolve(thumbPath);
             });
         })
         let thumbPath = new Map()
diff --git a/src/onebot11/action/SendMsg.ts b/src/onebot11/action/SendMsg.ts
index babe312..b941ce1 100644
--- a/src/onebot11/action/SendMsg.ts
+++ b/src/onebot11/action/SendMsg.ts
@@ -430,7 +430,14 @@ export class SendMsg extends BaseAction<OB11PostSendMsg, ReturnDataType> {
                                 sendElements.push(await SendMsgElementConstructor.file(path, payloadFileName || fileName));
                             } else if (sendMsg.type === OB11MessageDataType.video) {
                                 log("发送视频", path, payloadFileName || fileName)
-                                sendElements.push(await SendMsgElementConstructor.video(path, payloadFileName || fileName));
+                                let thumb = sendMsg.data?.thumb;
+                                if (thumb){
+                                    let uri2LocalRes = await uri2local(thumb)
+                                    if (uri2LocalRes.success){
+                                        thumb = uri2LocalRes.path;
+                                    }
+                                }
+                                sendElements.push(await SendMsgElementConstructor.video(path, payloadFileName || fileName, thumb));
                             } else if (sendMsg.type === OB11MessageDataType.voice) {
                                 sendElements.push(await SendMsgElementConstructor.ptt(path));
                             }else if (sendMsg.type === OB11MessageDataType.image) {
diff --git a/src/onebot11/types.ts b/src/onebot11/types.ts
index ca7c09c..db7bdf5 100644
--- a/src/onebot11/types.ts
+++ b/src/onebot11/types.ts
@@ -117,6 +117,7 @@ export interface OB11MessageText {
 
 interface OB11MessageFileBase {
     data: {
+        thumb?: string;
         name?: string;
         file: string,
         url?: string;