Files
kenaito-media-picker/core/handle_video.go
T

719 lines
30 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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)
}
}