首页 > 解决方案 > Spring Boot 提供 m3u8 播放列表

问题描述

我正在尝试通过 Spring Boot 提供 m3u8 播放列表。我有一个正在运行的 ffmpeg 进程,它实时转码多播并将文件发送到 /src/resources/public/output.m3u8。我看到播放列表正在更新并且新的 .ts 文件正在正确生成,但是当尝试在视频播放器中观看流时,它只播放一定数量的视频。有没有办法在 Java 中正确地提供正在运行的播放列表而不是静态地提供它?

编辑:当使用 python 启动一个基本的 http 服务器时python3 -m http.server,我可以很好地查看流。是否有 Spring Boot 方式来完成相同的任务?

标签: javaspring-bootffmpeghttp-live-streamingplaylist

解决方案


使用 Spring 4.1,您的方法将起作用,没有任何问题。如果您想查看,下面是另一种方法

 @RequestMapping(value = "/VMS-49001/playlist/{listName:.+}")
    public ResponseEntity<byte[]> testphoto() throws IOException {
    InputStream in = servletContext.getResourceAsStream("/images/no_image.jpg");

    final HttpHeaders headers = new HttpHeaders();


    headers.setContentType(MediaType.parseMediaType("application/vnd.apple.mpegurl"));
    headers.setContentDispositionFormData(fileName, fileName);

    return new ResponseEntity<byte[]>(IOUtils.toByteArray(in), headers, HttpStatus.CREATED);
    }

推荐阅读