ubnt解决方案
查看: 41970|回复: 148

[教程] openwrt实现远程实时监听

  [复制链接]

73

回帖

430

积分

53 小时

在线时间

少尉

注册时间
2010-6-29
金币
273 个
威望
8 个
荣誉
1 个
累计签到:8 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2014-5-7 15:04 |显示全部楼层
本帖最后由 akaven 于 2014-5-16 08:56 编辑

2014.5.16实测如意云1下面ices的cpu占用98--100%,darkice的cpu占用95%左右
看来在如意云2下的darkice会有优秀的表现

—————————————————————————————————————
设备:
路由器
tp-link wr841n v3 改16m flash 64m内存(刷的8m固件)
openwrt backfire r31676内核版本2.6.32.27(tp-link wr941n v2改8m flash同样适用)

usb声卡
我使用的是一个摄像头自带声卡,同时也集成了麦克(双麦克),淘宝现在售价16-20元,同时这个摄像头还可以作为监控摄像头用,支持mjpg-stream和motion(可录像,移动侦测),支持如意云




或者使用淘宝上5-10元的usb声卡也可,在输入口插入麦克
无论使用什么样的声卡,一定要在/dev里面能够识别到dsp

使用工具:
serial putty winscp VLC
关于怎样进入路由器命令行里面执行命令,使用winscp上传下载修改文件及权限,请自行搜索本论坛

教程:
为了图省劲,我是一直在路由上插的ttl线用serial来操作的,如果机器正常的话,用putty登陆进去也是可以的。
我使用的固件是没有luci的,所以刷完了无法web登陆,需要先安装luci

opkg update
opkg install luci
opkg install luci-i18n-chinese
然后执行/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start
这样就可以登录web界面了

安装usb驱动

opkg install kmod-usb2
opkg install usbutils
opkg install kmod-usb-core
opkg install libusb

这个时候查看一下usb是否ok
执行命令
lsusb

正常的话会看到usb接口及上面设备的信息的
如果出现unable to initialize libusb: -99
可以试试在启动脚本里添加
mount -t usbfs none /proc/bus/usb/

当lsusb出现类似如下信息时表示usb查看功能和驱动正常
root@OpenWrt:/# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 1a40:0101 TERMINUS TECHNOLOGY INC. USB-2.0 4-Port HUB
Bus 001 Device 003: ID 05a9:2641 OmniVision Technologies, Inc.

能够看到一个usb2.0接口的4口hub,一个OmniVision Technologies的摄像头,上面集成声卡及麦克
接下来安装声卡驱动
opkg install kmod-usb-audio

到这里一定要确认下声卡是否安装好
root@OpenWrt:/# ls /dev
1-1                 mtd2                network_throughput
1-1.4               mtd2ro              null
audio               mtd3                port
console             mtd3ro              ppp
cpu_dma_latency     mtd4                ptmx
dsp                 mtd4ro              pts
full                mtd5                random
kmsg                mtd5ro              shm
log                 mtdblock0           snd
mem                 mtdblock1           tty
mixer               mtdblock2           ttyS0
mtd0                mtdblock3           urandom
mtd0ro              mtdblock4           usb1
mtd1                mtdblock5           watchdog
mtd1ro              network_latency     zero
看到显示有audio dsp,说明声卡安装完好,驱动也ok了

接下来需要架设我们的两个程序ices和icecast
ices负责取信号源供给icecast,而icecast则负责把信号源转成流媒体转发出去
执行命令
opkg install alsa-lib
opkg install ices
opkg install icecast

安装的ices 版本为2.0.1 icecast为2.3.2
这个版本的icecast支持mp3和ogg,而ices则只支持ogg
接下来配置ices和icecast,一定是icecast配置好了之后再启动ices
用winscp进入/var/log/新建两个文件夹ices和icecast,用来存储log日志

修改icecast的配置文件/ect/icecast.xml,内容如见附件
在/etc里面新建ices的配置文件ices-oss.xml,内容见附件

再准备好客户端工具vlc windows版
http://get.videolan.org/vlc/2.1.3/win32/vlc-2.1.3-win32.exe
由于日志文件路径为/var/log/icecast和/var/log/ices
需要将log文件夹的权限设置为777(默认755),而重启后权限恢复
所以在开机启动里面增加一条
chmod 777 /var/log

进入到管理界面启动icecast和ices
root@OpenWrt:/# icecast            
Icecast 2.3.2
usage: icecast [-b -v] -c <file>
options:
        -c <file>       Specify configuration file
        -v              Display version info
        -b              Run icecast in the background
