C#录屏加声音

  要做一个录制桌面屏幕,并且要加上麦克风声音的音频的功能,期间经历了3个版本。

  1、AForge.Video.FFMPEG版本

  最开始用的是这个组件,做出来了,开始也没注意视频文件没声音,以为是电脑没查耳机,直到后来发现竟然无法收录声音,查了资料显示,好像也是没办法录音的,这个组件的原理是截的一个个屏幕图片,然后把这些图片给加上视频文件中组合成一个视频,这样的话肯定是每声音的,完犊子。

  2、FFMpeg版本

  后来在网上查的,可以用ffmpeg.exe执行命令,来录制音频文件,这个可以有声音符合要求。但因为我是要一直录屏,且每5min保存成一个文件,这个ffmepg不舒服的就是,想要保存音频文件,必须要关掉ffmpeg.exe,再开启重新开始录制,程序要一直杀死ffmpeg这个进程,再重启,而且这个exe很吃性能,cpu能占用20%左右,有点顶不住。当时也没找到其他方法,就先用这个,好歹功能实现了,但后面又爆出来一些问题,在一些电脑上,电脑休眠后,唤醒进去,会出现不定时间得黑屏(1-5min),这个应该和我录频的的定时有关,但这就很恐怖了,因为对这个ffmpeg基本就是一窍不通,都是网上抄的代码,小改动还行,这黑屏查了2周硬是查不出来,而且这个ffmpeg在C#方面资料也不多,最终都没彻底解决,只是投机取巧在电脑唤醒后重启了软件,也没解决,但出现的频率小了,且黑屏时间缩短到20s左右,客户暂时能接受,让再研究。后续还报出来了录着录着突然说话没声音了,网上也查不到解决办法,对这个东西很是头疼,个人也没办法,就一直这样,大神有知道的忘告知。

  3、MCapture+MFile版本

  过了一段时间后,抽出没需求的时间里,又查了资料,突然发现一个博主写的用MCapture + MFile录音频,还有demo,我下载下来试了试,发现友好型上来说比ffmpeg好很多,不过这个是收费的,想哭。我按照demo修改了自己想要的效果,发现确实好用,看了代码感觉这个应该不会有黑屏的情况吧,没声音不清楚,估计应该没问题,毕竟人家收费了。而且重要的是他这个性能占用比ffmpeg少一半,哎,越想越气。

  留下这个博主的文章,大家自己查看吧,https://blog.csdn.net/zhuweisky/article/details/41517253

  怕demo丢失,自己保存了份:链接: https://pan.baidu.com/s/1iRMHK0oAeoYsqTzVCDrTuA 提取码: qf5d 

  下面这段后后续补充的:

  我用的第3种方法,发现录屏只能5min后,想着既然每次重启都能录5min,说明只要我每5min重新登录下傲瑞的组件就行吧,改了下代码,开始发现可以,后面长时间测试又发现问题,每次录个10多分钟吧,就不行了,视频文件损坏,问了傲瑞客服说是录音那个只能10min,但我每次都重新启用了啊,然而就是不行,到底是试用版,开启还以为自己取巧了,最后发现自己才是小丑,或许有其他办法吧,我没找到。

  后面又是大量找资料,发现了一个RecordWin的demo可以,原理就是用aforge这个组件录屏不带声音的,然后用naudio这个组件录音,最后用ffmpeg.exe把视频和声音组合到一起就可以了,有一个缺陷就是录屏最后一定要正常关闭,否则不但不会合成音频文件,原有没声音的文件也提示损坏,暂没找到方法,有知道的忘告知;下篇单独介绍这个RecordWin的使用。

posted @ 2022-04-29 16:55  卡萨丁·周  阅读(820)  评论(0编辑  收藏  举报