【问题标题】:Capture desktop/screen and merge sound from laptop mic捕获桌面/屏幕并从笔记本电脑麦克风合并声音
【发布时间】:2020-06-06 11:42:06
【问题描述】:

我正在尝试创建桌面应用程序以从

创建视频
  1. 捕获屏幕。
  2. 从麦克风录制声音。
  3. 将 1 与 2 合并以创建视频。 或者 使用 c# 或 vb.net 语言的任何简单方法。

我使用了只支持视频的 aforg.net。

我避免使用第三方工具,尤其是昂贵的工具。

【问题讨论】:

  • 我认为 ffmpeg 不支持合并实时视频和音频。请显示代码示例
  • 那么您可能需要告诉我的公司,因为我们已经使用它几年来在两个不同的音频流中备份网络研讨会和同声传译电话会议!

标签: c# video screen capture


【解决方案1】:

我为此使用 ffmpeg,通过屏幕捕获记录器 (https://trac.ffmpeg.org/wiki/Capture/Desktop) 录制视频。我在启动 ffmpeg 之前通过写入注册表来控制屏幕捕获记录器记录的区域。我从虚拟音频电缆 (https://vac.muzychenko.net/en/) 获得音频(但这是因为我录制了一台没有声卡的机器) - 你应该能够使用任何你的麦克风设备来做到这一点。您可以使用 NAudio 之类的东西来枚举它们,或者让 ffmpeg 枚举它们并解析其输出 - https://trac.ffmpeg.org/wiki/DirectShow

我使用以下 ffmpeg args 捕获两个音频流

-f dshow -i video="screen-capture-recorder" -thread_queue_size 512 -f dshow -i audio="Line 2 (Virtual Audio Cable)" -f dshow -i audio="Line 3 (Virtual Audio Cable)" -map 0:v -map 1:a -map 2:a -pix_fmt yuv420p -y "{0}"

C# 应用程序负责很多事情,例如截屏、查找我要记录的内容、定位区域、启动 ffmpeg 等。但是 ff 负责繁重的工作。你不需要甚至需要为初学者编写任何 c#,只需让 FFmpeg 从命令行工作并使用各种缓冲区设置等很好地记录,然后将其放入带有 Process.Start(command, arguments) 的 c# 程序

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    相关资源
    最近更新 更多