最近在看腾讯视频的时候发现下载下来的视频格式都是qlv格式,且不能用其他播放器播放,甚是恼怒,网上找了很多方法都很繁琐,于是自己写了一个小程序来处理这个问题。把下载下来的qlv格式转化为MP4格式
首先还是按照网上所说的,找到这些文件所在位置:
-
首先将需要转换mp4格式的视频下载,要下载完成才能进行转换。
-
点击设置,将文件所在位置复制
-
将复制内容粘贴到我的电脑,如图所示位置,点击回车【Enter】键,打开后我们找到下载文件,
(因为腾讯下载内容一般都为隐藏,所以需要将文件找到)
-
我们打开其中任一个文件,会发现里面是这样的,我们要做的就是将这些内容转换为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(, ); // D:
//获取最后一个\的索引
int intLast = strPath.LastIndexOf('\\');
//获取文件的首字母
string strLast = strPath.Substring(intLast + , );
//最后输入转换命令“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 + ) + ".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