root@OpenWrt:/# icecast -b -c /etc/icecast.xml
Starting icecast2
Detaching from the console
root@OpenWrt:/# Changed groupid to 65534.
Changed userid to 65534.
这个时候使用top命令(ctrl+c退出)可以看到icecast已经在后台运行了
root@OpenWrt:/# ices /etc/ices-oss.xml
打开http://192.168.1.1:8000查看

如果有Mount Point /example1.ogg  M3U则说明你的监听服务器端已经设置好了

这个时候打开VLC选择打开网络串流
地址写http://192.168.1.1:8000/example1.ogg.m3u
就可以开始监听路由器的麦克了
除了Windows版的vlc外,其他所有可以接收流媒体的工具都可以试试,只要输入这个地址即可
目前测试ios下面的
vlc--打开网络
OStream--电台--自定义
都是可以的

192.168.1.1是你路由器默认的lan口ip地址,再配合路由器的ddns和端口映射,那么远程实时监听就做好了
友情提示:该教程仅供学习参考,请勿用作其他用途,请勿将usb声卡内置,学习后请24小时内彻底删除,因本教程引发的各种法律问题,作者概不负责。

841n v3(921n v2)8m(16m也可)flash 64m内存 固件
http://115.com/file/e78jn64r#该固件参考帖子
http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=80198
ices配置文件
icecast配置文件

由于icecast开启的时候选择的参数是-b,后台运行,所以如果要关闭该进程需要执行命令
killall icecast
ices暂时还不能后台运行,记得有支持后台运行的插件,这个再议

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x

73

回帖

430

积分

53 小时

在线时间

少尉

注册时间
2010-6-29
金币
273 个
威望
8 个
荣誉
1 个
累计签到:8 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2015-1-21 01:36 |显示全部楼层
Dracon 发表于 2015-1-13 09:00
有笔记本内置的带麦克的摄像头可以实现么?谢谢!

只要是usb结构的就可以,只不过一般笔记本的摄像头是3.3v的,我们普通的usb是5v的
H盖茨彼此彼此
回复

使用道具 举报

73

回帖

430

积分

53 小时

在线时间

少尉

注册时间
2010-6-29
金币
273 个
威望
8 个
荣誉
1 个
累计签到:8 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2014-5-7 15:05 |显示全部楼层
本帖最后由 akaven 于 2014-5-11 08:23 编辑

对ices和icecast来说,配置主要是修改icecast.xml和ices-oss.xml
icecast.xml在安装icecast的时候就自动在/etc下面生成了,我们只需根据自己的需要进行些修改即可
附件中的ices-oss.xml提取自linux版ices
ices不仅仅可以从麦克(dsp)取流,也可以从ogg文件(通过播放列表来设置)和流媒体来取流
不过那些和我们的监听没有什么关系了

一、icecast.xml文件的参数说明
<source-password>hackme</source-password>
流媒体源的密码,也就是ices的密码,这个要和ices设置的密码一致,这里使用默认的hackme
<relay-password>hackme</relay-password>
再转发给其他服务器的时候的密码
<admin-user>admin</admin-user>
icecast本身的管理账号
<admin-password>hackme</admin-password>
icecast的管理密码,用于登陆icecast的管理页面,我设置的是http://192.168.1.1:8000/admin/
<hostname>localhost</hostname>
主机名,默认即可
<port>8000</port>
端口
<bind-address>0.0.0.0</bind-address>
允许地址,设为0.0.0.0对所有ip开放
<basedir>/usr/share/icecast</basedir>
icecast的主目录,默认
<logdir>/var/log</logdir>
日志文件路径
<webroot>/usr/share/icecast/web</webroot>
web管理页面存放路径,默认
<adminroot>/usr/share/icecast/admin</adminroot>
管理员管理页面路径,默认
<accesslog>access.log</accesslog>
登陆日志文件名
<errorlog>error.log</errorlog>
错误日志文件名
<loglevel>3</loglevel>
日志记录等级
<logsize>10000</logsize>
日志文件大小
<user>nobody</user>
启动icecast的用户名
<group>nogroup</group>
启动icecast的用户所在的组,icecast不允许以root身份启动
实际上icecast的设置没有太多可改动的地方,只要能顺利启动就可以了,他本身是不依赖于ices的
启动后用命令top查看当前运行进程有如下显示即为正常:
1429     1 nobody   S     5340   9%   0% icecast -b -c /etc/icecast.xml
1435  1430 nobody   S     5340   9%   0% icecast -b -c /etc/icecast.xml
1432  1430 nobody   S     5340   9%   0% icecast -b -c /etc/icecast.xml
1430  1429 nobody   S     5340   9%   0% icecast -b -c /etc/icecast.xml
1433  1430 nobody   S     5340   9%   0% icecast -b -c /etc/icecast.xml
1434  1430 nobody   S     5340   9%   0% icecast -b -c /etc/icecast.xml
1431  1430 nobody   S     5340   9%   0% icecast -b -c /etc/icecast.xml

