如何对用户的播放记录进行采集和统计?
Wowza Stream Engine 4 默认会以匿名方式记录access 或 stats 日志。要让Wowza Stream Engine 4的流传输日志包含用户信息, 首先(1)你必须唯一标识一个用户,其次(2)要将用户的UID作为查询参数添加到流媒体播放URL中,最后(3)在Wowza Media Server的/conf/log4j.properties文件中的access 以及/或 stats Appender 的字段列表中添加x-sname-query字段。这里有一些可选项和细节:
1.标识一个用户
a.如果你正在使用类似JW Player或Flowplayer播放器,并且有一个CMS或其它web系统中的UID存储在用户浏览器的Cookie中,你可以在你的播放页面用javascript检索出这个UID,然后将它添加到Flash变量file(JW Player)或clip(Flowplayer)上。
Code:
file=sample.mp4?uid=123
b.对于一个自己开发的Flash客户端,并且有一个CMS或其它web系统中的UID存储在用户浏览器的Cookie中,你可以使用ExternalInterface来检索UID。
Code:
importflash.external.ExternalInterface;
var uid:String ="";
if(ExternalInterface.available && Application.application.url.search(/http*:/ ) == 0) {
uid = ExternalInterface.call("getUID()");
}
其中getUID 是一个外部的Javascript方法。
c.如果没有UID cookie, 这里有2个可选项,可以用于用户认证(需要Flash客户端):
d.对于没有采用Flash的客户端播放器。你可以直接在播放URL的后面加上UID
2.将UID参数添加到stream name后面
a.在使用类似JW Player 或 Flowplayer (就像上面提到的一样),你可以将UID添加在播放器的配置中
Code:
file=sample.mp4?uid=123
b.在Flash客户端的actionscript代码中,在Netstream.play命令中将UID添加到stream name后面:
Code:
netstream.play(“mp4:sample.mp4?uid=123”);
c.在使用Flash HTTP (San Jose)时
Code:
http://[wowza-address]:1935/vod/sample.mp4?uid=123/manifest.f4m
d.在使用HLS (Cupertino)时
Code:
http://[wowza-address]:1935/vod/sample.mp4/playlist.m3u8?uid=123
e.在使用RTSP时
Code:
rtsp://[wowza-address]:1935/vod/sample.mp4?uid=123
3.要在log4j Appender 中添加x-sname-query字段, 请用文本编辑器打开/conf/log4j.properties,找到serverAccess 字段列表,然后在列表的最后添加", x-sname-query":
Code:
log4j.appender.serverAccess.layout.Fields=x-severity,x-category,x-event;date,time,c-client-id,c-ip,c-port,cs-bytes,sc-bytes,x-duration,x-sname,x-stream-id,x-spos,sc-stream-bytes,cs-stream-bytes,x-file-size,x-file-length,x-ctx,x-comment,x-sname-query
在修改log4j.properties文件后,你必须重启Wowza Media Server。
在测试时, 在Wowza SimpleVideoStreaming 例子播放器上播放一个流:
Server: rtmp://[wowza-address]:1935/vod
Stream: mp4:sample.mp4?uid=123
现在打开访问日志(access log),你找到带有x-sname-query字段"uid=123" 的播放记录。
如果你希望这条日志记录仅仅出现uid的值,你可以播放 "mp4:sample.mp4?123"
现在,你已经了解了在什么时候、有多少用户、哪些用户、观看了什么内容。
注意: 在使用Microsoft Silverlight smooth streaming时,在url中stream name后面添加UID可能还有些问题,我们正在测试中。