diff options
| author | b5f0d6c3 <[email protected]> | 2021-10-20 01:06:31 +0800 |
|---|---|---|
| committer | b5f0d6c3 <[email protected]> | 2021-10-20 01:06:31 +0800 |
| commit | e4047411ac3bb53c1026cff7ae2667f514eaaccf (patch) | |
| tree | 25b6aa013ef30e7eb9e0ffcc7e3a49d8fb7f064d | |
| parent | ade1863046f4f5902b1e46e3d95bcd268fe899e3 (diff) | |
add log file writer
| -rw-r--r-- | README.md | 11 | ||||
| -rw-r--r-- | mkvtool/main.go | 16 |
2 files changed, 25 insertions, 2 deletions
@@ -19,6 +19,7 @@ ASS字幕字体子集化 MKV批量提取/生成 apt install mkvtoolnix #Debian/Ubuntu apk add mkvtoolnix #Alpine ``` + #### 关于Windows用户 - 从 [这里](https://www.python.org/downloads) 下载并安装Python @@ -38,6 +39,15 @@ ASS字幕字体子集化 MKV批量提取/生成 ## mkvtool 功能及使用示例 +- 标准工作流 + ```shell + mkvtool -s bangumi + #从${bangumi}文件夹抽取所有mkv文件的字幕和字体, + #遇到ass字幕就自动进行子集化, + #输出替换字幕和字体后的新mkv文件. + #-data参数默认值为"${workdir}/data",指定提取mkv的输出文件夹. + #-dist参数默认值为"${workdir}/dist",指定重组后mkv的输出文件夹. + ``` - 从单个(或文件夹的)mkv文件里抽取字幕和字体*并创建子集化后的版本(可选)* ```shell mkvtool -d -f file.mkv #单个文件 @@ -129,6 +139,7 @@ ASS字幕字体子集化 MKV批量提取/生成 ### 一些碎碎念 +- "-log"参数:输出终端输出到指定文件,空为不输出,默认为空. - "-m","-c"模式下的"-sl","-st"参数: ``` -sl:字幕语言.格式为语言缩写如"chi","jpn","eng"等,默认值为"chi". diff --git a/mkvtool/main.go b/mkvtool/main.go index ce55269..285b0f1 100644 --- a/mkvtool/main.go +++ b/mkvtool/main.go @@ -4,6 +4,7 @@ import ( "flag" "fmt" "github.com/KurenaiRyu/MkvAutoSubset/mkvlib" + "io" "log" "os" "path" @@ -12,7 +13,7 @@ import ( ) const appName = "MKV Tool" -const appVer = "v3.1.4" +const appVer = "v3.1.5" const tTitle = appName + " " + appVer var processer = mkvlib.GetInstance() @@ -46,6 +47,7 @@ func main() { ans := false sl, st := "", "" af, ao := "", "" + flog := "" asses := new(arrayArg) flag.StringVar(&s, "s", "", "Source folder.") flag.StringVar(&f, "f", "", "MKV file. (join single mode)") @@ -63,13 +65,23 @@ func main() { flag.BoolVar(&ans, "ans", false, `ASS output not to the new "subsetted" folder. (ass mode only)`) flag.StringVar(&data, "data", "data", "Subtitles & Fonts folder (dump & make mode only)") flag.StringVar(&dist, "dist", "dist", "Results output folder (make mode only)") + flag.StringVar(&flog, "log", "", "Log file path") flag.BoolVar(&v, "v", false, "Show app info.") flag.Parse() + if flog != "" { + lf, err := os.OpenFile(flog, os.O_CREATE|os.O_RDWR, os.ModePerm) + if err != nil { + log.Printf(`Failed to create log file: "%s"`, flog) + } + mw := io.MultiWriter(os.Stdout, lf) + log.SetOutput(mw) + } + ec := 0 if v { - fmt.Println(appFN + " (powered by " + mkvlib.LibFName + ")") + log.Printf("%s (powered by %s)", appFN, mkvlib.LibFName) return } |
