【问题标题】:How to extract just the audio from an MP4 file and convert it to FLAC file in C#?如何仅从 MP4 文件中提取音频并将其转换为 C# 中的 FLAC 文件?
【发布时间】:2015-05-14 21:12:25
【问题描述】:

我的目标是编写将 Microsoft LYNC 会议音频转换为文本的 C#。 Here 是我目前的项目。最初我试图从麦克风录制,将其保存为 WAV,然后将 WAV 转换为 FLAC 并使用 GoogleSpeechAPI,将 FLAC 转换为文本。但是我卡住了将麦克风音频录制为 WAV 格式。

问题是它需要采用非常特定的 WAV 格式,即 int16 或 int24 才能使 WAV 与 WAV 到 FLAC 转换方法一起使用。我一直记录每个样本 8 位,而不是每个样本(16 或 24 位)。

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

【问题讨论】:

    标签: c# mp4 audio-recording flac audio-converter


    【解决方案1】:

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

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

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

    ffmpeg -i audio.xxx -c:a flac audio.flac
    

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

    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();
    }
    

    【讨论】:

    • 第 5 行缺少“进程”的程序集引用。我需要特殊的包含语句还是添加 dll 文件?
    • 使用 System.Diagnostics
    • @JonathanKittell 有没有办法让它与 YouTube 视频一起使用?
    猜你喜欢
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 2012-01-25
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多