-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
批量处理字幕的示例可以写的更清晰一点吗? #2
Comments
抱歉那个批量处理的示例一开始没考虑作为大家上手这个工具的参考脚本, 这个本身是我自己为了方便使用, 为了写成一行, 编写的一个很复杂的指令, 里面使用了很多linux shell 脚本的语法. |
可以大概讲一下参数的含义. find ../Season\ 28/ -type f -name "*.zho.srt" -exec bash -c 'f="{}"; srt-fuzzy-sync run-sync -r "${f%.zho.srt}.eng.srt" -t "$f" -o "${f%.zho.srt}.new.srt" ' 这行命令是一个 命令结构find ../Season\ 28/ -type f -name "*.zho.srt" -exec bash -c '...' \; 各个参数的说明
具体的命令解释
总结整个命令的功能是:在 命令结构rename 's/\.new\.srt/\.zh.srt/' ./*.srt 这个命令使用了 各个部分的说明
整体作用整个命令的作用是:在当前目录中查找所有以 示例
总结该命令是用于将当前目录中所有 |
为了更方便使用和维护, 也可以使用更简洁的shell脚本. 示例如下: #!/bin/bash
# 设置输入目录
input_dir="/data/media/Loki_S01"
# 遍历目录中的所有 MKV 文件, 如果要处理的是mp4 文件, 把下面所有的mkv 替换为mp4
for mkv_file in "$input_dir"/*.mkv; do
# 获取文件名(不带扩展名)
base_name=$(basename "$mkv_file" .mkv)
# 定义参考字幕和待修正字幕的路径
# 对于一个视频文件 video.mkv
# 这里假设所有的参考字幕格式为video_ref.srt
ref_subtitle="$input_dir/${base_name}_ref.srt"
# 假设待对齐的文件为 video_nosync.srt
nosync_subtitle="$input_dir/${base_name}_nosync.srt"
# 设定新文件为 video_new.srt
output_subtitle="$input_dir/${base_name}_new.srt"
# 检查参考字幕和待修正字幕是否存在
if [[ -f "$ref_subtitle" && -f "$nosync_subtitle" ]]; then
# 调用第三方工具修正字幕
srt-fuzzy-sync run-sync -r "$ref_subtitle" -t "$nosync_subtitle" -o "$output_subtitle"
echo "Processed: $mkv_file -> $output_subtitle"
else
echo "Missing subtitles for: $mkv_file"
fi
done
使用说明 |
不是程序员,批量处理字幕的示例有好多参数看不懂啊,在help里也没有说明,能把批量处理字幕的示例写的更通俗易懂一些吗,实在是水平有限,拜托了。
The text was updated successfully, but these errors were encountered: