Golang实现webVTT字幕转SRT字幕

最近下的一个视频字幕是webVTT格式的,但是pc端没找到能支持这种格式的视频播放器,所以每次需要手动转换字幕格式,从 .vtt转换为 .srt 。 从github上找了一个,不过只能转换指定目录下的 .vtt文件,而无法递归处理子目录下的字幕文件,所以自己用golang重新写了一个命令行工具。 对比 VTT 与 SRT两种字幕格式: 需要处理的就两点: 1.字幕序号。vtt是从0开始,而srt是从1开始 2.字幕的时间格式。 vtt是00:02.640 ,而 srt是 00:00:02,640 。 具体代码如下: github : https://github.com/ksharpdabu/WebVTTtoSRTConverter package main import ( "bufio" "flag" "fmt" "io"…

git迁移远程仓库同时保留所有提交记录和所有分支

问题 假设我有A、B两个github账号,如果我想将A的某个仓库转移到B,同时保留提交记录和所有分支,如果不使用官方的git clone,那么如何实现呢? 解决办法: 这里假设你的remote都是origin,同时已经在B上新建了一个同名的空的仓库: git clone –mirror <url_of_old_repo> cd <name_of_old_repo> 此时目录结构如下: git remote rm origin git remote add origin <url_of_new_repo> git push origin –mirror 总结: 网上有使用git checkout,先在本地把所有远程分支拉下来,然后再git push –all…

Spring MVC接口总是默认返回XML的问题排查

昨天同事用了我写的WSDL对接代码后,整个Spring MVC项目接口总是返回XML格式,而不是以前的JSON格式。我也是第一次遇到这个问题,觉得很好奇,所以帮忙排查了原因。 排查过程: 其中一个接口代码如下: @RequestMapping(value = "sms/sendsms") @ResponseBody public ResultInfo sendSmsHandler(@RequestParam(defaultValue = "") String otherPhones, @RequestParam(defaultValue = "") String msgText, HttpServletRequest request) throws Exception{ otherPhones = checkAndConvertStr(otherPhones); msgText = checkAndConvertStr(msgText);…

git如何删除已经push到远程的提交

前提 这里假设remote都是origin ,分支都为master。 注意:如果想单独删除git某个已经push的提交,那就只能删除最近的那个commit,而无法删除倒数第二个commit,而保留倒数第一个提交,如下 假设有A->B->C 三个提交,我们没法只删除B,而保留C,虽然可以通过rebase的方式实现,但是rebase过程中一堆冲突,对于大点的项目,很难实际操作。 我们只能删除B以及它之后的所有commit,即把B、C都删除,结果为 A。 方法一:git reset 先删除本地的: git reset –hard <commit hash> 然后push到remote: git push -f 但是为了安全,建议使用: git push –force-with-lease 方法二:git rebase 假设我们有3次提交: $ git log…

为github和gitlab设置多个ssh key(同网站多账号,不同网站多账号)

场景1: 1.公司有自己的gitlab,公司代码都是往这上面提 ,账号:john 2.自己平时学习的时候,代码是提交到github,账号:tom 为了同时支持这两种操作,一台电脑需要为不同的网站的用户各自创建单独的key。 解决办法 1.创建新的ssh key $ ssh-keygen -t rsa -C “tom@gmail.com” //github的用户 $ ssh-keygen -t rsa -C “john@gmail.com” //自建gitlab的用户 假设得到下面两对key,创建key的时候,指定key的名字,我们这里用用户名区分: ~/.ssh/id_rsa_tom ~/.ssh/id_rsa_tom.pub ~/.ssh/id_rsa_john ~/.ssh/id_rsa_john.pub 2.添加key到ssh中 可以先删除key缓存(可选): $…

升级jetbrain idea 2019.2后,maven编译报错,提示重复的类

升级jetbrain idea 2019.2后,maven编译报错,提示重复的类 打开项目,看到idea的更新提示有新版本2019.2,我想都没想直接点了升级,结果升级后,maven编译同样的项目,总是提示”xxx重复的类”。 尝试解决的过程: 1.搜索代码是否有java类重复。 结果:没有发现。 2.maven依赖问题,clean后重新导入。结果:无效。 3.使用maven依赖检测插件,看是否有重复依赖。 结果:没发现。 4.怀疑idea升级导致的。结果:重新安装2019.1.3版本的idea,可以正常编译。 问题原因: 因为我一直使用的是idea自带的maven,而 2019.2版本的idea的maven升级了,从maven3.3.9升级到了最新的3.6.1,但是这个版本的maven有bug,会在编译时重复将当前目录加入到classpath,导致编译时总会报重复的类。(该mavenbug见:https://issues.apache.org/jira/browse/MNG-6649 )。 解决办法: 下载maven3.6.0,然后修改idea的maven路径,指向3.6.0,然后重新编译,一切正常。 总结: 对于一些常用的编译打包工具,最好还是一直使用固定版本,不要用ide自带的,避免频繁更新,导致编译失败等问题。