./configure --host=arm-openwrt-linux-muslgnueabi --prefix=$PWD/install --disable-libwebrtc --disable-libyuv --disable-v4l2 --disable-opencore-amrnb --disable-speex-codec --disable-speex-aec --with-openh264=/home/lyz/work/broadcast_app/app/thirds_libs_src/pjproject-2.12.1/third_party/openh264-2.3.1 --enable-libwebrtc-aec3 --with-opus=/home/lyz/work/broadcast_app/app/thirds_libs_src/pjproject-2.12.1/third_party/opus/
关键点: 该功能实现,主要需要考虑RTSP取摄像头视频流,拆RTP包,组H264帧,通过PJSIP的视频通道转发;这个过程中,涉及到RTP通道保活,RTSP通道保活;调试时间多耗费在对摄像头返回的RTP &init_rtsp_client, &deinit_rtsp_client, &start_rtsp_client_sip, &stop_rtsp_client }; pjsip root@lyz-VirtualBox:/home/lyz/work/broadcast_app/v3s_ipc_rtsp_pjsip/curl-8.2.1# arm-buildroot-linux-uclibcgnueabihf-gcc COLLECT_GCC=/home/lyz/work/broadcast_app/v3s_ipc_rtsp_pjsip/buildroot-2018.08.2/output/host/bin/arm-buildroot-linux-uclibcgnueabihf-gcc.br_real COLLECT_LTO_WRAPPER=/home/lyz/work/broadcast_app/v3s_ipc_rtsp_pjsip/buildroot-2018.08.2/output/host/
的启动配置文件支持回声消除:#webrtc echo--ec-opt=3#webrtc-aec3 echo#--ec-opt=4#--stereo--ec-tail=75参考:https://github.com/pjsip
1、开启webrtc-aec3,configure脚本开启--enable-libwebrtc-aec3
实现需求,全志IPC,PJSIP本地预览视频,解码并显示对端视频。先梳理PJSIP本地预览和解码显示流程。 本地预览:默认配置 vid_preview_enable_native 是开启的。
will generate 1 frame 11:30:27.198 Master/sound Underflow, buf_cnt=0, will generate 1 frame 2、修改PJSIP PJ_EINVAL); return pjmedia_conf_configure_port(pjsua_var.mconf, slot, tx_flag, rx_flag); } 然后在pjsip_app.c frame 11:30:27.198 Master/sound Underflow, buf_cnt=0, will generate 1 frame audio部分的代码一直没有细看,主要是pjsip 但是也一直有几个问题,理解不是很深刻,就是pjsip的conference 混音机制,还有source到sink的逻辑通路。
openwrt下的asterisk16套件 opkg update opkg install asterisk16-app-system asterisk16-chan-dongle asterisk16-pjsip asterisk16-codec-ulaw asterisk16-codec-alaw asterisk16-res-rtp-asterisk asterisk16-bridge-simple 调整PJSIP 作为默认服务,并且新增几个PJSIP账户,用以测试内线通 /etc/asterisk/pjsip.conf [transport-udp] show endpoints中显示的状态会从Not in use转换为In use asterisk -rvvvv OpenWrt*CLI> pjsip show contacts Contact after remote address set to: 192.168.234.127:52518 -- PJSIP/6001-00000005 answered PJSIP/6004-00000004
注意显示设备的注册顺序,video_dev.c中,注册显示设备的时候,要放到camera适配设备的后面,这样子默认的capture设备,即时不配置,也能找到第一个。
关键词:pjsip、hi3516ev300、voip 第一步:pjsip在hi3516ev300的移植: 这个工作量相对较小,配置host为arm-himix100-linux编译都能顺利通过 . -linux-gnu.a SRCS += $(PWD)/pjsip/lib/libresample-arm-himix100-linux-gnu.a SRCS += $(PWD)/pjsip/lib/ -linux-gnu.a SRCS += $(PWD)/pjsip/lib/libg7221codec-arm-himix100-linux-gnu.a SRCS += $(PWD)/pjsip/lib /pjsip/include/ -Wl,-rpath=/usr/lib TARGET := pjsip_app OBJ := $(SRC:%.c=%.o) TARGET_PATH := $(PWD /$(ARM_ARCH)_$(OSTYPE).mak 第二步: 打通pjsip的音频录制、编码发送逻辑,网上有说法是使用null_dev.c ,在编译pjsip时,修改config_site.h,增加:
用TortoiseSVN获取源码,http://trac.pjsip.org/repos/browser/pjproject/trunk。 然后打开pjsip-apps/build目录下的pjsip-apps.dsw,因为要编译pjsua的是python绑定,所以设置python_pjsua为活动项目,编译整个项目,生成_pjsua.pyd 最后进入pjsip-apps/src/python,执行python setup-vc.py install,要生成WIN32的安装程序,还是老办法,用bdist_wininst参数。 Python模块,它提供了SIP的高层次的API,不用去理会复杂的SIP协议,包括了音频控制、账户管理、通话、IM(没有试过)、穿越NAT的设置(STUN,ICE,TUN)等, 文档见http://www.pjsip.org
录音机:录制为PCM文件 //broadcast_record.c /* 录制wav,之后编码,再通过组播发送出去 组播接收wav, 解码?播放wav */ #include <pjmedia-audiodev/audiodev.h> #include <pjmedia.h> #include <pjlib.h> #include <pjlib-util.h> #include "broadcast_app.h" #define THIS_FILE "broadcast_record.c" s
本文为呱牛笔记原创文章,转载无需和我联系,但请注明来自呱牛笔记 ,it3q.com 上一篇: 使用三方摄像头,实现pjsip的视频通话功能 下一篇: PJSIP支持webrtc回声消除处理
window.baseUrl = "http://127.0.0.1:18080" 5、验证MVP-PRO GB28181平台接入功能,首先在MVP-pro的管理页面添加国标设备 然后配置国标设备接入,以pjsip 为例,pjsip的default.config配置文件配置如下: # This is a comment in the config file.
本文为呱牛笔记原创文章,转载无需和我联系,但请注明来自呱牛笔记 ,it3q.com 上一篇:没有了 下一篇: PJSIP实现通话过程中MIC静音功能
个呼叫 SIPp还支持使用脚本文件来自定义模拟的UAC或UAS的行为,具体可参考官网文档:http://sipp.sourceforge.net/index.html 五、协议开发 常见协议栈有: 1、pjsip :http://www.pjsip.org/ 2、sofia:http://sofia-sip.sourceforge.net/ 3、osip:https://www.gnu.org/software/
, <RTP Audio+and+video+for+the+Internet> <RTP协议RFC3550.pdf> <RFC3261-SIP协议中文版> <SRT传输协议-shiw.pdf> <PJSIP
,所以直接把sysctl也禁调 $ sed -i '' '/HAVE_SYSCTL/d' include/asterisk/autoconfig.h # 选择需要编译安装的功能模块,主要禁掉了cdr和pjsip
除Sofia-SIP外,还有很多开源的SIP协议栈,如pjsip、osip等。最初选型的时候,FreeSWITCH 的开发团队也对比过许多不同的SIP协议栈,最终选用了Sofia-SIP。 FreeSWITCH 是一个高度模块化的结构,如果你喜欢其他协议栈,可以自己实现如mod_pjsip或mod_osip等,它们是互不影响的。这也正是FreeSWITCH架构设计的精巧之处。
目前市场上已有一些产品出现,有PJSIP、CSIPSimple、Linphone、eyebeam、JsSIP、sipML5等,但是企业真正用起来,语音通话经常出现卡顿、丢包、延时高。
SDK漏洞(CVE-2015-2000/1/2/3/4/20) 研究人员还在几款SDK中发现了漏洞: Jumio (CVE-2015-2000) MetaIO (CVE-2015-2001) PJSIP