二、ices-oss.xml文件的参数说明
<logpath>/var/log</logpath>
日志文件路径
<logfile>ices.log</logfile>
日志文件名称
<logsize>2048</logsize>
日志文件大小
<metadata>下面几个为服务器自定义设置,不影响使用
<module>oss</module>
取流方式
<param name="rate">44100</param>
取流音频速率
<param name="channels">2</param>
<param name="device">/dev/dsp</param>
取流设备
<param name="metadata">1</param>
<param name="metadatafilename">test</param>

评分

1

查看全部评分

回复

使用道具 举报

73

回帖

430

积分

53 小时

在线时间

少尉

注册时间
2010-6-29
金币
273 个
威望
8 个
荣誉
1 个
累计签到:8 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2014-5-7 15:06 |显示全部楼层
本帖最后由 akaven 于 2014-5-11 08:15 编辑

1、841n v3 CPU主频400MHz,在VLC播放的时候会出现不连贯,甚至有时候会自己重启,怀疑是CPU不给力,暂时还没有优化的解决方案,考虑用如意云1(600MHz)来试试
不过也可能和摄像头里面是双麦克有关,可以试试国产的垃圾usb声卡

目前只是实现功能,确实还无法达到理想的效果
经过监测发现icecast可以稳定运行,而ices占用cpu100%,并且持续增加占用内存量,这应该就是导致机器重启的原因

2、icecast下的xspf流媒体广播

3、ices的ogg文件、其他取流应用

4、使用darkice(非backfire固件)替代ices取流,支持mp3格式
回复

使用道具 举报

281

回帖

1115

积分

352 小时

在线时间

上尉

注册时间
2013-4-22
金币
778 个
威望
0 个
荣誉
0 个
累计签到:29 天
连续签到:0 天
[LV.50]初入江湖
发表于 2014-5-7 15:13 |显示全部楼层
占楼!!!
回复

使用道具 举报

4888

回帖

1万

积分

466 小时

在线时间

上校

灌水天才

注册时间
2013-5-30
金币
8892 个
威望
101 个
荣誉
1 个
累计签到:329 天
连续签到:0 天
[LV.365]无线熟人
发表于 2014-5-7 15:22 |显示全部楼层
高级配置
回复

使用道具 举报

2807

回帖

6899

积分

1765 小时

在线时间

中校

灌水天才

注册时间
2013-12-29
金币
3785 个
威望
3 个
荣誉
1 个
累计签到:505 天
连续签到:0 天
[LV.730]常住居民
发表于 2014-5-7 15:33 |显示全部楼层
高级配置                    
回复

使用道具 举报

398

回帖

4062

积分

1203 小时

在线时间

少校

注册时间
2011-6-9
金币
3478 个
威望
3 个
荣誉
1 个
累计签到:610 天
连续签到:0 天
[LV.730]常住居民
发表于 2014-5-7 15:33 |显示全部楼层
看看 ~~~~~~~~~~~~~
回复

使用道具 举报

52

回帖

453

积分

305 小时

在线时间

少尉

注册时间
2013-2-15
金币
367 个
威望
0 个
荣誉
0 个
累计签到:5 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2014-5-7 16:19 |显示全部楼层
收藏了。谢谢楼主分享
回复

使用道具 举报

822

回帖

2564

积分

879 小时

在线时间

少校

注册时间
2010-3-3
金币
1613 个
威望
1 个
荣誉
0 个
累计签到:4 天
连续签到:0 天
[LV.20]漫游旅程
发表于 2014-5-7 16:42 |显示全部楼层
围观技术贴
回复

使用道具 举报

185

回帖

1万

积分

1784 小时

在线时间

上校

注册时间
2010-4-18
金币
11098 个
威望
1 个
荣誉
0 个
累计签到:1146 天
连续签到:0 天
[LV.1825]无线元老
发表于 2014-5-7 16:47 |显示全部楼层
围观技术
回复

使用道具 举报

2774

回帖

1万

积分

1888 小时

在线时间

上校

灌水天才中级工程师

注册时间
2009-12-28
金币
11923 个
威望
0 个
荣誉
0 个
累计签到:1068 天
连续签到:0 天
[LV.1095]铁杆粉丝
发表于 2014-5-7 16:51 |显示全部楼层
围观技术贴
回复

使用道具 举报

1129

回帖

3244

积分

548 小时

在线时间

少校

注册时间
2011-11-19
金币
2022 个
威望
5 个
荣誉
1 个
累计签到:39 天
连续签到:0 天
[LV.50]初入江湖
发表于 2014-5-7 17:32 |显示全部楼层
呵呵,可以啊,这个。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

站点统计 | Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2024-4-20 04:45

返回顶部 返回列表