ffmpeg编码如何实现同时录制声卡和麦克风的声音?

灰熊问题的最优解 2017-05-23 11:04:07
加精
我需要同时录制屏幕,声卡和麦克风的声音。
但是我编码时,只能录制屏幕和virtual-audio-capturer,或者屏幕和麦克风,不能同时录制三个,请问这是为什么?
代码太长,这里贴不出来,我发成博客了,麻烦各位大大移步到博客里看一下。
http://blog.csdn.net/a1069962325/article/details/72637534
...全文
6489 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
XDY070900 2017-12-14
  • 打赏
  • 举报
回复
问题解决了吗?怎么解决的?我遇到同样问题。
csulizhang 2017-07-10
  • 打赏
  • 举报
回复
如果你的播放端是采用SDL来播放,音频回调的时候往往一个声音通道只能播放一条流,及时你采用SDL_MixAudio,也不能达到效果(反正我是没实现),要实现多个声音同时播放,建议在推送端推两条流,播放端采用多线程方式,分别回调不同的声音,然后打开多个声音通道,分别播放声音,代码如下: BOOL flag = (SDL_GetAudioDeviceStatus(1) == SDL_AUDIO_STOPPED); m_nAudioDeviceID = 0; int ret = 0; if (flag) { ret = SDL_OpenAudio(&wanted_spec, NULL); m_nAudioDeviceID = 1; SDL_PauseAudio(0); } else { m_nAudioDeviceID = SDL_OpenAudioDevice(NULL, 0, &wanted_spec, NULL, SDL_AUDIO_ALLOW_ANY_CHANGE); } SDL_PauseAudioDevice(m_nAudioDeviceID, 0); 这样就可以同时播放两个声音了
u010826997 2017-06-16
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 12 楼 lanxiaziyi 的回复:
[quote=引用 8 楼 a1069962325 的回复:] [quote=引用 5 楼 lanxiaziyi 的回复:] 1,avformat_new_stream,这个函数的意思是添加一个流到ffmpeg, 从你的需求看,你需要执行这个函数3次(一个视频流,两个音频流)。 也就是你要再添加一个音频流。 具体的写法,如果你现在代码看懂了,会很好加的。 2,(这一条可以忽略) 你的ffmepg版本有点老。现在都是3.几的写法。你的代码还是2.几的写法。
刚刚添加了一个麦克风流到ffmpeg了,但是还是没有麦克风的声音,代码流程看懂了,可能有些结构体设置的参数不对?所以才导致没有出现声音吗?调试看pFormatCtx_Out->nb_streams确实是3个。还有哪些设置是我遗漏的了吗? 代码已经更新到博客里了,麻烦在帮忙看一下。 对于ffmpeg,我还是初学者,ffmpeg的版本还不知道怎么区分,也不知道区别,以后会慢慢的去深入的。谢谢这位大神提供的有用信息。[/quote] 存在一个可能: 你的播放器只能播放一个音频流。 有两个解决办法: 1,修改播放器那里。音频播放部分你也要自己实现,你要开启两个音频播放线程来播放两个音频流。 2,修改采集端。 录制声卡和麦克风的声音,这一步的时候,将两个流混合成一个流(这种方式我没试过,但是我知道可以)。这样一来,就不用改播放器了。 [/quote]我现在在使用第一种方式。写完第一种后我再试试改采集端。谢谢大神~
punmpkin 2017-05-27
  • 打赏
  • 举报
回复
谢谢,很喜欢,多谢
赵4老师 2017-05-25
  • 打赏
  • 举报
回复
使用bass库? 参考相关成熟开源软件的做法?
  • 打赏
  • 举报
回复
引用 9 楼 zhao4zhong1 的回复:
麦克风需要设置音量?
不用设置音量,随着系统音量就行
赵4老师 2017-05-25
  • 打赏
  • 举报
回复
麦克风需要设置音量?
  • 打赏
  • 举报
回复
引用 5 楼 lanxiaziyi 的回复:
1,avformat_new_stream,这个函数的意思是添加一个流到ffmpeg, 从你的需求看,你需要执行这个函数3次(一个视频流,两个音频流)。 也就是你要再添加一个音频流。 具体的写法,如果你现在代码看懂了,会很好加的。 2,(这一条可以忽略) 你的ffmepg版本有点老。现在都是3.几的写法。你的代码还是2.几的写法。
刚刚添加了一个麦克风流到ffmpeg了,但是还是没有麦克风的声音,代码流程看懂了,可能有些结构体设置的参数不对?所以才导致没有出现声音吗?调试看pFormatCtx_Out->nb_streams确实是3个。还有哪些设置是我遗漏的了吗? 代码已经更新到博客里了,麻烦在帮忙看一下。 对于ffmpeg,我还是初学者,ffmpeg的版本还不知道怎么区分,也不知道区别,以后会慢慢的去深入的。谢谢这位大神提供的有用信息。
蓝黑墨水 2017-05-25
  • 打赏
  • 举报
回复
引用 8 楼 a1069962325 的回复:
[quote=引用 5 楼 lanxiaziyi 的回复:] 1,avformat_new_stream,这个函数的意思是添加一个流到ffmpeg, 从你的需求看,你需要执行这个函数3次(一个视频流,两个音频流)。 也就是你要再添加一个音频流。 具体的写法,如果你现在代码看懂了,会很好加的。 2,(这一条可以忽略) 你的ffmepg版本有点老。现在都是3.几的写法。你的代码还是2.几的写法。
刚刚添加了一个麦克风流到ffmpeg了,但是还是没有麦克风的声音,代码流程看懂了,可能有些结构体设置的参数不对?所以才导致没有出现声音吗?调试看pFormatCtx_Out->nb_streams确实是3个。还有哪些设置是我遗漏的了吗? 代码已经更新到博客里了,麻烦在帮忙看一下。 对于ffmpeg,我还是初学者,ffmpeg的版本还不知道怎么区分,也不知道区别,以后会慢慢的去深入的。谢谢这位大神提供的有用信息。[/quote] 存在一个可能: 你的播放器只能播放一个音频流。 有两个解决办法: 1,修改播放器那里。音频播放部分你也要自己实现,你要开启两个音频播放线程来播放两个音频流。 2,修改采集端。 录制声卡和麦克风的声音,这一步的时候,将两个流混合成一个流(这种方式我没试过,但是我知道可以)。这样一来,就不用改播放器了。
蓝黑墨水 2017-05-24
  • 打赏
  • 举报
回复
1,avformat_new_stream,这个函数的意思是添加一个流到ffmpeg, 从你的需求看,你需要执行这个函数3次(一个视频流,两个音频流)。 也就是你要再添加一个音频流。 具体的写法,如果你现在代码看懂了,会很好加的。 2,(这一条可以忽略) 你的ffmepg版本有点老。现在都是3.几的写法。你的代码还是2.几的写法。
happysheng2012 2017-05-24
  • 打赏
  • 举报
回复
同问这个问题
cattpon 2017-05-24
  • 打赏
  • 举报
回复
learning~
qihoojia 2017-05-24
  • 打赏
  • 举报
回复
同问这个问题
赵4老师 2017-05-23
  • 打赏
  • 举报
回复
参考软件Record Anything
  • 打赏
  • 举报
回复
有人来帮忙解惑吗?

5,531

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 模式及实现
社区管理员
  • 模式及实现社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