我可以从概念上解释服务器端代理在这种情况下会做什么。假设您正在检索一个 URL,如下所示:
http://myserver.com/somethingSomething/DarkSide/
从服务器检索视频流。你说它不会播放,因为没有文件扩展名;因此,本质上,您必须使用带有扩展名的不同 URL。在服务器上设置“搜索引擎友好”的 URL。并做这样的事情:
http://myserver.com/myProxy.cfm/streamURL/somethingSomething%5CDarkSide/Name/myProxyVid.mp4
以下是有关如何在 ColdFusion 中处理搜索引擎友好 URL 的一些信息。下面是一些关于如何在 PHP 中处理搜索引擎友好 URL 的信息。我确信其他技术会出现在 Google 搜索中。
在上面的网址中;这就是你所拥有的:
- http://myserver.com/:这是您的服务器
- myProxy.cfm:这是您的服务器端文件;那是一个代理
- streamURL/somethingSomething%5CDarkSide/Name/myProxyVid.mp4:这是查询字符串。它由两个名称值对组成。第一个是streamURL。这是您要使用代理检索的 URL。第二个是随机的;但只要它以文件扩展名 .mp4 结尾,URL 就应该被视为“mp4 文件”
myProxy.cfm 背后的代码应该是这样的,在伪代码中:
Parse URL Query String
Retrieve Stream.
Set mimeType on return value.
Return stream data
我在 TheFlexShow.com 上使用了类似的方法来跟踪在线观看我们的截屏视频与首先下载它的人数。我还使用相同的方法来跟踪广告商横幅广告的印象。例如,浏览器无法判断这不是 JPG 图像:
http://www.theflexshow.com/blog/mediaDisplay.cfm?mediaid=51
基于此,以及您之前的一个问题;不过,我不相信这是最好的解决方案。我在这里做了很多假设。我认为播放文件的问题确实与扩展名有关,而不是文件数据。我假设您实际上并没有在客户端和服务器上使用开放连接来流式传输视频来来回发送数据。