首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从MP4文件中仅提取音频并将其转换为C#中的FLAC文件?

如何从MP4文件中仅提取音频并将其转换为C#中的FLAC文件?
EN

Stack Overflow用户
提问于 2015-03-12 15:53:56
回答 1查看 4.8K关注 0票数 4

我的目标是编写将Microsoft会议音频转换为文本的C#。到目前为止,这里是我的项目。最初我试着用麦克风录制,保存到WAV,然后将WAV转换为FLAC,然后使用GoogleSpeechAPI,将FLAC转换为文本。但我把麦克风声音录成了WAV格式。

问题是,它需要在一个非常具体的WAV格式,即int16或int24的工作,WAV到FLAC转换方法。我一直在记录每个样本8位,而不是每个样本(16位或24位)。

所以,重新开始。Microsoft直接记录会议,并将其保存为MP4格式的视频。如果我能以某种方式编写代码将MP4转换为FLAC,这也将解决我的问题。有代码示例吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-12 17:27:20

我最近有一个ASP.NET MVC 5应用程序,需要将.mp4转换成.webm,这是成功的,所以这是一个应用与视频文件相同的概念的想法,但在这种情况下,它们将是音频文件。

首先,您将下载FFMPEG可执行文件并将其复制到项目/解决方案中的一个文件夹中。

将音频文件转换为FLAC的命令如下所示:

代码语言:javascript
复制
ffmpeg -i audio.xxx -c:a flac audio.flac

您可以将其封装在C#方法中,以执行FFMPEG,如下所示:

代码语言:javascript
复制
public string PathToFfmpeg { get; set; }    

public void ToFlacFormat(string pathToMp4, string pathToFlac)
{
    var ffmpeg = new Process
    {
        StartInfo = {UseShellExecute = false, RedirectStandardError = true, FileName = PathToFfmpeg}
    };

    var arguments =
        String.Format(
            @"-i ""{0}"" -c:a flac ""{1}""", 
            pathToMp4, pathToFlac);

    ffmpeg.StartInfo.Arguments = arguments;

    try
    {
        if (!ffmpeg.Start())
        {
            Debug.WriteLine("Error starting");
            return;
        }
        var reader = ffmpeg.StandardError;
        string line;
        while ((line = reader.ReadLine()) != null)
        {
            Debug.WriteLine(line);
        }
    }
    catch (Exception exception)
    {
        Debug.WriteLine(exception.ToString());
        return;
    }

    ffmpeg.Close();
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29014419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档