微软虚拟学院MVA 字幕获取方法

微软虚拟学院(MVA)上有一些不错的视频教程,但是,蛋疼的一点那就是视频要不就慢,要不就卡,总之当你的思维跟着视频深入的时候,duang~,卡一下,说不定就要重头开始,所幸的是提供了视频下载,下载速度还不错。

30分钟后,下好了,打开一看,又蛋疼了,没有字幕呀,人家也没提供字幕下载,并且在MVA论坛上,大家都对下载的视频没有字幕提出了意见,可人家不爱理怎么破,好吧,想办法。

字母也是一种资源,那么打开控制台看一下吧,居然还真有

拷贝下来,存为srt格式,直接丢到QQ影音上,字幕加载失败,原来文件开头多了这么一句“WEBVTT”,删除之,继续丢到QQ影音上,加载成功了,但是没有显示出来,这是怎么回事?继续百度Srt格式,好吧,时间线前面少了序号,应该加入1,2,3,4.。。,可是这么多行不可能手动加呀,自然就想到了用程序,只要在时间的每行前面加一个序号就可以了,思路是这样的

观察时间,发现我们要插入的位置可以用正则表达式来选择,然后替换的时候,前面加一行序号就ok了,下面直接上代码了

class Program
    {
        static void Main(string[] args)
        {
            using (StreamReader fs = new StreamReader("zimu.srt",Encoding.Default))
            {
                string data = fs.ReadToEnd();

                Regex regex=new Regex("\r\n[0-9][0-9]:[0-9][0-9]:[0-9][0-9].[0-9][0-9][0-9]");

                var matches = regex.Matches(data);

                int i = 1;

                foreach (Match match in matches)
                {
                    var oldValue = match.Groups["0"].Value;

                    var newValue = "\r\n" + i + oldValue;

                    i++;

                    data = data.Replace(oldValue, newValue);
                }

                Console.WriteLine(data);

                using (FileStream fs2 = new FileStream("newzimu.srt", FileMode.OpenOrCreate))
                {
                    byte[] bytes = Encoding.Default.GetBytes(data);

                    fs2.Write(bytes,0,bytes.Length);
                }
            }
        }
    }

将转换出来的文件丢到QQ影音上,哦了,搞定

 

希望大家多多传播,让更多的人知道这个方法,系统全面的学习知识。

posted @ 2015-03-22 16:38  UncleNull  阅读(3296)  评论(2编辑  收藏  举报