精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

從 0 到 1,帶你用 SpringBoot 打造專屬視頻推流系統!

開發 架構
如果你正在尋找一個高效的視頻推拉流解決方案,那么基于 SpringBoot + Zlm4j + Thymeleaf 的組合無疑是一個非常實用的選擇。

在實際項目中,視頻推流和拉流功能是常見的需求場景,例如遠程監控、無人機實時畫面、在線直播等。最初,我打算通過 Netty 自己實現一套 RTSP 協議的推拉流服務,但在處理 RTSP 解包時遇到了較大瓶頸,自研難度超出了預期。

后來發現了一個更優雅的解決方案 —— Zlm4j。它是基于 ZLMediaKit 封裝的 JNA 接口,能夠非常方便地與 SpringBoot 集成,省去了大量底層處理的工作。這里也特別感謝 ZLMediaKit 與 Zlm4j 的開源貢獻者們,使我們能夠快速落地視頻流服務。

本文將結合代碼,詳細展示如何在 SpringBoot 中搭建一個輕量的推拉流系統,并完成推流測試、播放驗證,最后補充一個基于 Thymeleaf + Bootstrap 的前端播放頁面,幫助大家在實際開發中快速實現類似需求。

代碼集成步驟

引入依賴

項目的核心依賴是 zlm4j 與 jna

  • zlm4j:對 ZLMediaKit 的封裝庫,直接調用核心 API;
  • jna:負責底層調用 ZLMediaKit 的 SDK,不需要單獨安裝 ZLMediaKit 服務。

pom.xml 配置如下:

<dependency>
    <groupId>com.aizuda</groupId>
    <artifactId>zlm4j</artifactId>
    <version>1.0.4</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/zlm4j-1.0.4.jar</systemPath>
</dependency>


<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>5.14.0</version>
</dependency>


<!-- Thymeleaf 模板引擎 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>


<!-- Web 模塊 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置類

在 SpringBoot 中創建一個配置類,負責:

  • 初始化 ZLMApi
  • 開啟 HTTP/RTSP/RTMP/RTP 服務;
  • 注冊 事件監聽器(MK_EVENTS)

代碼如下:

package com.icoderoad.config;


import com.aizuda.zlm4j.core.ZLMApi;
import com.aizuda.zlm4j.structure.MK_EVENTS;
import com.sun.jna.Native;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
public class ZlmServerConfig {


    @Bean
    public ZLMApi zlmApi() {
        // 加載 mk_api 庫
        ZLMApi zlmApi = Native.load("mk_api", ZLMApi.class);
        // 初始化 SDK 環境
        zlmApi.mk_env_init1(1, 1, 1, null, 0, 0, null, 0, null, null);


        // 啟動 HTTP 服務
        zlmApi.mk_http_server_start((short) 7788, 0);
        // 啟動 RTSP 服務
        zlmApi.mk_rtsp_server_start((short) 9758, 0);
        // 啟動 RTMP 服務
        zlmApi.mk_rtmp_server_start((short) 9759, 0);
        // 啟動 RTP 服務
        zlmApi.mk_rtp_server_start((short) 32000);


        return zlmApi;
    }


    @Bean
    public MK_EVENTS mkEvents() {
        return new MK_EVENTS();
    }
}

配置的服務端口如下:

協議

端口

HTTP

7788

RTSP

9758

RTMP

9759

RTP

32000

事件實現

在啟動類中,通過 CommandLineRunner 注冊事件監聽,完成:

  • 推流鑒權:驗證客戶端是否有權限推流;
  • 流狀態變化:監控流的上線/下線。

代碼示例:

package com.icoderoad;


import com.aizuda.zlm4j.core.ZLMApi;
import com.aizuda.zlm4j.structure.MK_EVENTS;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class VideoStreamApplication implements CommandLineRunner {


    @Autowired
    private MK_EVENTS mkEvents;


    @Autowired
    private ZLMApi zlmApi;


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


    @Override
    public void run(String... args) {
        // 推流鑒權事件
        mkEvents.on_mk_media_publish = (url_info, invoker, sender) -> {
            String params = zlmApi.mk_media_info_get_params(url_info);
            System.out.println("鑒權參數:" + params);
            zlmApi.mk_publish_auth_invoker_do(invoker, "", 0, 0);
        };
        zlmApi.mk_events_listen(mkEvents);


        // 流狀態變化事件
        mkEvents.on_mk_media_changed = (regist, sender) -> {
            System.out.println("App: " + zlmApi.mk_media_source_get_app(sender));
            System.out.println("Stream: " + zlmApi.mk_media_source_get_stream(sender));
            System.out.println("Schema: " + zlmApi.mk_media_source_get_schema(sender));
            System.out.println("流狀態改變通知: " + regist);
        };
        zlmApi.mk_events_listen(mkEvents);
    }
}

