添加直接播放

This commit is contained in:
xgc 2024-01-18 12:33:23 +08:00
parent 967b3c43fb
commit aac202432d
6 changed files with 30 additions and 20 deletions

View File

@ -37,9 +37,17 @@ public class RtspDataService implements IOpenFLVService {
```yml ```yml
easy.flv.host=http://localhost:8200 easy.flv.host=http://localhost:8200
``` ```
### 第四步:使用 ### 第四步:实现interface使用
- 流转换地址GET http://ip:port/get/flv/hls/stream_{channel}.flv - 流转换地址GET http://ip:port/get/flv/hls/stream_{channel}.flv
- 浏览器直接播放测试: GET http://ip:port/flv/hls/stream_{channel}.flv - 浏览器直接播放测试: GET http://ip:port/flv/hls/stream_{channel}.flv
### 第五步不想实现interface使用
原地址rtsp://XXXXXXXX <br>
- protocolrtsp
- urlXXXXX
- 流转换地址GET http://ip:port/get/flv/hls/stream_rtsp?url=XXXXXX
- 浏览器直接播放测试: GET http://ip:port/flv/hls/stream_rtsp?url=XXXXXX
![img_1.png](img_1.png) ![img_1.png](img_1.png)
![img.png](img.png) ![img.png](img.png)

View File

@ -32,5 +32,11 @@ public class FLVController {
service.open(channel,url, response, request); service.open(channel,url, response, request);
} }
} }
@GetMapping(value = "/get/flv/hls/stream_{protocol}")
public void open1(@PathVariable(value = "protocol") String protocol,String url, HttpServletResponse response,
HttpServletRequest request) {
if(!StringUtils.isEmpty(url)&&!StringUtils.isEmpty(protocol)){
service.open(protocol+"://"+url, response, request);
}
}
} }

View File

@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.PathVariable;
public class FLVPlayController { public class FLVPlayController {
@Autowired @Autowired
private FlvConfig flvConfig; private FlvConfig flvConfig;
@GetMapping(value = "/flv/hls/stream_{channel}.flv") @GetMapping(value = "/flv/hls/stream_{channel}.flv")
public String getAppHtml(@PathVariable(value = "channel") Integer channel, Model model) { public String getAppHtml(@PathVariable(value = "channel") Integer channel, Model model) {
String videoPath=flvConfig.getHost()+"/get/flv/hls/stream_"+channel+".flv"; String videoPath=flvConfig.getHost()+"/get/flv/hls/stream_"+channel+".flv";
@ -24,4 +25,12 @@ public class FLVPlayController {
model.addAttribute("height", flvConfig.getHeight()); model.addAttribute("height", flvConfig.getHeight());
return "video"; return "video";
} }
@GetMapping(value = "/flv/hls/stream_{protocol}")
public String getAppHtml1(@PathVariable(value = "protocol") String protocol,String url, Model model) {
String videoPath=flvConfig.getHost()+"/get/flv/hls/stream_"+protocol+"?url="+url;
model.addAttribute("videoPath", videoPath);
model.addAttribute("wight", flvConfig.getWight());
model.addAttribute("height", flvConfig.getHeight());
return "video";
}
} }

View File

@ -12,5 +12,6 @@ public interface IFLVService {
* @param response * @param response
*/ */
public void open(Integer channel,String url, HttpServletResponse response, HttpServletRequest request); public void open(Integer channel,String url, HttpServletResponse response, HttpServletRequest request);
public void open(String url, HttpServletResponse response, HttpServletRequest request);
} }

View File

@ -1,17 +0,0 @@
package com.gc.easy.flv.service;
import com.gc.easy.flv.factories.state.OutputImage;
public interface IOutputStreamService {
//是否回写流
public boolean write();
/**
* 通过通道号获取url
* @param image 需要处理的图片
* @return 处理后的图片
*/
public byte[] handler(OutputImage image);
}

View File

@ -27,7 +27,10 @@ import java.util.concurrent.ConcurrentHashMap;
public class FLVService implements IFLVService { public class FLVService implements IFLVService {
private ConcurrentHashMap<String, Converter> converters = new ConcurrentHashMap<>(); private ConcurrentHashMap<String, Converter> converters = new ConcurrentHashMap<>();
@Override
public void open(String url, HttpServletResponse response, HttpServletRequest request) {
open(null,url,response,request);
}
@Override @Override
public void open(Integer channel,String url, HttpServletResponse response, HttpServletRequest request) { public void open(Integer channel,String url, HttpServletResponse response, HttpServletRequest request) {
String key = md5(url); String key = md5(url);