项目地址:https://github.com/illuspas/SayHey
说明
rtmp://192.168.0.10/live 为流媒体服务器地址及apppath
sample左侧为发布流名称,右侧为播放流名称,如果一样,则自己播自己发布的流
两台设备发布不同的流名称,并且播放对方的流名称,则可实现网络语音对讲.
注:本例及Android版SayHi皆为采集播放、编解码、传输功能库及演示程序。完整的voip还应该包括用户系统,回话管理,消息收发等,这都不在本例研究范畴。
商业版流媒体服务端可以选择fms,wowza,evostreamer
开源版:red5,nginx-rtmp-module,srs
用户与回话管理可以搭配OpenFire(XMPP协议)实现。
使用Node.js+Socket.io也是不错的选择,目前撸主有个项目就是使用这套方案,扩展性,定制性都非常强。跨平台支持优势尤其体现在web上都完全超越openfire。
原创文章,转载请注明: 转载自贝壳博客
大侠 404了
之前因为某些原因关闭了.
现在继续开放.
你的demo给我很大的启发,多谢哈!请问有研究RTMP的视频播放么?
视频方面已经做了几个项目了 只是近期都没时间贴出来
下载的demo编译报错啊,是Undefined symbols for architecture i386:
"_RTMPPacket_Alloc", referenced from:
_send_pkt in RtmpClient.o
"_RTMPPacket_Free", referenced from:
_send_pkt in RtmpClient.o这样的错误,请楼主帮忙解决一下,谢谢了
只支持真机
你解决了问题没?我也出现了同样的问题
你好,借用你的这个程序进行rtmp音频接收播放。现在遇到一个问题:音频时间播放时间长会出现没有声音的现象。但是数据接收仍然在接收。不知道你遇到没有,有啥解决方案么?
是的 这个demo是有这个问题
声音好小是什么原因?
要开发一个ios应用与pc浏览器上的flash程序连接进行视频通信,请问,根据您这个示例,可以做出来吗?
这个只有音频
貌似在主线程做其他事情,推流回中断
问题找到了,请复查下 AudioRecoder.m 57行,请斟酌下runloopmode , 如果是defaultmode,则我滑动视图,推流会中断
你好为什么音质不清楚啊
用flash语言发布的rtmp音频流,我用这个demo接受直播流是断断续续的,而且声音也不清晰,这个改怎么解决啊
flash 发布时设置Microphone对象framesPerPacket = 1;
我改你的这个demo该怎么改,as开发的已经是弄好了的,需要我这边改,
就是我做的是上课时老师和学生音频讲课和回答问题,就需要用rtmp协议,你的这个demo刚刚好,就是as开发(flash)的发布音频流,我这边接收听不清,断断续续的,然后我这边发布音频流,as开发的接收也是断断续续听不清,研究了好多天了也没有改好,用你的这个demo该怎么改,谢谢!!
解码部分 speex如果遇到一包多帧 采用下面的方法解码
static int decode_frame_spx(nm_av_opt* opt, uint8_t* inData, uint32_t inDataSize, uint8_t** outData) {
hdn_adc_spx_t* s = (hdn_adc_spx_t*)opt->handle;
int consumed = 0;
if (speex_bits_remaining(&s->bits) < 5 || speex_bits_peek_unsigned(&s->bits, 5) == 0xF) {
speex_bits_read_from(&s->bits, (char*)inData, inDataSize);
consumed = inDataSize;
}
if(speex_decode_int(s->dec_state, &s->bits, s->output_buffer) == 0 ) {
*outData = malloc(opt->buffer_size);
memcpy(*outData, s->output_buffer, opt->buffer_size);
return consumed;
} else {
return -1;
}
}
外边调用判断consumed 是否 == inDataSize 了,没有的话继续传这一包的数据进来解码。
ps:这是我一段商用版本的代码,不能直接用在这个项目,但解决方法就在此,多阅读speex文档你就清楚了。
您好!就是demo在运行时手机锁屏,然后打开会崩掉,请问一下是啥原因呀!
你好,我用你这个demo推流语音聊天的时候为什么声音是出现在听筒而不是麦克风