推流與播放測試

推流命令

通過 FFmpeg 將本地視頻推送到 RTSP 服務端口,并攜帶鑒權參數:

ffmpeg -re -an -i /home/user/videos/input.mp4 -c:v libx264 -f rtsp rtsp://127.0.0.1:9758/stream/1?token=112233

事件輸出

控制臺會打印:

  • 鑒權參數(例如 token 值);
  • 流狀態改變通知(上線/下線)。

播放驗證

使用 VLC 播放器打開推流的 RTMP 地址即可播放:

rtmp://127.0.0.1:9759/stream/1

也可以選擇 HTTP-FLV、HLS、WebRTC 等其他協議進行播放。

前端播放頁面(Thymeleaf + Bootstrap)

為了讓系統更直觀,我們可以在瀏覽器中播放推流視頻。

控制器

創建一個簡單的 Controller,返回播放頁面:

package com.icoderoad.controller;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;


@Controller
public class PlayerController {


    @GetMapping("/player")
    public String player(Model model) {
        // 傳遞推流地址(RTMP/HTTP-FLV/HLS均可)
        model.addAttribute("videoUrl", "http://127.0.0.1:7788/live/stream.flv");
        return "player";
    }
}

頁面模板

<!--src/main/resources/templates/player.html-->
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>視頻播放</title>
    <link  rel="stylesheet">
    <script src="https://cdn.jsdelivr.net/npm/flv.js/dist/flv.min.js"></script>
</head>
<body class="bg-light">


<div class="container mt-5">
    <h3 class="text-center mb-4">實時視頻播放</h3>
    <div class="card shadow rounded-3">
        <div class="card-body">
            <video id="videoElement" class="w-100 rounded-3" controls></video>
        </div>
    </div>
</div>


<script th:inline="javascript">
    let videoUrl = [[${videoUrl}]];
    if (flvjs.isSupported()) {
        let videoElement = document.getElementById('videoElement');
        let flvPlayer = flvjs.createPlayer({
            type: 'flv',
            url: videoUrl
        });
        flvPlayer.attachMediaElement(videoElement);
        flvPlayer.load();
        flvPlayer.play();
    }
</script>


</body>
</html>

這里用到了 flv.js 播放 HTTP-FLV 視頻流,同時配合 Bootstrap 做了頁面美化。

總結

通過以上步驟,我們在 SpringBoot 項目中快速集成了 Zlm4j,實現了一個輕量的視頻推拉流系統,并且提供了前端可視化播放頁面:

  1. 后端
  • 依賴配置簡潔,直接調用 zlm4j;
  • 配置類快速啟動多協議服務;
  • 事件監聽支持鑒權與流狀態回調。
  1. 前端
  • 基于 Thymeleaf + Bootstrap
  • 使用 flv.js 播放視頻流;
  • 頁面簡潔美觀,支持擴展。

這種方式不僅降低了開發成本,還能快速應用到實際項目中,未來也可以擴展錄制、轉碼、直播間管理等功能。如果你正在尋找一個高效的視頻推拉流解決方案,那么基于 SpringBoot + Zlm4j + Thymeleaf 的組合無疑是一個非常實用的選擇。

責任編輯:武曉燕 來源: 路條編程
相關推薦

2025-11-05 02:11:00

2025-10-09 02:55:00

SpringBoot短視頻向量搜索

2016-11-28 16:23:23

戴爾

2022-05-09 08:35:43

面試產品互聯網

2021-08-03 09:07:39

GolangGrpc服務

2019-07-31 10:18:17

Web 開發Python

2022-02-09 20:50:46

短鏈系統場景

2023-11-15 08:14:35

2021-01-26 05:13:12

錕斤拷String 二進制

2021-03-10 09:21:00

Spring開源框架Spring基礎知識

2021-07-01 07:03:32

開發Webpack代碼

2023-03-06 11:35:55

經營分析體系

2022-06-10 14:52:46

