package core import ( "fmt" "kenaito-media-picker/util" "kenaito-media-picker/vars" "os" "strings" ) // DoHandleMedia 处理所有媒体候选文件:ffprobe判定视频/音频/不支持 func DoHandleMedia(pickerDir string) { total := len(vars.GlobalMediaPathList) videoCount := 0 // 视频数 audioCount := 0 // 音频数 errorCount := 0 // 异常数 ignoreCount := 0 for _, mediaFilePath := range vars.GlobalMediaPathList { fileMime := vars.GlobalFilePath2MimeInfoMap[mediaFilePath] probe, err := util.ProbeMediaFile(util.FFprobeExePath(), mediaFilePath) if err != nil { if strings.Contains(fileMime, "video/") { // mime是视频但ffprobe读不出来,视为损坏/异常视频 errorCount = errorCount + 1 vars.VideoReadErrorPathList = append(vars.VideoReadErrorPathList, mediaFilePath) fmt.Printf("=== 异常视频: %s \n", mediaFilePath) } else { ignoreCount = ignoreCount + 1 vars.VideoIgnorePathList = append(vars.VideoIgnorePathList, mediaFilePath) } continue } width, height := probe.VideoResolution() if width > 0 && height > 0 { // 有视频流 videoCount = videoCount + 1 vars.VideoPath2WidthHeightMap[mediaFilePath] = fmt.Sprintf("%d-%d", width, height) saveMediaRecord(mediaFilePath, "video", width, height, probe.DurationSeconds(), probe.VideoCodec(), probe.FormatName(), probe.RawJSON()) fmt.Printf("=== 媒体总数: %d, 已处理: %d, 视频: %d, 音频: %d, 异常: %d, 忽略: %d \n", total, videoCount+audioCount+errorCount+ignoreCount, videoCount, audioCount, errorCount, ignoreCount) continue } if probe.HasAudio() { // 仅有音频流 audioCount = audioCount + 1 vars.GlobalAudioPathList = append(vars.GlobalAudioPathList, mediaFilePath) saveMediaRecord(mediaFilePath, "audio", 0, 0, probe.DurationSeconds(), probe.AudioCodec(), probe.FormatName(), probe.RawJSON()) continue } // 既无视频也无音频(字幕流等) ignoreCount = ignoreCount + 1 vars.VideoIgnorePathList = append(vars.VideoIgnorePathList, mediaFilePath) } if len(vars.VideoReadErrorPathList) > 0 { readInfoErrorPath := pickerDir + string(os.PathSeparator) + "视频_读取异常" if util.CreateDir(readInfoErrorPath) { util.DoMoveFileToDir(vars.VideoReadErrorPathList, readInfoErrorPath) } } if len(vars.GlobalAudioPathList) > 0 { audioPath := pickerDir + string(os.PathSeparator) + "音频" if util.CreateDir(audioPath) { util.DoMoveFileToDir(vars.GlobalAudioPathList, audioPath) } } if len(vars.VideoIgnorePathList) > 0 { ignorePath := pickerDir + string(os.PathSeparator) + "已忽略" if util.CreateDir(ignorePath) { util.DoMoveFileToDir(vars.VideoIgnorePathList, ignorePath) } } doPickVideoFile(pickerDir, vars.VideoPath2WidthHeightMap) fmt.Printf("=== 视频/音频处理完毕 \n\n") } // 条件视频并分组存放 func doPickVideoFile(pickerDir string, videoPath2WidthHeightMap map[string]string) { if len(videoPath2WidthHeightMap) == 0 { fmt.Printf("=== 当前目录下没有扫描到视频文件, %s \n", pickerDir) return } for currentVideoPath, infoStr := range videoPath2WidthHeightMap { width2Height := strings.Split(infoStr, "-") width := util.String2int(width2Height[0]) height := util.String2int(width2Height[1]) suffix := vars.GlobalFilePath2FileExtMap[currentVideoPath] if width > height { handleHorizontalVideo(currentVideoPath, width, height, suffix) continue } if width < height { handleVerticalVideo(currentVideoPath, height, suffix) continue } handleSquareVideo(currentVideoPath, width, height, suffix) } moveNormalVideo(pickerDir) moveHorizontalVideo(pickerDir) moveVerticalVideo(pickerDir) moveSquareVideo(pickerDir) moveGifVideo(pickerDir) } // 移动垂直视频 func moveVerticalVideo(pickerDir string) { pathSeparator := string(os.PathSeparator) if len(vars.VideoVertical1KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_1k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical1KList, videoDirPath) } if len(vars.VideoVertical2KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_2k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical2KList, videoDirPath) } if len(vars.VideoVertical3KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_3k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical3KList, videoDirPath) } if len(vars.VideoVertical4KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_4k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical4KList, videoDirPath) } if len(vars.VideoVertical5KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_5k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical5KList, videoDirPath) } if len(vars.VideoVertical6KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_6k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical6KList, videoDirPath) } if len(vars.VideoVertical7KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_7k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical7KList, videoDirPath) } if len(vars.VideoVertical8KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_8k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical8KList, videoDirPath) } if len(vars.VideoVertical9KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_9k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical9KList, videoDirPath) } if len(vars.VideoVertical10KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_10k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical10KList, videoDirPath) } if len(vars.VideoVertical11KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_11k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical11KList, videoDirPath) } if len(vars.VideoVertical12KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_12k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical12KList, videoDirPath) } if len(vars.VideoVertical13KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_13k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical13KList, videoDirPath) } if len(vars.VideoVertical14KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_14k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical14KList, videoDirPath) } if len(vars.VideoVertical15KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_15k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical15KList, videoDirPath) } if len(vars.VideoVertical16KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_16k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical16KList, videoDirPath) } if len(vars.VideoVertical17KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_17k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical17KList, videoDirPath) } if len(vars.VideoVertical18KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_18k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical18KList, videoDirPath) } if len(vars.VideoVertical19KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_19k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVertical19KList, videoDirPath) } if len(vars.VideoVerticalHKList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_原画质" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVerticalHKList, videoDirPath) } } // 移动水平视频 func moveHorizontalVideo(pickerDir string) { pathSeparator := string(os.PathSeparator) if len(vars.VideoHorizontal1KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_1k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal1KList, videoDirPath) } if len(vars.VideoHorizontal2KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_2k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal2KList, videoDirPath) } if len(vars.VideoHorizontal3KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_3k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal3KList, videoDirPath) } if len(vars.VideoHorizontal4KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_4k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal4KList, videoDirPath) } if len(vars.VideoHorizontal5KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_5k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal5KList, videoDirPath) } if len(vars.VideoHorizontal6KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_6k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal6KList, videoDirPath) } if len(vars.VideoHorizontal7KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_7k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal7KList, videoDirPath) } if len(vars.VideoHorizontal8KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_8k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal8KList, videoDirPath) } if len(vars.VideoHorizontal9KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_9k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal9KList, videoDirPath) } if len(vars.VideoHorizontal10KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_10k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal10KList, videoDirPath) } if len(vars.VideoHorizontal11KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_11k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal11KList, videoDirPath) } if len(vars.VideoHorizontal12KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_12k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal12KList, videoDirPath) } if len(vars.VideoHorizontal13KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_13k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal13KList, videoDirPath) } if len(vars.VideoHorizontal14KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_14k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal14KList, videoDirPath) } if len(vars.VideoHorizontal15KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_15k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal15KList, videoDirPath) } if len(vars.VideoHorizontal16KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_16k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal16KList, videoDirPath) } if len(vars.VideoHorizontal17KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_17k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal17KList, videoDirPath) } if len(vars.VideoHorizontal18KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_18k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal18KList, videoDirPath) } if len(vars.VideoHorizontal19KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_19k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontal19KList, videoDirPath) } if len(vars.VideoHorizontalHKList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_原画质" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalHKList, videoDirPath) } if len(vars.VideoHorizontalStandard720PList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_720P" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandard720PList, videoDirPath) } if len(vars.VideoHorizontalStandard1D5PList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_1D5KP" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandard1D5PList, videoDirPath) } if len(vars.VideoHorizontalStandard1080PList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_1080P" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandard1080PList, videoDirPath) } if len(vars.VideoHorizontalStandard2DKList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_2DKP" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandard2DKList, videoDirPath) } if len(vars.VideoHorizontalStandard2D5KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_2D5KP" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandard2D5KList, videoDirPath) } if len(vars.VideoHorizontalStandardUltraWide2List) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_UltraWide2KP" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandardUltraWide2List, videoDirPath) } if len(vars.VideoHorizontalStandardUltraWide3List) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_UltraWide3KP" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandardUltraWide3List, videoDirPath) } if len(vars.VideoHorizontalStandardUltraWide4List) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_UltraWide4KP" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandardUltraWide4List, videoDirPath) } if len(vars.VideoHorizontalStandard4KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_4KP" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandard4KList, videoDirPath) } if len(vars.VideoHorizontalStandard4KHList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_4KHP" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandard4KHList, videoDirPath) } if len(vars.VideoHorizontalStandard8KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_8KP" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalStandard8KList, videoDirPath) } } // 移动等比视频 func moveSquareVideo(pickerDir string) { pathSeparator := string(os.PathSeparator) if len(vars.VideoSquare1KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_1k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare1KList, videoDirPath) } if len(vars.VideoSquare2KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_2k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare2KList, videoDirPath) } if len(vars.VideoSquare3KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_3k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare3KList, videoDirPath) } if len(vars.VideoSquare4KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_4k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare4KList, videoDirPath) } if len(vars.VideoSquare5KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_5k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare5KList, videoDirPath) } if len(vars.VideoSquare6KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_6k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare6KList, videoDirPath) } if len(vars.VideoSquare7KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_7k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare7KList, videoDirPath) } if len(vars.VideoSquare8KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_8k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare8KList, videoDirPath) } if len(vars.VideoSquare9KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_9k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare9KList, videoDirPath) } if len(vars.VideoSquare10KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_10k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare10KList, videoDirPath) } if len(vars.VideoSquare11KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_11k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare11KList, videoDirPath) } if len(vars.VideoSquare12KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_12k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare12KList, videoDirPath) } if len(vars.VideoSquare13KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_13k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare13KList, videoDirPath) } if len(vars.VideoSquare14KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_14k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare14KList, videoDirPath) } if len(vars.VideoSquare15KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_15k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare15KList, videoDirPath) } if len(vars.VideoSquare16KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_16k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare16KList, videoDirPath) } if len(vars.VideoSquare17KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_17k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare17KList, videoDirPath) } if len(vars.VideoSquare18KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_18k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare18KList, videoDirPath) } if len(vars.VideoSquare19KList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_19k" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquare19KList, videoDirPath) } if len(vars.VideoSquareHKList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_原画质" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquareHKList, videoDirPath) } } // 移动gif视频 func moveGifVideo(pickerDir string) { pathSeparator := string(os.PathSeparator) if len(vars.VideoHorizontalGifList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_GIF" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalGifList, videoDirPath) } if len(vars.VideoVerticalGifList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_GIF" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVerticalGifList, videoDirPath) } if len(vars.VideoSquareGifList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_GIF" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquareGifList, videoDirPath) } } // 移动普通视频 func moveNormalVideo(pickerDir string) { pathSeparator := string(os.PathSeparator) if len(vars.VideoHorizontalNormalList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_横屏_普通" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoHorizontalNormalList, videoDirPath) } if len(vars.VideoVerticalNormalList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_竖屏_普通" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoVerticalNormalList, videoDirPath) } if len(vars.VideoSquareNormalList) > 0 { videoDirPath := pickerDir + pathSeparator + "视频_等比_普通" util.CreateDir(videoDirPath) util.DoMoveFileToDir(vars.VideoSquareNormalList, videoDirPath) } } // 处理垂直视频 func handleVerticalVideo(currentVideoPath string, height int, suffix string) { if strings.EqualFold(suffix, ".gif") { vars.VideoVerticalGifList = append(vars.VideoVerticalGifList, currentVideoPath) return } if height < 1024 { vars.VideoVerticalNormalList = append(vars.VideoVerticalNormalList, currentVideoPath) } else if height < 2048 { vars.VideoVertical1KList = append(vars.VideoVertical1KList, currentVideoPath) } else if height < 3072 { vars.VideoVertical2KList = append(vars.VideoVertical2KList, currentVideoPath) } else if height < 4096 { vars.VideoVertical3KList = append(vars.VideoVertical3KList, currentVideoPath) } else if height < 5120 { vars.VideoVertical4KList = append(vars.VideoVertical4KList, currentVideoPath) } else if height < 6144 { vars.VideoVertical5KList = append(vars.VideoVertical5KList, currentVideoPath) } else if height < 7168 { vars.VideoVertical6KList = append(vars.VideoVertical6KList, currentVideoPath) } else if height < 8192 { vars.VideoVertical7KList = append(vars.VideoVertical7KList, currentVideoPath) } else if height < 9216 { vars.VideoVertical8KList = append(vars.VideoVertical8KList, currentVideoPath) } else if height < 10240 { vars.VideoVertical9KList = append(vars.VideoVertical9KList, currentVideoPath) } else if height < 11264 { vars.VideoVertical10KList = append(vars.VideoVertical10KList, currentVideoPath) } else if height < 12288 { vars.VideoVertical11KList = append(vars.VideoVertical11KList, currentVideoPath) } else if height < 13312 { vars.VideoVertical12KList = append(vars.VideoVertical12KList, currentVideoPath) } else if height < 14336 { vars.VideoVertical13KList = append(vars.VideoVertical13KList, currentVideoPath) } else if height < 15360 { vars.VideoVertical14KList = append(vars.VideoVertical14KList, currentVideoPath) } else if height < 16384 { vars.VideoVertical15KList = append(vars.VideoVertical15KList, currentVideoPath) } else if height < 17408 { vars.VideoVertical16KList = append(vars.VideoVertical16KList, currentVideoPath) } else if height < 18432 { vars.VideoVertical17KList = append(vars.VideoVertical17KList, currentVideoPath) } else if height < 19456 { vars.VideoVertical18KList = append(vars.VideoVertical18KList, currentVideoPath) } else if height < 20480 { vars.VideoVertical19KList = append(vars.VideoVertical19KList, currentVideoPath) } else if height >= 20480 { vars.VideoVerticalHKList = append(vars.VideoVerticalHKList, currentVideoPath) } } // 处理横向视频 func handleHorizontalVideo(currentVideoPath string, width int, height int, suffix string) { if strings.EqualFold(suffix, ".gif") { vars.VideoHorizontalGifList = append(vars.VideoHorizontalGifList, currentVideoPath) return } // 1280×720(720p)—— 标准高清(HD),常用于早期高清视频或小型屏幕 if width == 1280 && height == 720 { vars.VideoHorizontalStandard720PList = append(vars.VideoHorizontalStandard720PList, currentVideoPath) return } // 1600×900—— 介于HD和FHD之间 if width == 1600 && height == 900 { vars.VideoHorizontalStandard1D5PList = append(vars.VideoHorizontalStandard1D5PList, currentVideoPath) return } // 1920×1080(1080p)—— 全高清,主流显示器、电视和视频的分辨率 if width == 1920 && height == 1080 { vars.VideoHorizontalStandard1080PList = append(vars.VideoHorizontalStandard1080PList, currentVideoPath) return } // 2048×1080(2dk)—— 影院2k if width == 2048 && height == 1080 { vars.VideoHorizontalStandard2DKList = append(vars.VideoHorizontalStandard2DKList, currentVideoPath) return } // 2560×1440(1440p)—— 俗称“2.5K”,电竞显示器或高端手机屏幕 if width == 2560 && height == 1440 { vars.VideoHorizontalStandard2D5KList = append(vars.VideoHorizontalStandard2D5KList, currentVideoPath) return } // 2560×1080—— 带鱼屏显示器(超宽屏) if width == 2560 && height == 1080 { vars.VideoHorizontalStandardUltraWide2List = append(vars.VideoHorizontalStandardUltraWide2List, currentVideoPath) return } // 3440×1440—— 带鱼屏显示器(超宽屏) if width == 3440 && height == 1440 { vars.VideoHorizontalStandardUltraWide3List = append(vars.VideoHorizontalStandardUltraWide3List, currentVideoPath) return } // 5120×2160—— 带鱼屏显示器(超宽屏) if width == 5120 && height == 2160 { vars.VideoHorizontalStandardUltraWide4List = append(vars.VideoHorizontalStandardUltraWide4List, currentVideoPath) return } // 3840×2160(主流4K)—— 超高清,现代高端显示器、电视和影视制作 if width == 3840 && height == 2160 { vars.VideoHorizontalStandard4KList = append(vars.VideoHorizontalStandard4KList, currentVideoPath) return } // 4096×2160(DCI 4K)—— 电影行业标准 if width == 4096 && height == 2160 { vars.VideoHorizontalStandard4KHList = append(vars.VideoHorizontalStandard4KHList, currentVideoPath) return } // 7680×4320—— 超高清,用于专业影视或高端设备 if width == 7680 && height == 4320 { vars.VideoHorizontalStandard8KList = append(vars.VideoHorizontalStandard8KList, currentVideoPath) return } // 非标规格 if width < 1024 { vars.VideoHorizontalNormalList = append(vars.VideoHorizontalNormalList, currentVideoPath) } else if width < 2048 { vars.VideoHorizontal1KList = append(vars.VideoHorizontal1KList, currentVideoPath) } else if width < 3072 { vars.VideoHorizontal2KList = append(vars.VideoHorizontal2KList, currentVideoPath) } else if width < 4096 { vars.VideoHorizontal3KList = append(vars.VideoHorizontal3KList, currentVideoPath) } else if width < 5120 { vars.VideoHorizontal4KList = append(vars.VideoHorizontal4KList, currentVideoPath) } else if width < 6144 { vars.VideoHorizontal5KList = append(vars.VideoHorizontal5KList, currentVideoPath) } else if width < 7168 { vars.VideoHorizontal6KList = append(vars.VideoHorizontal6KList, currentVideoPath) } else if width < 8192 { vars.VideoHorizontal7KList = append(vars.VideoHorizontal7KList, currentVideoPath) } else if width < 9216 { vars.VideoHorizontal8KList = append(vars.VideoHorizontal8KList, currentVideoPath) } else if width < 10240 { vars.VideoHorizontal9KList = append(vars.VideoHorizontal9KList, currentVideoPath) } else if width < 11264 { vars.VideoHorizontal10KList = append(vars.VideoHorizontal10KList, currentVideoPath) } else if width < 12288 { vars.VideoHorizontal11KList = append(vars.VideoHorizontal11KList, currentVideoPath) } else if width < 13312 { vars.VideoHorizontal12KList = append(vars.VideoHorizontal12KList, currentVideoPath) } else if width < 14336 { vars.VideoHorizontal13KList = append(vars.VideoHorizontal13KList, currentVideoPath) } else if width < 15360 { vars.VideoHorizontal14KList = append(vars.VideoHorizontal14KList, currentVideoPath) } else if width < 16384 { vars.VideoHorizontal15KList = append(vars.VideoHorizontal15KList, currentVideoPath) } else if width < 17408 { vars.VideoHorizontal16KList = append(vars.VideoHorizontal16KList, currentVideoPath) } else if width < 18432 { vars.VideoHorizontal17KList = append(vars.VideoHorizontal17KList, currentVideoPath) } else if width < 19456 { vars.VideoHorizontal18KList = append(vars.VideoHorizontal18KList, currentVideoPath) } else if width < 20480 { vars.VideoHorizontal19KList = append(vars.VideoHorizontal19KList, currentVideoPath) } else if width >= 20480 { // 提示请忽略 vars.VideoHorizontalHKList = append(vars.VideoHorizontalHKList, currentVideoPath) } } // 处理等比视频 func handleSquareVideo(currentVideoPath string, width int, height int, suffix string) { if strings.EqualFold(suffix, ".gif") { vars.VideoSquareGifList = append(vars.VideoSquareGifList, currentVideoPath) return } if width < 1024 { vars.VideoSquareNormalList = append(vars.VideoSquareNormalList, currentVideoPath) } else if width < 2048 { vars.VideoSquare1KList = append(vars.VideoSquare1KList, currentVideoPath) } else if width < 3072 { vars.VideoSquare2KList = append(vars.VideoSquare2KList, currentVideoPath) } else if width < 4096 { vars.VideoSquare3KList = append(vars.VideoSquare3KList, currentVideoPath) } else if width < 5120 { vars.VideoSquare4KList = append(vars.VideoSquare4KList, currentVideoPath) } else if width < 6144 { vars.VideoSquare5KList = append(vars.VideoSquare5KList, currentVideoPath) } else if width < 7168 { vars.VideoSquare6KList = append(vars.VideoSquare6KList, currentVideoPath) } else if width < 8192 { vars.VideoSquare7KList = append(vars.VideoSquare7KList, currentVideoPath) } else if width < 9216 { vars.VideoSquare8KList = append(vars.VideoSquare8KList, currentVideoPath) } else if width < 10240 { vars.VideoSquare9KList = append(vars.VideoSquare9KList, currentVideoPath) } else if width < 11264 { vars.VideoSquare10KList = append(vars.VideoSquare10KList, currentVideoPath) } else if width < 12288 { vars.VideoSquare11KList = append(vars.VideoSquare11KList, currentVideoPath) } else if width < 13312 { vars.VideoSquare12KList = append(vars.VideoSquare12KList, currentVideoPath) } else if width < 14336 { vars.VideoSquare13KList = append(vars.VideoSquare13KList, currentVideoPath) } else if width < 15360 { vars.VideoSquare14KList = append(vars.VideoSquare14KList, currentVideoPath) } else if width < 16384 { vars.VideoSquare15KList = append(vars.VideoSquare15KList, currentVideoPath) } else if width < 17408 { vars.VideoSquare16KList = append(vars.VideoSquare16KList, currentVideoPath) } else if width < 18432 { vars.VideoSquare17KList = append(vars.VideoSquare17KList, currentVideoPath) } else if width < 19456 { vars.VideoSquare18KList = append(vars.VideoSquare18KList, currentVideoPath) } else if width < 20480 { vars.VideoSquare19KList = append(vars.VideoSquare19KList, currentVideoPath) } else if width >= 20480 { vars.VideoSquareHKList = append(vars.VideoSquareHKList, currentVideoPath) } }