
药导


0 访问量
0 原创专栏
11 资料
1 粉丝
个性签名:此E友还没有留下个性签名哦~
加入易百纳时间:2016-03-18
-
如题,题主在完成了Qt 4.8.6 的交叉编译之后,高高兴兴拿来一个demo,但是有个比较头疼的问题是,Qt Creator 中,使用交叉编译链的 Kit 的话,在编辑的时候,一些系统函数,比如 printf 不会高亮,不能跳转,不知道各位是否也有遇到? 如图: 下面是我用默认的 Kit,系统函数可以正常显示2016-11-122 0 5741
-
如题,题主在做 3518E 降噪模块的时候,遇到一点问题,我是按照 mpp2 的 sample_audio 里面 VQE 的设置方式,进行设置的,但是我发现开了 VQE 之后,如果我在播放声音,那么 AI 就收不到任何数据,这是为何呢? [code] /*enable vqe*/ { AI_VQE_CONFIG_S stAiVqeAttr; AI_HPF_ATTR_S stHpfAttr; stAiVqeAttr.s32SampleRate = AUDIO_SAMPLE_RATE_16000; stAiVqeAttr.s32FrameSample = SAMPLE_AUDIO_PTNUMPERFRM; stAiVqeAttr.bAecOpen = HI_FALSE; stAiVqeAttr.stAecCfg.enAecMode = AUDIO_AEC_MODE_SPEAKER; stAiVqeAttr.bAlcOpen = HI_FALSE; stAiVqeAttr.stAlcCfg.s32MinLev = -16; stAiVqeAttr.stAlcCfg.s32MaxLev = -4; stAiVqeAttr.stAlcCfg.u32MaxGain = 6; stAiVqeAttr.bAnrOpen = HI_TRUE; s32Ret = HI_MPI_AI_GetHpfAttr(AiDev, AiChn, &stHpfAttr); if (HI_SUCCESS != s32Ret) { printf("HI_MPI_AI_GetHpfAttr = %d\n",s32Ret); return HI_FAILURE; } stHpfAttr.bHpfOpen = HI_TRUE; stHpfAttr.stHpfCfg.enHpfFreq = AUDIO_HPF_FREQ_150; s32Ret = HI_MPI_AI_SetHpfAttr(AiDev, AiChn, &stHpfAttr); if (HI_SUCCESS != s32Ret) { printf("HI_MPI_AI_SetHpfAttr = %d\n",s32Ret); return HI_FAILURE; } s32Ret = HI_MPI_AI_SetVqeAttr(AiDev, AiChn, AoDev, AoChn, &stAiVqeAttr); if (HI_SUCCESS != s32Ret) { printf("HI_MPI_AI_SetVqeAttr = %d\n",s32Ret); return HI_FAILURE; } s32Ret = HI_MPI_AI_EnableVqe(AiDev, AiChn); if (HI_SUCCESS != s32Ret) { printf("HI_MPI_AI_EnableVqe = %d\n",s32Ret); return HI_FAILURE; } m_bVQEhasEnable = true; }[/code]2016-09-270 0 3997
-
如题,楼主在测试 sample_audio 的时候发现,播完退出进程之后,喇叭还是会有 “哒哒哒”的声音,声音不是很大,但是一直持续,请问有人也遇到过同样的问题吗,该怎么解决呢?2016-09-223 0 2960
-
如题,一直没太搞明白这个shading有什么用,感觉disable掉之后,画面效果更好一些? 下面这个是我Enable了shading的效果 下面是disable的 最后是原图2016-09-206 0 3301
-
本帖最后由 药导 于 2016-9-13 08:35 编辑 题主最近在尝试使用海思接口播放音频,做法借鉴了sample_audio.c 里面的从文件中读数据输入给ADEC,然后ADEC绑定AO,不同的是我只播一次(demo的做法是一直循环播),我现在的问题是,只播一次的话,文件后面很长一段播不出来,请问有人遇到过吗?2016-09-1221 1 5059
-
如题,题主在做3518E图像旋转时只找到了在 VI 中设置翻转的方法,请问各位,还有别的可以动态翻转图像,或者更好点的方法吗?2016-09-023 1 2838
-
本帖最后由 药导 于 2016-8-16 14:54 编辑 先把做好的思维导图发上来,具体的内容,晚上来完善(都是围绕思维导图来写的,有兴趣的可以先把思维导图下下来先看一下)。 思维导图是用mind manager做的,个人比较喜欢mind manager,有兴趣的也可以下下来用一下,我买的是mind manager 15,这里给大家提供一个破解版的。 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 先来张整体思维导图,有说得不对的地方,还请大家多多指正。 在我学习 RTMP 开发时,有幸找到雷霄骅博士的 [url=http://blog.csdn.net/leixiaohua1020/article/details/15814587]RTMP流媒体技术零基础学习方法[/url],不得不说,雷博对 libRtmp的研究是非常深入的,吃得很透。但雷博的这些文章,从我现在来看,很多是做 RTMP Client 开发没必要一上来就看的,而且他对 RTMP 具体数据打包封装的部分没有讲到。我写这篇《由技入道:迅捷学习RTMP》的目的,是为了给想要做 RTMP 开发的朋友一个快速上手开发 RTMP 一站式的教程。争取所有人在看完之后,都可以马上进行 RTMP Client 的开发。 (本文引用了很多其他网友的图片及文章,在本文最后都附有引用文章的连接,如有侵权,请联系我。) 基础要求:稍微有点音视频技术基础即可。 亮点:从实际应用出发,深入剖析 RTMP Client 开发中的重点、难点,避开枯燥的协议概念,迅速上手; 以下正文 /////////////////////////////////////////////////////////////////////////////////////////////////////// 一、RTMP 简介 RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,可用于实现直播、点播应用,最初由 Macromedia 公司创建,后来归Adobe公司所有,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。 除 RTMP 外,httpflv 以及 HLS 等直播协议也被广泛使用,其中 httpflv 比较成熟,比较容易使用第三方的 CDN(Content Delivery Network :内容分发网络),而支持 RTMP 的 CDN 成本要比 http 高,因此现在很多的直播平台都是采用主线路cdn 提供的 httpflv + 次线路 RTMP 的模式(比如 Youtube);而 HLS 相对于 RTMP 及 httpflv 的优点是,它可以 html5 播放,适用于手机端看,所以目前大部分跨平台直播都选择 HLS 协议来做直播,但 HLS 延迟比较大,9秒以上(Twich在用)。 RTMP 协议的优势在于,它本身就是为直播而开发的,延迟低(3秒左右),架构比较简单,使用 Flash Player 作为播放器客户端,而 Flash Player 现在已经安装在了全世界将近 99% 的 PC 上,因此一般情况下收看RTMP流媒体系统的视音频是不需要安装插件的,用户只需要打开网页,就可以直接收看流媒体,十分方便,据不完全统计,国内目前直播量最多的就是 RTMP。 可以这样概括一下:凡是想实现“无插件直播”的流媒体系统,都会使用RTMP。 RTMP 采用典型的 C/S架构,服务器端软件有比较多的选择: [table=50%] [tr][td]名称[/td] [td]开发语言[/td][td]所属公司[/td][td]备注[/td][/tr] [tr][td]FMS [/td] [td] [/td][td]Adobe [/td][td] [/td][/tr] [tr][td]Red5 [/td] [td]java [/td][td]开源 [/td][td] [/td][/tr] [tr][td]CRtmpServer [/td] [td]C++ [/td][td]开源 [/td][td]目前非常活跃 [/td][/tr] [tr][td]Simple Rtmp Server[/td] [td] [/td][td]开源 [/td][td]国人开发的 [/td][/tr] [tr][td]Wowza Media Server[/td] [td] [/td][td]Wowza [/td][td] [/td][/tr] [/table] 客户端可以使用 FMLE(Flash Media Live Encoder )、OBS(Open Broadcaster Software)(内部还是使用的 libRtmp,编码使用的是 x264 和 faac)免费软件抓取 PC 是摄像头和麦克风的数据,不过毕竟它们应用范围有限,想要把它嵌入到自己的程序中,还是要自己来实现RTMP协议的推送,目前使用得最多的是一个开源项目 RtmpDump(libRtmp)。 注:RtmpDump 和 libRtmp 的关系,RtmpDump 只是 libRtmp 的一个使用 demo ,通过它可以抓取 rtmp 服务器的音视频流进行保存等,除此之外, libRtmp 还提供了 RtmpSrv (轻量级 Rtmp 服务器)等几个 demo。 二、FMS的安装及使用 因为我们的主要目标是学习 RTMP Client 的开发,所以在这里服务器端我们选择安装简单,可靠性比较高的 FMS(或者叫AMS,附件中提供了 64 位的 FMS 5 的安装包,你也可以去FMS官网下载其他版本的),下面是 FMS 的安装及使用: 1、在Windows上安装 FMS 首先,将下载下来的 FMS 5 安装包解压,得到 AdobeMediaServer_5_LS1_win64.exe,双击打开 点击 next 选择接受协议,然后 next 这里不需要输入注册码,安装后为开发版,有10个连接数限制。 继续 next 选择你想安装的位置(最好不要带中文) 这里可以选择安装 Apache,不装也没关系 next 就好了 这里设置你的管理账户的用户名和密码,设个自己喜欢的吧 这里设置 RTMP 的端口等,一般不改,如果你装了 Apache ,端口冲突的话,就把这里的 80 改为其他没用的吧 最后确认一下,OK的话就 Install 了,不出意外你会看到这个 点击 Finish 之后,会弹出一个页面 还是蛮酷的,这个页面可以在这里打开 第二个 Adobe Media Server Start Screen 打开刚才那个页面 第一个 Adobe Media Administrator Console 可以打开管理页面 输入你刚才设置的账号密码,就可以进行管理,不过一般也用不到 好了,到这里, RTMP 的服务器 FMS 就搭建好了,默认是直接打开了的,如果没打开,在开始->Adobe->Adobe Media Server 5 里面有相应的选项打开 附件:RTMP 迅捷开发.zip 附件:mind manger 15破解版下载地址.zip 附件:rtmp规范翻译1.0.pdf附件:ISO-14496-3(2009-09).pdf附件:ISO_IEC_14496-15_2010.pdf2016-08-1530 6 8229
-
如题,最近几周在搞rtmp,目前视频,音频以及音视频同步都已经搞好了。 但是遇到一个问题,就是使用 vlc 播放的时候,只有图像没有声音,但是我用FMS自带的播放器播放是图像声音都有的。 不过我用 vlc 播放其他 rtmp 测试视频,又是正常的,声音可以正常播放。 找了一下区别,那就是我的 aac 是海思出来的 16000Hz 的采样率的, 其他测试的均是 44100Hz。 如图, vlc 解码器已经获取到了音频的信息了, 16000Hz采样率,16bit位宽, 但是就是没声音。2016-08-121 0 5950
-
如题,下面是我拍的几张示波器的照片。 以下是我以前用的普源的示波器,光看样子的话,感觉泰克这个还不如普源的~2016-07-128 0 3761
-
本帖最后由 药导 于 2016-7-7 15:09 编辑 如题,题主最近在做串口,遇到一些问题,有怀疑是自己串口初始的问题,借助几个论坛网友的串口操作函数,结果也一样,最后定位到是软件的问题。 看了一下论坛上没有一个整理得比较好的资料,于是把自己封装了一下的串口初始化的文件分享出来,希望能帮到后面的人吧。2016-07-0711 0 3343
-
本帖最后由 药导 于 2016-7-7 11:31 编辑 如题,楼主最近接到一个做拓传的任务,在搞3518的ttyAMA1,代码是写好了,但是发现在串口通信的时候经常会出现一个0xff,而且不固定,感觉像是随机出现的,有人遇到过类似的情况吗? 最新结果,我用好几个人的串口初始化代码都测试很多遍,发现都存在这个问题(谢谢提供初始化代码的几个论坛网友)。 然后我尝试加了滤波电容和上拉电阻,感觉效果都不明显,最后测试不同的波特率,发现结果如下: 波特率为115200时:每次open的时候都会产生一个错误码,但是错误码的值不确定,有时候0xfc,有时候0xf8; 波特率为57600时:每次open的时候都会产生一个错误码,错误码固定为0xfe; 波特率为19200时:有时候open的时候会产生一个错误码,错误码固定为0xff; 波特率为9600时:open不产生错误码; 波特率为4800时:open不产生错误码; 综上所述,感觉直接用海思自带的驱动,open(“/dev/ttyAMA1”)时会产生一个低电平,低电平的持续时间约为57600波特率的两个bit的持续时间。如果要稳定使用的话,建议使用9600波特率。2016-07-0612 1 10058
-
这个工具我用了一年多了,一直可以使用,效果也很不错,不过就是打开国内页面的时候会慢一点点。 附件:lantern-installer-beta-2.0.10-Windows.zip2016-07-0613 1 6758
-
本帖最后由 药导 于 2016-7-1 10:06 编辑 如题,题主接到一个3518和外部单片机通信的任务,目前选用的是GPIO模拟DSA协议来做(因为选用的单片机没有uart这些)。 DSA总线规定: DSA总线是异步、双向的在两个为控制前之间传送的一种总线方式,由三个双向的控制线组成。 DATA -- 用于总线同步及数据传送; STB -- 用于传送时数据使能(当STB为低电平时,DATA线上数据有效); ACK -- 用于开始总线同步,数据传送应答及通讯应答。 附件:dsaP10501_dsa.pdf2016-07-019 0 2999
-
如题,楼主现在的任务是做一个局域网的搜索协议,不知道有没有做过这一块的前辈,还请指点一二啊。2016-06-276 0 2773
-
是这样的,楼主最近在做远程升级模块,我是这样想的: u-boot kernel rootfs apps configs |-------------|---------------|---------------|---------------|---------------| 把整个Flash分成五个区,然后rootfs做成只读文件系统,apps和configs分别放应用程序和配置文件,做成jffs2,然后挂载到rootfs的两个文件夹中; 我有个专门用来升级的进程,当它从服务器上查询到有升级可以用的时候,就把其他的应用程序干掉,然后把apps和configs的挂载卸掉, 再从服务器上把升级包下载下来,校验通过之后再把升级包擦到相应的apps和configs的Flash区里。这样应该可以避免在擦写apps和configs区域的时候系统对这两块区域的读写吧? 然后我还有一个需求,就是万一在线升级的时候,升级失败了,或者板子出现了重大问题,变砖了,这时候就需要uboot来升级固件,我看海思在uboot是分成firmware,kernel,rootfs...分包来升级的,但是这样分包的话,显得有点杂乱,不容易管理,我虽然可以把要用的firmware,kernel,rootfs...这些都打成一个压缩包,然后让用户下载到电脑上,再解压到SD里,但是这样感觉还是太繁琐了一点,我现在的想法是,把我做好的一个发布版的Flash全部拷出来,然后用户只需要把这个Flash下载到SD里,u-boot使用这个固件文件对整个Flash进行擦写。那么问题来了,如何识别这个文件是否是我们的固件包?并且要通过这个固件包的名字来确定是否更新固件(我的想法是,固件包分两种,一种是SD卡里的固件包版本比现在Flash里的新才更新,一种是强制更新的,强制更新的使用场景我是这么考虑的,万一用户板子崩溃了,然后我们没有出新的固件包,而我的逻辑只有SD卡的固件包比板子里的版本新才更新的话,那就不能通过u-boot更新了)? 求大家给点意见2016-06-2212 3 5603
-
如题,楼主现在的一个任务就是要做升级程序,我的想法是把flash分成几个区,然后从远程服务器上把升级文件下载下来,擦除相应分区之后,再把下下来的升级文件写到对应的区里面,就像uboot 用 sf 命令烧写flash一样。 大家都是怎么做的呢,我这个方法有没有什么问题呀。2016-06-1610 1 4415
-
本帖最后由 药导 于 2016-6-22 10:24 编辑 如题,我因为业务需求,要用到FFT,自己在网上找了一个FFT的C语言算法,里面用得最多的就是浮点数的乘法和加法,然后我发现一个问题,同样的代码,我在自己的Ubuntu 14.04 64位的虚拟机上跑,计算出来的结果,和我在3518上计算得到的结果却完全不一样,比如我计算一段波形里某个频率的信号的功率,在Ubuntu上是88的话,在板子上计算却是452,这个是为什么呢,跟了一下,两边的浮点数都差不多,到小数点后第六位才会差1.2016-06-132 0 3991
-
如题,我现在采用的是44100采样率,单声道输入。在海思的手册里有看到控制左右声道的模拟增益和数字增益的ioctrl的方法,但是单声道却没有对应的方法呢,尝试使用 ACODEC_SET_INPUT_VOL:设置 codec 输入音量。 z ACODEC_GET_INPUT_VOL:获取 codec 输入音量。 z ACODEC_SET_OUTPUT_VOL:设置 codec 输出音量。 z ACODEC_GET_OUTPUT_VOL:获取 codec 输出音量。 这四个cmd,但是好像并没有效果呢,还请知道的前辈指点一二。2016-06-013 0 3309
-
如题,我现在使用的是3518E+ov9712,64M内存,16M flash,文件系统为 jffs2,整个文件系统大概6M左右,然后分配是38M OS + 26M MMZ。 内核使用的是海思的 full_config文件编译出来的,启动内核之后,发现内存还剩 23844(如图) 加载了海思驱动族之后,内存还剩 18924 然后再加载一个带 smart link功能的 7601 wifi驱动之后,内存就只剩下 12868 了,我去,wifi驱动有这么吃内存吗? 后面我换了一个不带smart link的公版7601驱动,发现在加载了海思驱动族的基础上,还剩 15236 ,也就是说一个smart link功能要多用2.5M作用内存? 求解答,我现在是用了带smart link的wifi驱动之后,sample_venc就跑不起来了,初步定为是内存不足的错误。2016-05-038 1 4769
-
本帖最后由 药导 于 2016-6-22 10:24 编辑 我跑的是网上流传很广的那个rtsp+venc的那个demo,之前使用32M OS+32M MMZ内存分配的时候,跑这个sample会出现如下错误: RTSP:-----Init Rtsp server 11111111111111111111111111111111111111111111111111111 SAMPLE_COMM_ISP_Run: create isp running thread failed! [SAMPLE_COMM_VI_StartIsp]-1213: SAMPLE_COMM_VI_StartIsp: ISP init failed! [SAMPLE_VENC_720P_CLASSIC]-1917: start vi failed! Segmentation fault 后来我将内存分配为 38M OS + 26M MMZ之后,就可以正常跑起来了,跑起来之后,使用free看到OS还剩下16M左右 后来我使用公版的7601 WIFI驱动,down掉eth0之后,用wifi来联网,跑这个sample也是可以的,现在我用带smart-Link的wifi驱动,又报上面这个错误了, 结合我之前的情况来看,这个应该是内存不足?可是sample跑起来之后明明还剩下很多内存啊,有没有人也遇到过类似情况的?2016-04-278 0 3510

共23条
- 1
- 2