Wowza Community

How to control access to an iPhone/iPod touch stream

I was wondering if there is anyway to remap URI for CupertinoStreaming? I tried this code, but WMS still attempts to access the original URI :

	public void onHTTPCupertinoStreamingSessionCreate(
			HTTPStreamerSessionCupertino httpCupertinoStreamingSession) {
				"onHTTPCupertinoStreamingSessionCreate: "
						+ httpCupertinoStreamingSession.getSessionId());
		String uri = httpCupertinoStreamingSession.getUri();
		String ua = httpCupertinoStreamingSession.getUserAgent();
		String qs = httpCupertinoStreamingSession.getQueryStr();
		getLogger().info("CS URI : " + uri);
		getLogger().info("CS UA : " + ua);
		getLogger().info("CS QS : " + qs);
		if (uri.startsWith("vod/mp4:HHIP")) {
			getLogger().info("Remapping URI");
			uri = httpCupertinoStreamingSession.getUri();
			getLogger().info("new CS URI : " + uri);
		} else {
			// reject direct request
			getLogger().info("Direct request rejected.");

You can use the IMediaStreamNameAliasProvider2 interface.


This is not possible at present. Maybe in a future release, but I don’t have an eta.


There is according to quinone that works in iOS 4.2, and is discussed here, with link to apple developer article.

But it doesn’t involve Wowza, I haven’t tried it and wouldn’t be able to help anymore than pointing to the above thread.


Could you please advice me how to set IPhone start stream position, so video wold start not from the beginning. I use queryParams in the link to specify video start time.

public void onHTTPCupertinoStreamingSessionCreate(HTTPStreamerSessionCupertino cupertinoSession) {
        String timePosition = "timePosition";
        String queryStr = cupertinoSession.getQueryStr();
        getLogger().info("query string: " + queryStr);
        Map<String, String> queryMap = getQueryMap(queryStr);
        String timePosition = queryMap.get(timePosition);
        getLogger().info("TIME POSITION = " + timePosition);
private Map<String, String> getQueryMap(String query) {
        String[] params = query.split("&");
        Map<String, String> map = new HashMap<String, String>();
        for (String param : params)  {
            String name = param.split("=")[0];
            String value = param.split("=")[1];
            map.put(name, value);
        return map;

Time position changes but the video starts from the beginning.

Is there any kind of workaround like for cupertino stream?

Anyway, thanks