1

我正在制作一个讲座录制应用程序,我需要从高清网络摄像头录制高清视频。最初我使用 Microsoft Expression Encoder 来录制视频。它适用于低分辨率,但它落后于 720p 及以上。至于 Aforge Library,它只处理视频,但我也需要录制音频。

我已经尝试过,但 Ozeki Camera SDK 但我无法自定义分辨率和帧率等,并且使用其他麦克风也无法同步音频和视频。

我希望是否有人可以帮助我解决我的问题,或者让 Expression Encoder 在更高分辨率下正常工作,或者建议使用其他一些 SDK 或 dll 来提供编码功能以及配置音频和视频的分辨率、帧速率和比特率等。

PS我对编码等方面了解不多。谢谢。

4

1 回答 1

1

我自己使用了AForge.NET框架,我知道它不支持音频。所以为此我使用了 NAudio。您可以使用 NuGet 包管理器控制台轻松安装它们。

Aforge 安装包 AForge

NAudio 安装包 NAudio

以下是音频捕获的一些代码片段

private void LifeChattingManagerForm_Load(object sender, EventArgs e)
        {
            if (!AudioCapture.Initalized)
            {
                AudioCapture.Initalize();
                AudioCapture.StartCapturing();
            }

            AudioCapture.DataAvailable += AudioEvent;
            AudioPlayer.DisposeInput = false;
            AudioPlayer.Run();
        }

        private void AudioEvent(byte[] buffer)
        {
            if (!Calling) return;
            var audioPackage = new SAudioPackage(buffer);
            HandleClient.Send(audioPackage);
        }

音频播放器

AudioPlayer.AddSamples(package);


internal class AudioPlayer
{
    private static readonly BufferedWaveProvider WaveProvider = new BufferedWaveProvider(new WaveFormat());
    private static DirectSoundOut _waveOut;

    public static void AddSamples(byte[] buffer)
    {
        WaveProvider.AddSamples(buffer, 0, buffer.Length);
    }

    public static void Run()
    {
        _waveOut = new DirectSoundOut();
        _waveOut.Init(WaveProvider);
        _waveOut.Play();
    }
}

如果您有任何问题,请在评论中告诉我

于 2016-09-23T08:07:15.763 回答