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\*.ts f:\ts\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\tmp.ts -c:v libx264 -c:a copy -bsf:a aac_adtstoasc F:\Ts\tmp.mp4  
            //ffmpeg -y -i in.ts -c:v libx264 -c:a copy -bsf:a aac_adtstoasc output.mp4
            //ffmpeg -y -i F:\Ts\tmp.ts -c:v libx264 -c:a copy -bsf:a aac_adtstoasc F:\Ts\tmp.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

 

 

欢迎交流。

 

 

 

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • JavaScript onmousemove 事件

    JavaScript onmousemove 事件DefinitionandUsage定义与用法Theonmousemoveeventoccurswhenthemousepointerismoved.当鼠标移动时触发onmou

  • java fgc_记一次频繁FGC的简单排查

    java fgc_记一次频繁FGC的简单排查简书占小狼转载请注明原创出处,谢谢!如果读完觉得有收获的话,欢迎点赞加关注周末愉快,今天有时间记录一下上周遇到的一个问题,学习的脚步不能放慢,也不敢放慢。存在问题在线上环境进行服务压测,压测完成后,cpu使用率居高不下,很是费解,按理说已经没有压测请求了,这时消耗cpu资源的只有GC线程了,可以通过jstat命令查看一下JVM的GC情况,然后就碰到了诡异的GC问题。jstat命令jstat[…

  • 如何求平均数众数中位数_离散系数

    如何求平均数众数中位数_离散系数平均数、中位数、众数,在分析中如何使用?01平均值的种类02平均数、中位数还是众数?03全距和数值分布01平均值的种类请检查下面的陈述:1、一个快速致富的方法就是做一名职业橄榄球员,2015年美国国家橄榄球联盟球星的平均收入是220万美元。2.、为在大学里取得好成绩,学生需要付出的努力越来越少了。根据最近一项调查,大学生每周平均花在学习上的时间是12.8小时,和20年前大学生的学习时长相比,前者大概只有后者的一半。两个例子当中都使用了“平均”这个词,但是实际上有三种不同的方法来测定平

  • 虚拟opc服务器软件,几个OPC服务器开发工具比较

    虚拟opc服务器软件,几个OPC服务器开发工具比较1、WTOPCsvr.dll2、我2004年获得WTOPCsvr.dll的代码,这个代码是我学习VC++的启蒙,也是我学习OPC服务器开发的最重要的资料。用VB开发OPC服务器的话,可以说是首选,简单调用WTOPCsvr.dll的API就可以开发服务器。我到现在还是很钟爱这份代码。完全用MFC的方式,通过嵌套类实现COM组件的接口,代码比较清晰。2、Iconics2.11和FactorySoft…

  • JS中click事件

    JS中click事件今天在写Ajax请求代码时,js代码遇到了一点问题。最后还专门将一部分代码拷贝到webStorm里面测试,花了好久,发现是个坑。先贴一段代码:第一个按钮的点击事件没有任何反应。第二个按钮就会弹出“你好”。原因:这是因为我使用了click这个作为函数的名字,我在这几类中查询了一下,却没有发现click的踪影,而使用click作为函数名,浏览器既不报错,也不提示,真的很坑啊!类似还有open和clos…

  • PyCharm – 自动缩进代码 (Auto-Indent Lines)

    PyCharm – 自动缩进代码 (Auto-Indent Lines)PyCharm-自动缩进代码(Auto-IndentLines)1.Ctrl+A全选代码。2.Code->Auto-IndentLines自动缩进快捷键Ctrl+Alt+I。Referenceshttps://yongqiang.blog.csdn.net/

    2022年10月28日

发表回复

您的电子邮箱地址不会被公开。

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