王培顺的博客&WangPeishun’s Blog

wangpeishun 发布的文章

H.264是视频压缩的一个格式,mpeg4标准的第10部分,称它为MPEG-4 高级视频编码(Advanced Video Coding,AVC),是ITU-T和ISO/IEC的联合开发组共同开发的国际视频编码标准,与它对应的音频编码是高级音频编码(Advanced Audio Coding,AAC)。这里不讨论它的算法、结构等内容,只是记录一些比较常用的应用参数。

AVC的规格分为三等,从低到高分别为:Baseline、Main、High。
Baseline(最低Profile)级别支持I/P 帧,只支持无交错(Progressive)和CAVLC,一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等;
Main(主要Profile)级别提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),同样提供对于CAVLC 和CABAC 的支持,用于主流消费类电子产品规格如低解码(相对而言)的mp4、便携的视频播放器、PSP和Ipod等;
High(高端Profile,也叫FRExt)级别在Main的基础上增加了8x8 内部预测、自定义量化、无损视频编码和更多的YUV 格式(如4:4:4)用于广播及视频碟片存储(蓝光影片),高清电视的应用。

h.264 level

[caption id="" align="alignnone" width="711"] h.264 level[/caption]

参考:http://xcshen.blog.51cto.com/2835389/552669/

看到网络科的同事使用cmd,查看网络故障好NB的样子,心中羡慕不已,这里就总结了一些常用的网络命令。(命令参数可以记不住,可以在命令行中输入不带参数的命令,来查看命令参数的格式!

1.ping,最基本最常用的一个命令,用于测试物理网络的联通性,网络速度。

ping 192.168.0.1 -t  参数-t是等待用户去中断测试

2.ipconfig,查看本地ip参数。

ipconfig/all,ipconfig -all

3.tracert,pathping,跟踪路由器,查看节点状况。

tracert www.baidu.com

pathping www.baidu.com  除了返回路由信息,还附加丢包情况。(真心不好用)

4.nslookup,查看和修改DNS。

C:\Users\Shun>nslookup
默认服务器: ns.wuhan.net.cn
Address: 202.103.24.68

> server 202.103.0.68  (将DNS改为202.103.0.68)
默认服务器: ns.hbwhptt.net.cn
Address: 202.103.0.68

> peishun.wang
服务器: ns.wuhan.net.cn
Address: 202.103.24.68 (本地DNS)

非权威应答:
名称: peishun.wang
Address: 121.42.76.10 (远程主机地址)

5.nbtstat,探测对方对方计算机名,所在的组、域及当前用户名。

nbtstat -a 222.20.156.25

6.netstat 查看端口和状态。

netstat -a 显示出你的计算机当前所开放的所有端口。
netstat -s -e 比较详细的显示你的网络资料,包括TCP、UDP、ICMP 和 IP的统计等。

7.arp 探测arp绑定(动态和静态)列表,显示所有连接了我的计算机,显示对方IP和MAC地址。很直观。

arp -a

捆绑IP和MAC地址,解决局域网内盗用IP
ARP -s  ip  物理地址
解除IP与MAC地址的绑定:
arp -d  ip

8.route,查看路由器信息。

route pirnt 用于显示路由表中的当前项目。

route还有 add change delete三个参数。

 

 

Adobe media server固然好用,安装和管理也十分方便,但它是收费的(这个无可非议,好的产品还要有资金支持),开发版有并发量、时间等诸多限制。学校最近要做一个晚会的直播,除了几个集体观看的点外,还有一定数量的校内零散点观看,这样,只有10个rtmp并发的AMS开发版就不能用了(买?别扯了!一个BB教学平台升级几年都没扯清楚,哎,学校投资硬件的思维,你应该懂得),那开源的Red5就派上用场了。官方说red5的点有400个,其实一般的服务器跑300个点压力就够大了,加上前置机分流可能好些。


以前并没有接触过Red5,稍微查了一些资料(万恶的墙),在Linux下使用Red5短时间我搞不定。但发现在windows下却是一键式的。

安装环境和软件:windows8_x64,red5-1.0.1(setup-Red5-1.0.1-java6),Java7(JRE) Update 6。

1.安装java7,设置环境变量。JAVA_HOME=C:\Program Files (x86)\Java\jdk1.7.0_67;

2.安装red5(setup-Red5-1.0.1-java6),按照步骤一步步来,有两处需要填写ip地址和端口号,我这里默认。

3.应该是ok了。运行安装目录下的red5.bat,无异常。浏览器中输入http://localhost:5080/测试。出现下面界面说明安装成功。

[caption id="" align="alignnone" width="563"] red5测试运行成功界面[/caption]

4.使用flash media live encoder采集视频并发送视频流,FMS URL与使用AMS一致。

5.查看和管理red5服务的应用情况,就比较麻烦了,要在googlecode上下载两个文件(AdminPlugin 和 admin.jsp),而后进行相应的配置,别说我现在我过去不,就是翻过去了,googlecode好像已经关闭了,这个管理功能,我就放弃了。

基本情况就这样,留个档,先。

有需要red5(win版)安装包的,可以留下邮箱!

在IBM技术网站上发现了一个RED5的应用教程:基于 Red5 的流媒体服务器的搭建和应用 http://www.ibm.com/developerworks/cn/opensource/os-cn-Red5/index.html

最近发现一款流媒体直播平台框架,有空研究下:EasyDarwin http://www.easydarwin.org/

在整理研究生学习期间的硬盘资料时,找到了以前做毕业论文的程序文档,翻看了一下,觉得可以把里面的Nutch部分拿出来,做一个校园搜索引擎来玩玩。

毕业已经好多年了,Nutch已经改变了不少,1.2以后的版本都使用Solr做索引了,不在使用Lucene。(好像网页爬行和索引也分开了,nutch成了爬虫了,算了就不了解了,因为我用的是nutch1.0和1.2版本。)

说明:系统:CentOS7,Nutch:1.0的src版,中文分词:imdict-chinese-analyzer,web服务:apache-tomcat-8.0.21,jdk版本(centos>yum):java-1.7.0-openjdk-1.7.0.75-2.5.4.7.el7_1.x86_64。(由于不再做修改和编译,Eclipse4.3、Ant1.8.2和Javacc5.0这里就不用了)


1.安装配置JDK:

yum update
yum list java*
yum install java-1.7.0-openjdk-devel.x86_64

在/etc/profile中配置环境变量,jdk默认安装路径/usr/lib/jvm

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.7.el7_1.x86_64
JRE_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.7.el7_1.x86_64/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

2.安装并配置tomcat:下载apache-tomcat-8.0.21到/usr中,解压。在/etc/profile中配置环境变量。

#set tomcat environment
export CATALINA_HOME=/usr/apache-tomcat-8.0.21
export CATALINA_BASE=/usr/apache-tomcat-8.0.21
export PATH=$PATH:$CATALINA_HOME/bin

3.将Eclipse4.3编译后的 Nutch-1.0文件包copy到/usr,在/etc/profile中配置环境变量。

#set nutch environment
export NUTCH_JAVA_HOME=$JAVA_HOME

让环境变量立即生效:#source/etc/profile。

将nutch-1.0中的nutch-1.0.war copy到/usr/apache-tomcat-8.0.21/webapps中,启动tomcat,解压war包。(水平原因,只能在此nutch-1.0中进行页面修改优化)

# cd /usr/apache-tomcat-8.0.21/bin

#./startup.sh

4.配置爬虫运行起始地址和crawl-urlfilter.txt文件。在/usr/nutch-1.0中新建url.txt(带http://的网址),在/usr/nutch-1.0/conf/crawl-urlfilter.txt中找到# accept hosts in MY.DOMAIN.NAME,在其下添加过滤规则。

# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*peishun.wang/
+^http://([a-z0-9]*\.)*znufe.edu.cn/

5.修改nutch-site.xml,添加http.agent.name、sercher.dir等参数。(注意双目录/usr/nutch-1.0/conf、/usr/apache-tomcat-8.0.21/webapps/nutch-1.0/WEB-INF/classes/)

<configuration>
<property>
<name>http.agent.name</name>
<value>wangpeishun</value>
</property>

<property>
<name>searcher.summary.context</name>
<value>10</value>
<description>
The number of context terms to display preceding and following matching terms in a hit summary.
</description>
</property>

<property>
<name>searcher.summary.length</name>
<value>100</value>
<description>
The total number of terms to display in a hit summary.
</description>
</property>

<property>
<name>searcher.dir</name>
<value>\usr\nutch-1.0\webdb001</value>
</property>
</configuration>

6.抓取命令

nutch根目录下执行命令:#bin/nutch crawl url.txt -dir webdb001 -depth 10 -threads1000 -topN5000

url是根目录下存放网站地址的txt

-dir webdb 指定抓取内容所存放的目录

-threads 1000 指定并发线程数

-depth 10 表示要抓取网站顶级网址为起点的爬行深度

-topN 5000 表示获取前多少条记录


若中文乱码需要修改/usr/apache-tomcat-8.0.21/conf中的server.xml,在Connector部分添加URIEncoding=“UTF-8”内容。

其他的页面优化无关紧要,在/usr/apache-tomcat-8.0.21/webapps/nutch-1.0/zh中进行修改(其实应该在Eclipse中修改代码,只是水平不够)。马马虎虎做成这样。

[caption id="" align="alignnone" width="701"] 中南财经政法大学校园搜索系统[/caption]

[caption id="" align="alignnone" width="700"] 中南财经政法大学校园搜索系统[/caption]

对于我来说,平常使用Linux系统的时间不多,但学校每个学期或多或少总会使用那么几次,特别是使用Linux文本界面的时候,总是不记得系统的目录结构,也不知道各个文件所对应的文件目录,从网络上找了一下,资料还真不少,我这里做一个梳理和总结,以备后用,并强迫自己学习一下。

我这里用的最多的就是CentOS,就以CentOS7的目录为例:

/:根目录,存放其他目录,但不存放文件。

/bin:二进制文件,binary,存放经常使用的命令,系统启动时需要的执行文件,ls、cat、tar、mv等。

/sbin:存放系统管理员的可执行命令,fdisk、shutdown、mount等。

/boot:放置系统启动时所需要的一些文件。

/dev:放置Linux系统的设备,一个文件就代表一个设备,这个有点跟windows不一样,有一个挂载的概念mount。

/etc:放置系统配置文件,常用的sysconfig,rc.d等,rc.d系统启动配置文件和脚本,比较重要,修改前要备份,我常用profile配置java、nutch等环境变量。

/proc此目录的数据都在内存中,如系统核心,外部设备,网络状态,数据都存放于内存中,不占用磁盘空间,类似于虚拟目录,是内存的映射盘,这个不用管,我是用的少。

/home:类似于windows的我的文档,普通用户的所有数据都放这,空间要留大点。

/lib:系统函数仓库。

/mnt:临时用于挂载文件系统的地方。

/opt:类似于windows的Programs,以前Linux版本好像总放到/usr/local中吧。

/usr:应用程序存放目录,现在都放在 /opt中了吧,有点晕。bin、sbin、lib、lib64都放到/usr中了,只是在根目录下有一个链接。

/root:与/home里的用户一样,不同的是它的权限高。

/var:字面上是变量的意思,放置系统执行过程中经常变化的文件,apache的网站目录文件夹www在里面,系统常用日志文件也存放在这里。

/tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,是公共的临时文件存储点,一般数据不放置在此目录下。

/media:有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等。

/srv:服务启动之后需要访问的数据目录。原来的www文件夹似乎去了/var。

/sys:sysfs文件系统的挂载点,与/proc有一点联系。

/run:把/var中的run目录单独拿了出来,原来的地方放了一个链接。

/logs:不知与/var中的log目录有什么联系。


 2015年6月3日更新

最近,经常有人问题慕课和微课有什么区别,其实有很多人都已经比较过它们之间的不同,这里来谈一下我的理解。


“微课”这个概念在国内是胡铁生老师(广东佛山教育局)率先提出来的,他给出的“微课”定义是按照新课程标准及教学实践要求,以教学视频为主要载体,反映教师在课堂教学过程中针对某个知识点或教学环节而开展教与学活动的各种教学资源的有机组合。(微课—区域教育信息资源发展的新趋势,《电化教育研究》2011.10)。他给“微课”的定性是新型教学资源,是教师在教与学活动中一种辅助资源。目前,微课都是以这个概念为标准依据。

微课以短小的教学内容视频为主,辅以教学设计、习题材料等,它是整个课程或者课堂教学环节的一个部分,用来更好的向学生来解释或者呈现知识,它有明确的教学目的,但未必是完整的课程。微课虽然也是以网络方式来呈现,但它在网络上却没有完整的课程教学活动,也不是完整课堂教学的呈现,只是针对某个知识点或某个习题或者某个教学环节所提供的一种教学支撑资源。


“慕课”,它的名字其实叫“大规模开放在线课程”,就是一种网络课程,是理想课堂在网络上的还原,具备传统课堂教学的基本要素:教师授课、讨论、交流、习题作业、考试,线上甚至线下活动等,学习并通过某些课程能获得证书证明,甚至能获得学分。慕课的定性是课程,包含整个教与学环节的方方面面,是对传统课堂教学的一种挑战。

一句话,慕课是课程,微课是资源。

其实,在多数人的理解上,微课和慕课是没有区别的。因为在课程内容呈现方式上都是采用短小的视频,而视频拍摄和制作的方式确实一致的,视频内容展现手法也基本相同。

 

学校偶尔会有跨校区直播的需求,以前就是临时找个PC做服务器,现在学校上虚拟机了,于是就先在我的办公PC上安装虚拟软件VMware来试试手,在Linux环境下使用Adobe Media Server配置一个流媒体服务器,做一个前期视频直播的测试,这里做一个记录,以备后用。

使用软件:CentOS7,AMS5.0,Apache(CentOS与AMS需在各自官网上下载)

安装过程:

1.CentOS7是Everything.ISO版本,由于我的Linux知识还不足以支撑我使用文本界面,就安装了GONE桌面,这样操作起来就方便些,也没敢分区,一个盘,为了使用固定IP,虚拟机网络使用的“桥连”方式,其他的默认安装就可以了。

系统安装完成后,需要对外开放80、1935、1111端口,让FMLE和其他用户可以访问这台机器,在防火墙中设置。

2.AMS也就是Adobe Media Server,现行版本5.0,就是Flash Media Server的前身,Adobe公司把他收购后,5.0版本就改名AMS了。

AMS安装比较简单,下载好linux版本,解压出来(AMS_5_0_1_r1076),cd命令进入该目录,执行./installAMS命令,按照提示设置AMS服务的管理用户名和密码,并选择不安装Apache,其他的采用默认设置即可。

具体安装参考:http://www.linuxidc.com/Linux/2013-07/87732.htm

3.CentOS7中使用yum安装Apache比较方便。

首先使用yum install httpd来安装Apache,并通过chkconfig --levels 235 httpd on设置Apache服务的启动级别,通过/etc/init.d/httpd start来启动Apache。(Apache在Linux系统中叫做httpd,Apache的默认文档根目录是在CentOS上的/var/www/html 目录 ,配置文件是/etc/httpd/conf/httpd.conf。配置存储在的/etc/httpd/conf.d/目录。)

具体安装参考:http://server.zol.com.cn/279/2797239.html

4.使用OSMF播放器,嵌套在静态页面中,并预设好rtmp视频流。将该页面放到/var/www/html目录中,PC端可以通过浏览器进行访问。在手机移动端可以使用MX Player播放器来播放视频流。

大概就是这个流程,具体的步骤这里我并没有做详细的记录,只是将我容易忽略的点在这里做一个汇总,非详细实操教程。

live

对于慕课(MOOCs)也关注了很长一段时间了,一开始我是非常看好慕课的,但经过这两年的经历和思想沉淀,总觉得慕课少了一点什么。

其实仔细想想,传统的课堂教学与慕课的学习,对于学习者来说主要是学习环境的不同。

个人觉得,慕课课程学习缺少了学校学习环境的支持。


学习环境是影响学习者学习的外部环境,一般来说包括学校学习环境、家庭学习环境和社会学习环境。家庭学习环境和社会学习环境对于传统教学和慕课学习区别不是很大。

学校的学习环境才是他们最大的差别,拿高等教育来说(中小学基础教育不谈),学习者一般以专业和班级为单位,这个单位里面的学习者的个人水平十分接近,而却大部分个体能够充分的交流和互相学习,同学之间个人风格魅力能得到很好的展现,他们中间优良的学习方法和技巧、处理相关事务的优秀方式也能在相互学习过程中得到普及和进一步优化,而且这是一个潜移默化的过程。

而慕课的受众比较广泛,成员水平参差不齐,个体差异性太大,网络上的交流互动有限,线下的活动很少甚至没有。缺少了同学之间相互学习的机会,更少一种叫做学习氛围的东西。


借用成功学的一句话来做一个总结:想成功就跟成功的人在一起。

个人觉得,学校学习环境就像腌制泡菜的腌菜水,里面有丰富的菌类,摸不着看不见,却是泡菜是否腌制成功的重要因素,学校的学习环境也是同样,这不SPOC不是来了吗。

这仅对于传统在校生来说,而对于其他职业教育的学习者、社会工作者来说,慕课仍是很好的学习方式。

  学过PS的人大多都知道李涛老师的大名,我更是李涛老师的拥趸,从PS、PR到AE,从高手之路到良知塾,一路跟来。

最近我一直在关注慕课(MOOCs),也一直在关注良知塾在网易云课堂所开设的课程,感受着线下传统课堂教学转向线上网络教学的努力。李涛老师的良知塾与站酷合作,推出了“高高手”在线教育品牌,定位为精品教育,这是要与其他在线教育平台划清界限的节奏。

       教育最怕误人子弟,我一直强调取法乎上,就是要向行业精英学习才会有收获。而购买教育产品是双向投入,一是钱二是时间,这两个都太宝贵了。尤其是时间,辛辛苦苦看了几个小时视频,然后瞌睡的要命,没什么有价值的干货,基本上就算是谋财害命了。

李涛老师的这段话我很喜欢,无论是正规院校还是其他培训机构,甚至在线教育平台,只有提供优质课程、优质服务,才能吸引到更多的人来学习。我在闲暇的时候也看了不少网上的课程,在不同的慕课平台进行学习体验,相对于平台的优越性和人性化来说,我更在意课程的优劣,知识点清晰,讲授得体,废话少的老师更受学生的欢迎。记得在某平台上看了一节网页设计的直播课,去除课程开始之前的几分钟的自我广告,平均10分钟,能有2分钟的有效学习信息(不夸张的说),在加上一些课程互动,让我感觉授课老师不是教师,而是主播。虽说这些免费的课程不像是李老师所说的“谋财害命”,但也有误人子弟之嫌。

李涛老师的“高高手”刚刚启程,在线教育一直在继续,新的在线教学模式、甚至是在线教育模式也会不断被发现。

高高手:《简单摄影后期课》

[caption id="" align="alignnone" width="711"] 李涛ps高手之路[/caption]

 

  制作与运营一门MOOCs课程,涉及到较多的环节,每个环节又包含很多要素,就像传统课程教学一样,MOOCs课程也需要课程设计,梳理知识点、重难点,准备教学资料、作业和习题等;与传统课程不同的是MOOCs课程呈现方式视频化、承载媒体网络化、教学和学习时空的不确定性。所以,它也有一套自己的流程和特有的要素。

[caption id="" align="alignnone" width="711"] MOOCs课程相关要素[/caption]