在Spring MVC中实现视频

时间:2013-02-28 18:28:24

标签: java spring video

我想知道如何在Spring MVC应用程序中实现视频功能。我是否必须使用其他技术,例如jQuery,或Spring是否支持视频功能?

1 个答案:

答案 0 :(得分:0)

Spring Content支持开箱即用的视频流(字节范围)。它支持各种后备存储。使用Spring Content FS(即文件系统的Spring内容),您可以自己创建一个"视频商店"由文件系统支持,并通过HTTP流式传输存储到客户端的视频。

通过start.spring.io或通过IDE spring项目向导(撰写本文时为Spring Boot 1.5.10)创建一个新的Spring Boot项目。添加以下Spring Boot / Content依赖项,以便最终得到: -

<dependencies>
    <!-- Spring Boot -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.3</version>
    </dependency>

    <!-- Spring Content -->
    <dependency>
        <groupId>com.github.paulcwarren</groupId>
        <artifactId>spring-content-fs-boot-starter</artifactId>
        <version>0.0.9</version>
    </dependency>
    <dependency>
        <groupId>com.github.paulcwarren</groupId>
        <artifactId>spring-content-rest-boot-starter</artifactId>
        <version>0.0.9</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

然后在Spring Boot Application类中,创建一个VideoStore。将其注释为`StoreRestResource。这做了两件事;它会导致Spring Content注入此接口的实现(用于文件系统),以及在此接口之上注入REST端点 - 从而使您不必自己编写任何内容: -

    @SpringBootApplication 
    public class DemoApplication {

        public static void main(String[] args) {        
           SpringApplication.run(DemoApplication.class, args);  
        }

        @StoreRestResource(path="videos")   
        public interface VideoStore extends Store<String> {} 
    }

默认情况下,Spring Content(对于文件系统)将在java.io.tmpdir下创建一个商店。因此,您还需要设置SPRING_CONTENT_FS_FILESYSTEM_ROOT环境变量或系统属性,以便为您的&#34;存储&#34;设置稳定的根位置。因此,当您的应用程序/服务重新启动时,它可以再次找到该视频。

将您的视频复制到此&#34; root&#34;地点。启动应用程序,您的视频将可以从以下链接流式传输: -

  

/videos/some-video.mp4

Spring Content也支持其他存储;目前是S3,Mongo的GridFS和JPA(即BLOB)。

它也可以在没有Spring Boot的情况下使用。如果有兴趣让我知道,我可以为您更新答案。