Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在.net中将多个mp3文件“叠加”合并到单个mp3文件中,而不是按顺序合并?_.net_Merge_Ffmpeg_Mp3 - Fatal编程技术网

在.net中将多个mp3文件“叠加”合并到单个mp3文件中,而不是按顺序合并?

在.net中将多个mp3文件“叠加”合并到单个mp3文件中,而不是按顺序合并?,.net,merge,ffmpeg,mp3,.net,Merge,Ffmpeg,Mp3,底部显示了我最近更新的关于这个问题的最新讨论 好的,我正在尝试建立一个平台,我的silverlight应用程序将不同的乐器音频合并到一个文件中,并输出一个音乐音频 我现在要做的是把多个mp3文件合并成一个mp3文件。但最终的mp3文件不应该播放第一个mp3,然后是第二个,然后。。。到最后。它应该像mp3频道一样播放它们。用户将放置吉他频道、鼓频道等。。合并将把它们合并成一个mp3文件作为输出 我发现我可以通过一些代码和其他实用程序来实现这一点,但我找不到一种方法将其分层到通道结构中 我发现了一个

底部显示了我最近更新的关于这个问题的最新讨论

好的,我正在尝试建立一个平台,我的silverlight应用程序将不同的乐器音频合并到一个文件中,并输出一个音乐音频

我现在要做的是把多个mp3文件合并成一个mp3文件。但最终的mp3文件不应该播放第一个mp3,然后是第二个,然后。。。到最后。它应该像mp3频道一样播放它们。用户将放置吉他频道、鼓频道等。。合并将把它们合并成一个mp3文件作为输出

我发现我可以通过一些代码和其他实用程序来实现这一点,但我找不到一种方法将其分层到通道结构中

我发现了一个更容易的合并mp3的实现,我更喜欢通过它来使用,但我在谷歌上找不到任何关于它的帮助代码,而且从我所阅读的结构来看,我一直试图做的是更难找到

哦,顺便说一句。。最后一个问题,我不喜欢GPL知识的家伙,所以如果我在我的项目中使用Mp3Wrapper.exe,我可以使用它作为一个商业项目吗?我能赚钱吗?还是收集捐款

编辑: 我还发现了一个叫做“我不确定它是否能完成任务”的东西,但至少它看起来很熟悉,因为它是用c编写的。但是我不能在我的silverlight项目中使用它,因为它不是silverlight程序集,我不确定它是否能工作

而且我一直在浪费时间搜索深度谷歌和3个选项的文档,找不到任何有用的东西,我真的不理解这些东西,但我准备进行黑客攻击,不确定它是否有用或可行,但我也可以将mp3文件合并为音频通道,我看到我可以在ffmpeg中选择音频通道,但不确定如何选择。并在我的项目中添加多个媒体元素,同时播放,希望它们能够同步,mp3文件的大小能够降低

任何建议,我如何实现我的目标,要么用黑客或一个好的解决方案

另一更新:

我已经决定使用流来合并我的mp3文件,因为我可以通过.net直接播放它们,而且经过一些尝试后,速度似乎更快。我正在使用下面的代码,但我仍然找不到在通道或分层系统中合并文件的方法,而且我对流、位、缓冲区以及与IO相关的任何内容都不太了解。希望这次更新能帮助你给我一些启示

    string path = AppDomain.CurrentDomain.BaseDirectory;
        using (var fs = File.OpenWrite(Path.Combine(path, "cOut.mp3")))
        {
            var buffer = File.ReadAllBytes(Path.Combine(path, "c1.mp3"));
            fs.Write(buffer, 0, buffer.Length);
            buffer = File.ReadAllBytes(Path.Combine(path, "c3.mp3"));
            fs.Write(buffer, 0, buffer.Length);
            fs.Flush();
        }
我也在改变主意,把mp3文件嵌入音频通道。另一个似乎非常难。我完全接受关于音频通道操作的建议,你可以写任何你能想到的解决方案,我对任何事情都持开放态度

提前谢谢

最后,我能够实现对wmv音频流的操作,但它的大小是巨大的!所以我把我的注意力转移到了我最初的点上——合并mp3,我能够通过ffmpeg实现我想要的!这个简单的代码合并了多个mp3文件!但现在我有一个音频速度的问题。我猜ffmpeg会将持续时间计算为mp3文件a1.mp3+a2.mp3,然后将音频拉伸到合适的长度。因此,我的音频以半速播放。。。我试过了

-最短输入流结束时的最短完成编码 -async 1将音频同步到时间戳,与-copyts一起使用 -复制者从输入流获取时间戳 -速度2操纵速度 但是找不到出路。。当它处理音频时,它会执行到正确的持续时间,但由于-newaudio流,它会产生双持续时间定时音频。 当我在媒体播放器中将音乐速度提高2倍时,我可以随心所欲地听音乐。 这是代码

   ffmpeg -i a1.mp3 -i a2.mp3 -map 0:0 -map 1:0 -acodec wmav2 -ar 44100 -ab 128k -y aout.wav -acodec wmav2 -ar 44100 -ab 128k -newaudio
顺便说一句:两个输入流是相同的mp3的调试过程,所以没有问题的输入。 谢谢


如果可以的话,我不想使用SOX,但是,如果没有其他选择,请告诉我一个完全工作的二进制文件。

很好的解决方案我需要做同样的事情,但我有一条错误消息,上面说:缺少选项“newaudio”的参数,当我不写它时,它可以工作,但没有新生成的.wav文件的声音谢谢您的关注。我最终使用了SOX,这是ffmpeg或asp.net无法管理的。如果你能使用SOX,问题是:SOX-combine mix-norm t1.mp3 t2.mp3 t3.mp3 t4.mp3 tcomplation.mp3-S-multi-threadedHi,你能告诉我一些关于将音乐添加到你自己录制的语音中的事情吗?ffmpeg对它有用吗?