vid-com 1.0.9 → 1.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scripts/arw_to_jpg.sh +56 -18
- package/video_bitrate_tool.js +1 -1
package/package.json
CHANGED
package/scripts/arw_to_jpg.sh
CHANGED
|
@@ -1,13 +1,23 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
|
|
3
3
|
# 1. 处理输入参数
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
DELETE_ORIG=0
|
|
5
|
+
POSITIONALS=()
|
|
6
|
+
for arg in "$@"; do
|
|
7
|
+
case "$arg" in
|
|
8
|
+
-d) DELETE_ORIG=1 ;;
|
|
9
|
+
*) POSITIONALS+=("$arg") ;;
|
|
10
|
+
esac
|
|
11
|
+
done
|
|
12
|
+
|
|
13
|
+
if [ ${#POSITIONALS[@]} -eq 0 ]; then
|
|
14
|
+
echo "用法: $0 [-d] <源目录> [输出目录]"
|
|
15
|
+
echo " -d 转换完成后删除原始 ARW/DNG 文件"
|
|
6
16
|
exit 1
|
|
7
17
|
fi
|
|
8
18
|
|
|
9
|
-
SOURCE_DIR="$
|
|
10
|
-
OUTPUT_DIR="${
|
|
19
|
+
SOURCE_DIR="${POSITIONALS[0]}"
|
|
20
|
+
OUTPUT_DIR="${POSITIONALS[1]:-}"
|
|
11
21
|
|
|
12
22
|
# 2. 检查源目录是否存在
|
|
13
23
|
if [ ! -d "$SOURCE_DIR" ]; then
|
|
@@ -15,7 +25,9 @@ if [ ! -d "$SOURCE_DIR" ]; then
|
|
|
15
25
|
exit 1
|
|
16
26
|
fi
|
|
17
27
|
|
|
18
|
-
|
|
28
|
+
if [ -n "$OUTPUT_DIR" ]; then
|
|
29
|
+
mkdir -p "$OUTPUT_DIR"
|
|
30
|
+
fi
|
|
19
31
|
|
|
20
32
|
# 3. 计算并发数:当前 CPU 数量 - 1 (最少为 1)
|
|
21
33
|
CPU_CORES=$(sysctl -n hw.ncpu)
|
|
@@ -24,24 +36,46 @@ THREADS=$((CPU_CORES > 1 ? CPU_CORES - 1 : 1))
|
|
|
24
36
|
echo "------------------------------------------"
|
|
25
37
|
echo "系统 CPU 核心数: $CPU_CORES"
|
|
26
38
|
echo "并发线程数: $THREADS"
|
|
27
|
-
|
|
39
|
+
if [ -n "$OUTPUT_DIR" ]; then
|
|
40
|
+
echo "输出目录: $OUTPUT_DIR(保留子目录结构)"
|
|
41
|
+
else
|
|
42
|
+
echo "输出模式: 与源文件同级"
|
|
43
|
+
fi
|
|
44
|
+
[ "$DELETE_ORIG" -eq 1 ] && echo "转换后删除原始文件: 是"
|
|
45
|
+
echo "正在开始转换..."
|
|
28
46
|
echo "------------------------------------------"
|
|
29
47
|
|
|
30
48
|
# 4. 定义转换函数并导出,以便 xargs 调用
|
|
31
|
-
# 使用 export -f 需要在脚本环境运行
|
|
32
49
|
do_convert() {
|
|
33
50
|
local src_file="$1"
|
|
34
|
-
local
|
|
35
|
-
|
|
36
|
-
|
|
51
|
+
local src_dir="$2"
|
|
52
|
+
local out_dir="$3"
|
|
53
|
+
local delete_orig="$4"
|
|
54
|
+
|
|
37
55
|
local filename=$(basename "$src_file")
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
56
|
+
local target_file
|
|
57
|
+
|
|
58
|
+
if [ -n "$out_dir" ]; then
|
|
59
|
+
# 计算相对于源目录的子路径,保留目录结构
|
|
60
|
+
local rel_dir
|
|
61
|
+
rel_dir=$(dirname "${src_file#${src_dir}/}")
|
|
62
|
+
local target_dir="$out_dir/$rel_dir"
|
|
63
|
+
mkdir -p "$target_dir"
|
|
64
|
+
target_file="$target_dir/${filename%.*}.jpg"
|
|
65
|
+
else
|
|
66
|
+
# 输出到与源文件同级
|
|
67
|
+
target_file="$(dirname "$src_file")/${filename%.*}.jpg"
|
|
68
|
+
fi
|
|
69
|
+
|
|
41
70
|
echo "正在转换: $filename"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
71
|
+
if sips -s format jpeg -s formatOptions 90 "$src_file" --out "$target_file" > /dev/null 2>&1; then
|
|
72
|
+
if [ "$delete_orig" -eq 1 ]; then
|
|
73
|
+
rm -f "$src_file"
|
|
74
|
+
echo "已删除原始文件: $filename"
|
|
75
|
+
fi
|
|
76
|
+
else
|
|
77
|
+
echo "转换失败: $filename"
|
|
78
|
+
fi
|
|
45
79
|
}
|
|
46
80
|
|
|
47
81
|
export -f do_convert
|
|
@@ -50,7 +84,11 @@ export -f do_convert
|
|
|
50
84
|
# -0: 处理带空格的文件名
|
|
51
85
|
# -P: 并发数
|
|
52
86
|
# -I: 占位符
|
|
53
|
-
find "$SOURCE_DIR" -type f \( -iname "*.arw" -o -iname "*.dng" \) -print0 | xargs -0 -I {} -P "$THREADS" bash -c "do_convert '{}' '$OUTPUT_DIR'"
|
|
87
|
+
find "$SOURCE_DIR" -type f \( -iname "*.arw" -o -iname "*.dng" \) -print0 | xargs -0 -I {} -P "$THREADS" bash -c "do_convert '{}' '$SOURCE_DIR' '$OUTPUT_DIR' '$DELETE_ORIG'"
|
|
54
88
|
|
|
55
89
|
echo "------------------------------------------"
|
|
56
|
-
|
|
90
|
+
if [ -n "$OUTPUT_DIR" ]; then
|
|
91
|
+
echo "转换完成!所有文件已输出到: $OUTPUT_DIR"
|
|
92
|
+
else
|
|
93
|
+
echo "转换完成!JPG 文件已输出到各自源文件所在目录。"
|
|
94
|
+
fi
|
package/video_bitrate_tool.js
CHANGED
|
@@ -660,7 +660,7 @@ delete options:
|
|
|
660
660
|
arw-convert usage:
|
|
661
661
|
|
|
662
662
|
vid-com arw-convert <源目录> [输出目录]
|
|
663
|
-
|
|
663
|
+
不指定输出目录时 JPG 与源文件同级;指定时保留子目录结构输出到目标目录。质量 90,多线程并发
|
|
664
664
|
|
|
665
665
|
─────────────────────────────────────────────────────────────────────────────
|
|
666
666
|
arw-delete options:
|