開源項目字節跳動

2020-11-12 08:41:35

Linux系統

2021-03-10 09:52:38

開發技能架構

2024-12-02 11:24:30

Docker編排技術

2022-03-15 11:51:00

決策分析模型

2022-11-03 11:31:43

結構分析法監測

2025-11-11 04:15:00

FastMCPMCP服務器

2019-01-03 11:49:11

華為云
點贊
收藏

51CTO技術棧公眾號

国产九九九九九| 国产在线观看一区二区三区| 亚洲av无码一区东京热久久| 理论不卡电影大全神| 久久久国产精华| 91在线观看免费观看| 日韩免费一级片| 日韩国产综合| 亚洲福利视频在线| 免费看污污网站| 污污的网站在线免费观看| 91丨九色丨蝌蚪丨老版| 国产中文日韩欧美| 综合激情网五月| 亚洲色图插插| 亚洲欧洲日韩国产| 日韩精品xxx| 日韩毛片一区| 天天亚洲美女在线视频| 亚洲最大免费| 五十路在线视频| 91久久综合| 美日韩在线视频| 免费看黄色三级| 天堂av一区二区三区在线播放| 亚洲国产精品精华液ab| 亚洲一区二区三区成人在线视频精品| 国产熟女一区二区| 成人资源在线| 欧美日韩国产首页在线观看| 国产a级一级片| 黄污视频在线观看| 中文字幕视频一区二区三区久| 国产日韩中文字幕在线| 视频一区二区三区四区五区| 欧美激情五月| 久久久国产精品亚洲一区| 男女做爰猛烈刺激| 日韩在线麻豆| 亚洲成年人影院在线| 成人性生交视频免费观看| 成人亚洲综合| 在线欧美日韩精品| 免费日韩视频在线观看| 精品三级久久| 精品国产鲁一鲁一区二区张丽| 国产欧美韩日| 午夜精品久久久久久久96蜜桃| 国产一区久久| 超碰97人人做人人爱少妇| 日本美女黄色一级片| 日韩国产专区| 日韩亚洲综合在线| sm捆绑调教视频| 亚洲澳门在线| 欧美插天视频在线播放| 极品久久久久久| 99久久夜色精品国产亚洲96| 色婷婷av一区二区三区在线观看 | av免费不卡国产观看| 亚洲人xxxx| 欧美 国产 精品| 性欧美videos高清hd4k| 亚洲综合在线观看视频| 美女扒开大腿让男人桶| av日韩国产| 色综合色综合色综合色综合色综合 | 极品国产91在线网站| 久久久久久色| 国产剧情日韩欧美| 国产毛片一区二区三区va在线| 亚洲私拍自拍| 91av国产在线| 中文字幕av久久爽| 九九**精品视频免费播放| 成人激情av在线| 精品国产区一区二| av一二三不卡影片| 日本免费高清一区| 黄色在线免费| 欧美日韩精品在线| 婷婷丁香激情网| 精品午夜视频| 日韩av最新在线观看| 亚洲精品国产一区黑色丝袜 | 日韩黄色免费电影| 国产精品嫩草视频| 99国产揄拍国产精品| 成人晚上爱看视频| 性欧美.com| 国产网红女主播精品视频| 疯狂蹂躏欧美一区二区精品| 国产一二三区av| 一区二区三区在线免费看| 日韩成人av在线| www久久久久久久| 欧美三区在线| 国产精品嫩草影院一区二区| 精品二区在线观看| 国产色一区二区| 中文字幕人成一区| 中文在线最新版地址| 欧美日韩不卡视频| 右手影院亚洲欧美| 欧美精品1区| 国产精品成人aaaaa网站| www.久久伊人| 国产精品久久久久久久久图文区 | 国产三级在线免费| 亚洲欧美韩国综合色| 男人靠女人免费视频网站| 日韩欧国产精品一区综合无码| 在线免费观看成人短视频| 三上悠亚 电影| 不卡av一区二区| 98精品国产自产在线观看| 国产精品探花视频| 欧美激情一区二区三区| 国产一区二区三区乱码| 久久人体av| 亚洲欧洲激情在线| 国产成人自拍视频在线| 国内精品久久久久影院一蜜桃| 成人av色在线观看| 国产小视频福利在线| 精品久久久国产| 久久久九九九热| 日韩黄色大片网站| 国产精品久久久久久五月尺| 视频一区二区三区在线看免费看| 久久综合网色—综合色88| 国产奶头好大揉着好爽视频| 欧美黑吊大战白妞| 国产精品对白久久久久粗| www.欧美精品| 五月天激情国产综合婷婷婷| 成人av免费在线播放| 17c丨国产丨精品视频| 国产又粗又猛又爽又黄的视频一| 欧美亚洲黄色| 亚洲精品视频在线观看视频| 国产午夜精品无码一区二区| 国产资源精品在线观看| 亚洲啪啪av| 3d欧美精品动漫xxxx无尽| 国产网站欧美日韩免费精品在线观看| www.黄色网| 激情亚洲另类图片区小说区| 欧美高清无遮挡| 国产xxxx在线观看| 亚洲欧美区自拍先锋| 中文字幕资源在线观看| 欧美高清视频手机在在线| 国产欧美精品一区二区| 国产精品久久久久一区二区国产| 综合久久给合久久狠狠狠97色 | 欧美性猛交xxxx富婆| 国产麻豆剧传媒精品国产av| 亚洲国内自拍| 99在线热播| 17videosex性欧美| 亚洲大胆人体av| 日韩成人一区二区三区| www.欧美亚洲| 亚洲自偷自拍熟女另类| 免费不卡中文字幕在线| 国产精品日韩在线一区| 日本免费在线观看| 欧美一区二区三区日韩| 久久无码精品丰满人妻| 不卡影院免费观看| 成人羞羞国产免费网站| 日韩久久精品网| 91成人理论电影| 擼擼色在线看观看免费| 国产亚洲精品久久久久久777| 欧美成人三级在线观看| av电影天堂一区二区在线| 国产综合av在线| 欧美精选一区二区三区| 成人欧美一区二区三区黑人| 在线观看男女av免费网址| 亚洲第一视频网站| 日韩国产成人在线| 亚洲欧洲日本在线| 国产激情第一页| 轻轻草成人在线| 日韩一级免费看| 伊人成综合网yiren22| 成人写真视频福利网| 91制片在线观看| 亚洲天堂网在线观看| 国产色视频在线| 欧美日韩中文字幕综合视频| 国产三级aaa| 94色蜜桃网一区二区三区| www.超碰97.com| 日韩视频在线一区二区三区| 香蕉久久夜色| 欧美日韩导航| 91影视免费在线观看| 丝袜老师在线| 美女999久久久精品视频 | 亚洲成色www8888| 中文字幕av影视| 黄色成人av在线| 国产一区二区精彩视频| 久久久青草青青国产亚洲免观| www国产无套内射com| 精品国产91乱码一区二区三区四区 | 在线日韩av| 国产高清精品软男同| 网友自拍一区| 春色成人在线视频| 天天综合91| 国产激情久久久久| 国产精选在线| 欧美成aaa人片免费看| 搞黄视频在线观看| 亚洲欧美中文字幕| 免费观看的毛片| 欧美一区二区三区免费视频| 糖心vlog精品一区二区| 欧美午夜宅男影院在线观看| 免费在线视频一区二区| 日韩美女视频19| 少妇太紧太爽又黄又硬又爽小说| 美女高潮久久久| 黑鬼大战白妞高潮喷白浆| 亚洲国产精品一区制服丝袜| 久久精品国产精品亚洲精品色| 日韩一区二区三区精品视频第3页| 欧美日韩成人在线播放| 在线视频自拍| 永久免费看mv网站入口亚洲| 欧美xxx.com| 亚洲精选一区二区| 天堂v视频永久在线播放| 欧美精品一区二区三区视频| 国产成人精品毛片| 日韩一级大片在线| 精品国自产在线观看| 8x福利精品第一导航| 一区二区国产欧美| 欧美猛男男办公室激情| 一卡二卡在线视频| 在线不卡a资源高清| 国产精品美女一区| 欧美一区二区三区爱爱| 国产av无码专区亚洲av麻豆| 在线综合亚洲欧美在线视频| 国产精品熟女久久久久久| 日韩一区二区三区四区五区六区| 午夜精品三级久久久有码| 婷婷夜色潮精品综合在线| 国产精品99无码一区二区| 性做久久久久久久久| 久久精品国产成人av| 在线观看日韩av先锋影音电影院| 欧美爱爱免费视频| 亚洲免费在线电影| 欧美成人aaaaⅴ片在线看| 天天av天天翘天天综合网| 男人天堂视频在线| 欧美日韩成人综合在线一区二区| 欧美片一区二区| 红桃视频成人在线观看| 亚洲精品国产欧美在线观看| 欧美日韩aaa| 超碰在线人人干| 亚洲精品第一页| 韩国福利在线| 日韩中文字幕不卡视频| 成人在线观看亚洲| 久久久久久久国产精品视频| 欧美日韩在线观看首页| 国产精品久在线观看| 国产精品一区二区美女视频免费看| 欧美亚洲日本网站| 中文字幕在线免费观看视频| 国产欧美日韩精品在线观看| 9l亚洲国产成人精品一区二三| 国产精品自拍小视频| 日本精品在线播放| 欧美福利一区二区三区| 天天综合精品| 免费av观看网址| 蜜臀精品一区二区三区在线观看 | 中文字幕系列一区| 91在线视频精品| 亚洲精品进入| 91精品一区二区三区四区| 欧美亚洲专区| 国产999免费视频| 国产偷国产偷精品高清尤物| 午夜69成人做爰视频| 欧美日韩亚洲精品内裤| 国产视频在线观看视频| 亚洲欧美制服第一页| 日本高清视频在线播放| 97视频在线观看网址| 亚洲精品aaa| 日本精品视频一区| 在线看片成人| 在线观看av免费观看| 久久九九久精品国产免费直播| 日韩中文字幕电影| 依依成人综合视频| 中文字幕 欧美激情| 欧美va亚洲va在线观看蝴蝶网| www.色播.com| 最新亚洲国产精品| 正在播放日韩精品| 国产精品免费一区二区| 99久久精品网| 男女爽爽爽视频| 91香蕉视频污| 99视频在线看| 日韩精品中文字幕一区| av在线天堂播放| 日韩av免费在线看| 欧美一区二区三区红桃小说| 亚洲中文字幕无码一区二区三区| 悠悠资源网久久精品| 日日夜夜精品视频免费观看 | 91精品视频网站| 狠狠色狠狠色综合婷婷tag| 亚洲美免无码中文字幕在线 | 手机av在线网| 亚洲国产精品ⅴa在线观看| 天天综合网入口| 亚洲精品国产美女| 99riav视频在线观看| www.成人三级视频| 中文字幕日韩一区二区不卡 | 韩国成人一区| 在线观看亚洲| 少妇伦子伦精品无吗| 一区二区在线观看免费| av中文字幕在线免费观看| 麻豆乱码国产一区二区三区| 成人在线免费av| 亚洲图色在线| 久久er99热精品一区二区| 国产精品情侣呻吟对白视频| 欧美亚洲精品一区| av中文资源在线| 成人免费黄色网| 一区二区在线影院| 成年人看片网站| 亚洲不卡av一区二区三区| 免费成人在线看| 日本亚洲精品在线观看| 国产精选一区| 性欧美1819| 亚洲欧美一区二区三区孕妇| 国产成人免费看一级大黄| 欧美成人三级视频网站| 99久久人爽人人添人人澡| 日韩精品一区在线视频| 91色视频在线| 免费一级a毛片| 日韩中文在线不卡| 亚洲精品一区二区三区中文字幕 | 自拍日韩欧美| 蜜臀aⅴ国产精品久久久国产老师| 国产日韩欧美a| 亚洲天堂网在线视频| 欧美成人全部免费| 日韩精品免费一区二区三区竹菊| 黄色录像特级片| 成人午夜大片免费观看| 日本熟女毛茸茸| 中文字幕日韩av| 97久久亚洲| 国产男女激情视频| 综合婷婷亚洲小说| 手机在线不卡av| 国产国语刺激对白av不卡| 欧美日本在线| 亚洲精品中文字幕在线播放| 在线观看www91| 欧美性video| 欧洲一区二区日韩在线视频观看免费 | 国产精品入口麻豆九色| 99精品在线视频观看| 97av在线视频| 欧美第十八页| 97精品人妻一区二区三区蜜桃| 亚洲人成小说网站色在线| 人妻中文字幕一区| 国产精品中文久久久久久久| 国产在线成人| 美国黑人一级大黄| 欧美成人一区二区三区片免费 | 久久人人爽人人| 国产探花一区| 91人妻一区二区| 欧美年轻男男videosbes| 九色porny自拍视频在线观看|