最近在看腾讯视频的时候发现下载下来的视频格式都是qlv格式,且不能用其他播放器播放,甚是恼怒,网上找了很多方法都很繁琐,于是自己写了一个小程序来处理这个问题。把下载下来的qlv格式转化为MP4格式
首先还是按照网上所说的,找到这些文件所在位置:
-
首先将需要转换mp4格式的视频下载,要下载完成才能进行转换。
-
(因为腾讯下载内容一般都为隐藏,所以需要将文件找到)
-
找到文件所在目录之后就可以用我的小程序了,轻松愉快:
你可以选择外层目录全部转换到一个目录中,一个一个转化,这里的区别就是你选择转换目录时选择的目录级别。
转换完后你就可在相应目录找到你转换的MP4格式的视频文件了:如根据上面的路径,我全部转换的文件截图
下面贴出核心代码,相信大家根据这些代码肯定也可以写出程序了:
/// <summary> /// 执行cmd命令 /// 多命令请使用批处理命令连接符: /// <![CDATA[ /// &:同时执行两个命令 /// |:将上一个命令的输出,作为下一个命令的输入 /// &&:当&&前的命令成功时,才执行&&后的命令 /// ||:当||前的命令失败时,才执行||后的命令]]> /// </summary> private void QLvToMp4(string strPath,string outPath) { try { Process p = new Process(); //设置要启动的应用程序 //p.StartInfo.FileName = "cmd.exe"; p.StartInfo.FileName = "cmd.exe";//后面的 \"D:\\ServKit\"替换为你需要的路径即可。 //是否使用操作系统shell启动 p.StartInfo.UseShellExecute = false; // 接受来自调用程序的输入信息 p.StartInfo.RedirectStandardInput = true; //输出信息 p.StartInfo.RedirectStandardOutput = true; // 输出错误 p.StartInfo.RedirectStandardError = true; //不显示程序窗口 p.StartInfo.CreateNoWindow = true; //启动程序 p.Start(); //获取盘符 string strRoot = strPath.Substring(0, 2); // D: //获取最后一个\的索引 int intLast = strPath.LastIndexOf(‘\\‘); //获取文件的首字母 string strLast = strPath.Substring(intLast + 1, 1); //最后输入转换命令“copy/B 0*.tdl Video001.mp4”, //(在“copy/B”和“0*.tdl”之间有一个空格,“0*.tdl”和“Video001.mp4”之间也有一个空格。其中0是文件中的第一个字母, //如果大家的文件以“a”开头的话,那么命令应该写为“copy/B a*.tdl Video001.mp4”。) if (!Directory.Exists(outPath)) { Directory.CreateDirectory(outPath);//创建该文件 } outPath = Path.Combine(outPath, strPath.Substring(intLast + 1) + ".mp4"); if(File.Exists(outPath)) { File.Delete(outPath); } string strCmd = strRoot + @"&cd " + strPath + " &©/B " + strLast + "*.tdl " + outPath; //向cmd窗口发送输入信息 p.StandardInput.WriteLine(strCmd + "&exit"); p.StandardInput.AutoFlush = true; //获取输出信息 string strOuput = p.StandardOutput.ReadToEnd(); //等待程序执行完退出进程 p.WaitForExit(); p.Close(); //MessageBox.Show(strOuput); } catch { } }
具体小程序的下载地址:https://pan.baidu.com/s/1eT1KhH4 密码:elvp