首页 > 编程语言 >C# ffmpeg m3u8 ts 视频拼接mp4

C# ffmpeg m3u8 ts 视频拼接mp4

时间:2024-04-20 15:33:33浏览次数:27  
标签:ffmpeg m3u8 C# basedir mp4 file concat string

准备拼接文件 里面放的是需要拼接视频文件的路径

concat_list.txt

 

 

准备代码

 

        private void CombineFile(string filesDir, string targetmp4fileName)
        {
            string basedir = AppDomain.CurrentDomain.BaseDirectory;
            // ffmpeg的路径
            string ffmpegPath = @$"{basedir}ffmpeg\bin\ffmpeg.exe";
            // 待合并的MP4文件列表,使用concat协议的文件名
            string concatListFilePath = @$"{basedir}concat_list.txt";
            // 输出的MP4文件
            string outputMp4FilePath = @$"{basedir}{targetmp4fileName}";
            string outputcommandFilePath = @$"{basedir}command.txt";
            var files = Directory.GetFiles(filesDir, "*.ts");
            files = files.OrderBy(f => f).ToArray();
            // 写入concat协议文件列表
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(concatListFilePath))
            {
                foreach (var item in files)
                {
                    file.WriteLine(@$"file '{item}'");
                }
                // 继续添加更多的videoX.mp4
            }

            // 构造FFmpeg命令
            string ffmpegCommand = $"-y -f concat -safe 0 -i  {concatListFilePath} -c copy -map 0 -f mp4  {outputMp4FilePath} ";
            // 写入ffmpegCommand
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(outputcommandFilePath))
            {
                file.WriteLine(@$" {ffmpegCommand} ");

                // 继续添加更多的videoX.mp4
            }

            // 使用Process类执行ffmpeg命令
            ProcessStartInfo startInfo = new ProcessStartInfo
            {
                FileName = ffmpegPath,
                Arguments = ffmpegCommand,
                UseShellExecute = false,
                RedirectStandardOutput = true,
                RedirectStandardError = true,
                CreateNoWindow = true
            };

            using (Process process = new Process { StartInfo = startInfo })
            {
                try
                {
                    process.Start();
                }
                catch (Exception e)
                {
                    Debug.WriteLine($"An error occurred: {e.Message}");
                }
            }
        }

准备ffmpeg

 

 

 

使用

  string localDir = $"{AppDomain.CurrentDomain.BaseDirectory}testvideo\\";
  CombineFile(localDir, "output.mp4");

 拼接好的视频

 

标签:ffmpeg,m3u8,C#,basedir,mp4,file,concat,string
From: https://www.cnblogs.com/JohnnyLei/p/18147759

相关文章

  • 使用docker compose一键启动多个应用
    使用dockercompose一键启动多个应用 环境说明linux系统版本:lsb_release-a  docker版本:docker-v  不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。  .1.安装教程,参考官网安装指南。https://dockerdocs.cn/compose/install/ind......
  • 选定进行压缩的卷可能已损坏。请使用chkdsk来修复损坏问题,然后尝试再次压缩该卷
    Windows Server 2008R2环境下,进行磁盘重新分区时,想要对系统盘进行“压缩卷”,结果报错提示“选定进行压缩的卷可能已损坏。请使用Chkdsk来修复损坏问题,然后尝试再次压缩该卷。”这是硬盘出现了坏道导致的,硬盘出错无法压缩扩容,解决方法在报错中已经告诉你,需要使用Chkdsk命令修复。......
  • C# 解密m3u8 ts视频文件为mp4
    代码:try{//读取的加密视频ts文件路径byte[]encodeBuffer=File.ReadAllBytes("C:\\Users\\admin\\Downloads\\322251.ts");///A216DF0DA0082028163781ECC258BA5B代表winhex看到的字符串32734893fb097a767c9ea903936a6d8b代表m3u8文件中的iv偏移......
  • 性能测试——性能测试-linux监控工具-Centos7.x安装Node_exporter
    参考小菠萝博客笔记:https://www.cnblogs.com/poloyy/p/12375039.html 小菠萝是在一个服务器上面装的,我是2个服务器分别装的,下面需要新增一个命令:useraddprometheus    NODE_PATH='/data/prometheus/node_exporter/'cd/usr/local/src/mkdir-p${NODE_PATH}wget......
  • 国内chatGPT中文版网站有哪些?国内人工智能百花齐放!该如何选择?
    人工智能技术在中国的快速发展和普及,使得国内的人工智能产业日益壮大。在这些领域中,自然语言处理技术和聊天机器人已经取得了显著的进展。ChatGPT作为一种基于深度学习的聊天机器人模型,在国内得到了广泛的关注和应用。目前,有几个国产ChatGPT中文版网站备受瞩目。国产chatGPT汇总:......
  • WCHN-CTseg
    WCHN-CTseg前两天我们装了Matlab和SPM12两个软件,今天我们就来讲怎么运行这个CTseg(这是一个可以进行脑CT分割、归一化、颅骨剥离和总脑/颅内容积计算的一个算法~)下载所需包首先要下的两个软件:Matlab和SPM12,详情请看这里:Matlab安装及添加SPM12-Ray-Z-博客园(c......
  • MVCC学习圣经:一文穿透MySQL MVCC,吊打面试官
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • docker 数据卷查看以及数据删除
    如何清理您的Docker数据Docker不需要对系统进行配置更改…但它却使用大量的磁盘空间。短暂的使用后,通过下面命令您可能会震惊地看到一些可怕使用统计信息:dockersystemdf不过不用担心,Docker允许您从未使用的images,containers和volumes中回收磁盘空间。定期清理为了安全......
  • 性能测试——性能测试-linux监控工具-Centos7.x安装Prometheus
    此处参考小菠萝文档:https://www.cnblogs.com/poloyy/p/12375039.html 下载安装PrometheusPROM_PATH='/data/prometheus'mkdir-p${PROM_PATH}mkdir-p${PROM_PATH}/{data,conf,logs,bin}useraddprometheuscd/usr/local/srcwgethttps://github.com/prometheus/prom......
  • opencascade官网文档学习之OCCT-Shape healing (3)分析 TopoDS_Shape
    Analysis分析Analysisofshapevalidity形状有效性分析ShapeAnalysis软件包提供了用于分析拓扑形状的工具。在执行修复工具之前,没有必要通过这些工具检查形状,因为这些工具用于在修复工具内部执行修复之前的分析。但是,如果您愿意,这些工具可以独立于修复工具用于检测某些形状问......