如何对用户的播放记录进行采集和统计?
转载请注明:文章来自www.wowza.cn
注意: 要访问最新的技术资料,请访问http://www.ttstream.com/wowza/
Wowza Stream Engine 4 默认会以匿名方式记录access 或 stats 日志。要让Wowza Stream Engine 4的流传输日志包含用户信息, www.wowza.cn 首先(1)你必须唯一标识一个用户,其次(2)要将用户的UID作为查询参数添加到流媒体播放URL中,最后(3)在Wowza Media Server的/conf/log4j.properties文件中的access 以及/或 stats Appender 的字段列表中添加x-sname-query字段。这里有一些可选项和细节:

  1. 标识一个用户
    1. 如果你正在使用类似JW Player或Flowplayer播放器,并且有一个CMS或其它web系统中的UID存储在用户浏览器的Cookie中,www.wowza.cn 你可以在你的播放页面用javascrip检索出这个UID,然后将它添加到Flash变量file(JW Player)或clip(Flowplayer)上。
      Code:
      file=sample.mp4?uid=123
    2. 对于一个自己开发的Flash客户端,并且有一个CMS或其它web系统中的UID存储在用户浏览器的Cookie中,你可以使用ExternalInterface来检索UID。
      Code:
      import flash.external.ExternalInterface;
      var uid:String = "";
      if (ExternalInterface.available && Application.application.url.search( /http*:/ ) == 0) {
      	uid =  ExternalInterface.call("getUID()");
      	}
      其中getUID 是一个外部的Javascript方法。

    3. 如果没有UID cookie, 这里有2个可选项,可以用于用户认证(需要Flash客户端):www.wowza.cn
      http://www.wowzamedia.com/forums/con...Authentication
      http://www.wowzamedia.com/forums/con...-password-file

    4. 对于没有采用Flash的客户端播放器。你可以直接在播放URL的后面加上UID



  2. 将UID参数添加到stream name后面
    1. 在使用类似JW Player 或 Flowplayer (就像上面提到的一样),你可以将UID添加在播放器的配置中
      Code:
      file=sample.mp4?uid=123
    2. 在Flash客户端的actionscript代码中,在Netstream.play命令中将UID添加到stream name后面:
      Code:
      netstream.play("mp4:sample.mp4?uid=123");
    3. 在使用Flash HTTP (San Jose)时
      Code:
      http://[wowza-address]:1935/vod/sample.mp4?uid=123/manifest.f4m
    4. 在使用HLS (Cupertino)时
      Code:
      http://[wowza-address]:1935/vod/sample.mp4/playlist.m3u8?uid=123
    5. 在使用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"www.wowza.cn


现在,你已经了解了在什么时候、有多少用户、哪些用户、观看了什么内容。

注意: 在使用Microsoft Silverlight smooth streaming时,在url中stream name后面添加UID可能还有些问题,我们正在测试中。www.wowza.cn