TS流批量下载工具

TS流批量下载工具工具目录下有3个文件ffmpeg.exe:主要用来处理TS文件转为PM4文件用到,可以自行到相关网站下载http://ffmpeg.org/OnlineFilm.exe 主要执行程序FilesDownLoad.dll下载模块 新建   新建TS文件的索引文件,*.M3u8,怎么获取,参照“Ts文件说明”。M3U8文件如果是本地的文件,需要填写通用地址。…

大家好,又见面了,我是你们的朋友全栈君。

工具目录下有3个文件

ffmpeg.exe: 主要用来 处理TS文件转为PM4文件用到,可以自行到相关网站下载 http://ffmpeg.org/

OnlineFilm.exe  主要执行程序
FilesDownLoad.dll 下载模块
 

TS流批量下载工具
新建
     新建 TS文件的索引文件,*.M3u8,怎么获取,参照“Ts文件说明”。

M3U8文件如果是本地的文件,需要填写 通用地址。

修改

删除

    直接删除这条记录,可以多选删除

统计
  
   统计已经下载完成的记录数

下载

   弹出下载的窗口,进行下载。每个资源文件都需要打开该界面进行下载。

TS流批量下载工具
打开文件夹

  打开该下载的文件夹

读取M3u8

 批量读取文件  

读取的批量文件为 DetailList.txt,并放置到 和工具一个目录下。
格式为:名称|地址(URL),一行一条记录。

美女 | https://www.abc/xxx/index.m3u8
直播 | https://www.abc/yyy/index.m3u8

合并TS文件

  如果多个TS文件,没有自动合并,可以使用该功能进行合并操作

 

  TS文件转换为MP4文件,需要用到 ffmpeg.exe

 

 

1、TS 文件合并

        private void Merge()
        {
            CmdHelper c = new CmdHelper();

            //>copy/b f:\ts\11\*.ts f:\ts\11\temp\new.ts


            string newpath = _entity.RootFilePath + "\\" + _entity.FileName + "\\";
            string newpath1 = _entity.RootFilePath + "\\" + _entity.FileName + "\\tmp\\";

            if (!Directory.Exists(newpath1)) //判断是否存在
            {
                Directory.CreateDirectory(newpath1); //创建新路径  
            }

            if (File.Exists(newpath1 + _entity.FileName + ".ts"))
            {
                File.Delete(newpath1 + _entity.FileName + ".ts");
            }


            string cmd = @"copy/b " + newpath + "*.ts " + newpath1 + _entity.FileName + ".ts";

            string s = c.RunCmd(cmd);

            //  MessageBox.Show("合并完成");
        }

        /// <summary>
        /// 执行CMD语句
        /// </summary>
        /// <param name="cmd">要执行的CMD命令</param>
        public string RunCmd(string cmd)
        {
            proc.StartInfo.CreateNoWindow = true;
            proc.StartInfo.FileName = "cmd.exe";
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.RedirectStandardError = true;
            proc.StartInfo.RedirectStandardInput = true;
            proc.StartInfo.RedirectStandardOutput = true;
            proc.Start();
            proc.StandardInput.WriteLine(cmd);
            proc.StandardInput.WriteLine("exit");
            string outStr = proc.StandardOutput.ReadToEnd();
            proc.Close();
            return outStr;
        }

2、TS转MP4

        string fullFileName = System.IO.Path.Combine(Application.StartupPath, "ffmpeg.exe");  

        /// <summary>
        /// TS -->Mp4
        /// </summary>
        private void TsToMP4()
        {
            // ffmpeg -y -i F:\Ts\11\tmp\11.ts -c:v libx264 -c:a copy -bsf:a aac_adtstoasc F:\Ts\11\tmp\11.mp4  
            //ffmpeg -y -i in.ts -c:v libx264 -c:a copy -bsf:a aac_adtstoasc output.mp4
            //ffmpeg -y -i F:\Ts\11\tmp\11.ts -c:v libx264 -c:a copy -bsf:a aac_adtstoasc F:\Ts\11\tmp\11.mp4        

            if (!File.Exists(_path))
            {
                return;
            }  
            
            string Mp4File = System.IO.Path.GetDirectoryName(_path) + "\\" +System.IO.Path.GetFileNameWithoutExtension(_path) + ".mp4";    

            string para = string.Format("-y -i {0} -c:v libx264 -c:a copy -bsf:a aac_adtstoasc {1}", _path, Mp4File);

            CmdHelper.RunMyProcess(para, fullFileName);      
        }


        /// <summary>
        /// 
        /// </summary>
        /// <param name="Parameters">执行参数</param>
        /// <param name="FFmpegPath">ffmpeg.exe 路径</param>
        public static void RunMyProcess(string Parameters, string FFmpegPath)
        {
            var p = new Process();
            p.StartInfo.FileName = FFmpegPath;
            p.StartInfo.Arguments = Parameters;
            //是否使用操作系统shell启动
            p.StartInfo.UseShellExecute = false;
            //不显示程序窗口
            p.StartInfo.CreateNoWindow = true;
            p.Start();  
            p.WaitForExit();
            p.Close();
        }

 

 

工具下载地址:https://download.csdn.net/download/yunfan555/10812630

 

 

欢迎交流。

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161203.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号