原始问题
我碰壁了,我希望这里的人能够帮助我。几周前我刚开始编写 Grails,这是我的第一个项目,所以如果我可以要求所有回复都附有示例,我将不胜感激。
我正在尝试开发一个网页,该网页连接到我公司的一个专有相机引擎(用 c++ 编写)。选择相机后,此“SocketSerivce”应与引擎建立 TCP 连接并请求流(mjpeg/h264/etc)。
我的问题是,我已经能够成功地建立到引擎的套接字连接并请求流,但我不知道如何处理它,我尝试过的一切都失败了。我想要的是<div id="VideoStreamContainer"></div>
在我的 GSP 页面上播放视频流(mjpeg/h264/etc)。
有谁知道做到这一点的最佳方法?
SocketService.groovy:
def static getCameraStream(def ip, def port, def cam){
final Socket sock = new Socket(ip, port)
OutputStream os = sock.getOutputStream()
dataips = new DataInputStream(sock.getInputStream());
//s.setSoTimeout(3000)
nThread = new Thread(){
public void run(){
os << "Get /specialCommandtoRequestCameraStream"
os.flush()
while((readed = dataips.readLine()) != null){
println("read: " + readed)
}
}
}.start();
如果我没有为您提供足够的信息来解决我的问题,我很乐意回答任何人的任何其他问题。在此先感谢您的帮助。
更新 1
从我现在正在阅读的文档中,我意识到我在最初的问题中遗漏了一些重要的东西。我想在 div 标签(或其他一些 html 类型标签)中流式传输视频的原因是因为我想避免使用“Flash”播放器。我正在处理的这个网页,我希望在所有支持 java 的设备上都能正常运行。但是这些相同的设备中的大多数都不支持/运行 Flash。这就是我寻找非 Flash 播放器解决方案的原因。我很抱歉没有早点包括这个。
更新 2 2013 年 8 月 1 日晚上 9:38 @aduchate
您(或任何人)能否更好地解释如何使用此代码将其与 GSP 页面联系起来?例如,有了这个,我现在可以让一个 html<video>
标签从控制器接收视频流吗?或者控制器是否有能力在不使用<video>
标签的情况下在网页上呈现视频?
如果我之前没有详细说明这一点,那么我想做的是从 C++ 引擎中获取可以显示在任何网页上的视频流(mjpeg/h264/etc)。“视频引擎”->“Grails”->“Html (GSP) 网页”。我正在使用 grails 建立和维护套接字连接以及我通过套接字接收的视频流,我试图在 GSP 页面上推送/显示。这是该项目的最终目标。
更新 3 2013 年 8 月 2 日上午 8:50
只是想说我从昨晚开始解决了我的错误问题。我的问题仍然是从套接字获取视频流以显示在 GSP 页面上。