Unity引擎播放HLS自適應碼率流媒體視頻

??大家好,我是阿趙。今天來學習一下Unity引擎怎樣播放自適應碼率視頻的方法。

一、 HLS是什么

在這里插入圖片描述

??HLS是什么,各位可以自己百度一下。簡單的概括,HLS是一種自適應碼率流媒體傳輸協議,實現的是分片下載和動態碼率切換。
它的原理是把一段視頻切分開很多段,然后分段加載,如果遇到網速不好或者其他適應性問題,可以動態的切換到不同的碼率去播放。

二、 視頻怎樣轉換HLS

??如果需要本地把mp4之類的文件轉換成HLS協議播放,需要用到ffmpeg。
可以去官網下載:https://ffmpeg.org/
下載的時候,比如是Windows系統,可以選擇下面的Windows,然后選擇一個別人build好的exe版本:
在這里插入圖片描述

??當下載完成之后,解壓縮,會是這樣:
在這里插入圖片描述

??其中bin文件夾里面會有exe可執行文件:
在這里插入圖片描述

??接下來使用ffmpeg來轉換視頻試試:
比如我拿了一個這樣的mp4文件:
在這里插入圖片描述

??然后用cmd控制臺找到ffmpeg.exe存放的路徑,然后:

ffmpeg.exe -i d:/video/orig/Cones.mp4 -codec: copy -start_number 0 -hls_time 10 -hls_list_size 0 -f hls d:/video/hls/Cones.m3u8

??這個命令的意思是,我的原始mp4文件放在d:/video/orig/Cones.mp4,然后想要轉換后的文件放在d:/video/hls/Cones.m3u8,然后是打算把視頻切片成10秒一段。
轉換后的文件是這樣的,包括一個m3u8文件,然后還有一個或者多個ts文件。
在這里插入圖片描述

??這里只有一個ts文件,是因為我選擇的這個mp4文件本身就比較短,不到10秒,所以只能剪出一段。于是我改一下,改成3秒一段:

ffmpeg.exe -i d:/video/orig/Cones.mp4 -codec: copy -start_number 0 -hls_time 3 -hls_list_size 0 -f hls d:/video/hls/Cones.m3u8

??這時候就剪出3個ts文件了:
在這里插入圖片描述

??打開m3u8文件看看:
在這里插入圖片描述

??里面只是幾率了這個視頻的一些情況和ts文件的分布。
所以實際播放的視頻是在ts文件里面的。

三、 Unity引擎怎樣播放HLS

??Unity自帶的VideoPlayer用于播放mp4視頻是非常好用的,我們可以試試它是否能播放HLS的m3u8文件:
在這里插入圖片描述

??很可惜,VideoPlayer是不能播放m3u8文件的:
在這里插入圖片描述

??于是這里要用到一個視頻播放插件,叫做AVPro Video:
在這里插入圖片描述

??具體的AVPro用法不是這次的重點,所以請自行下載和查詢。
設置一下AVPro的MediaPlayer,MediaSource設置成Path,然后類型改成Absolute PathOrUrl,把剛才不能播放的m3u8文件填入MediaPlayer里面:

在這里插入圖片描述

??可以看到,這次在Unity引擎里面已經順利的播放出HLS協議的m3u8文件了:
在這里插入圖片描述

四、 WebGL怎樣播放HLS

??下面試試把Unity項目導出成WebGL還保持播放視頻。先把剛才的項目試試導出WebGL:

在這里插入圖片描述

??由于WebGL的特殊性,所以在MediaPlayer上面要選擇一下平臺特性,找到WebGL,設置External Library為Hls js。
在這里插入圖片描述

??這里的意思是,需要通過Hls Js文件來播放WebGL下的視頻。

??這里主要需要hls.min.js
可以去這里下載:https://gitee.com/mirrors/hls-js/
下載下來之后會找到它:
在這里插入圖片描述

??這時候用Unity打包WebGL,打包完是這樣的:
在這里插入圖片描述

??然后打開TemplateData文件夾,把hls.min.js文件放到里面:
在這里插入圖片描述

??再用編輯器打開Index.html:
在這里插入圖片描述

??在head標簽里面加上一句調用:

<script src="TemplateData/hls.min.js"></script>

??由于WebGL是不能直接在本地播放的,所以把剛才生成的文件全部放到服務器去,比如本地搭一個阿帕奇服務器,這時候可以通過ip地址去訪問剛才的index.html。這個時候,網頁打開了,會看到視頻并沒有播放,而是停留在了第一幀:
在這里插入圖片描述

??這里有個WebGL本身的問題,就是視頻和音頻不能自己播放,要在用戶操作后才能播放。為了測試,我簡單的加了個播放按鈕,點擊之后,視頻就正常開始播放了:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919280.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919280.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919280.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Flink 源碼系列 - 前言

Flink 源碼系列 - 前言 &#x1f680; 為什么要學習 Flink 源碼&#xff1f; Apache Flink 作為當前最流行的流式計算框架之一&#xff0c;其源碼體系極其龐大。根據統計&#xff0c;Flink 項目包含&#xff1a; Java 文件總行數&#xff1a;232萬行有效代碼行數&#xff1a…

Rust:實現僅通過索引(序數)導出 DLL 函數的功能

在 Rust 中&#xff0c;可以通過手動控制導出來實現僅通過索引&#xff08;序數&#xff09;導出 DLL 函數的功能。以下是具體方法和完整步驟&#xff1a;解決方案 通過結合 .def 文件&#xff08;模塊定義文件&#xff09;和 MSVC 鏈接器參數來實現函數名隱藏&#xff0c;只暴…

部分網站記錄

Gradle多渠道打包[umeng] https://www.jianshu.com/p/8b8fdd37bf26 介紹在app的build.gradle設置produceFlavors&#xff0c;一鍵打包所有環境的命令 Android 知識圖譜 https://upload-images.jianshu.io/upload_images/19956127-1b214e26967dacc6.jpg 百度的語音識別 https:…

【速通】深度學習模型調試系統化方法論:從問題定位到性能優化

深度學習模型調試的系統化方法論&#xff1a;從問題定位到性能優化 文章目錄深度學習模型調試的系統化方法論&#xff1a;從問題定位到性能優化摘要1. 引言2. 模型調試的層次化框架2.1 三層調試架構2.2 調試優先級原則3. 系統化調試流程3.1 快速診斷清單3.2 最小可復現案例 (MR…

Nacos-6--Naco的QUIC協議實現高可用的工作原理

QUIC&#xff08;Quick UDP Internet Connections&#xff09;是一種基于UDP的傳輸層協議&#xff0c;旨在減少網絡延遲、提升安全性并優化多路復用能力。它由Google開發&#xff0c;后被IETF標準化為HTTP/3的底層協議。 1、QUIC是什么&#xff1f; QUIC&#xff08;Quick UDP …

python實現pdfs合并

靈感來源于博主正在學408&#xff0c;在搞到視頻課對應的ppt.pdf后發現pdf是按小節的&#xff0c;以至于每章有5-10甚至更多&#xff0c;這可太繁瑣了&#xff0c;我想要一章一個pdf就可以了&#xff0c;于是淺淺查了幾個CSDN發現使用python的要么收費要么要vip&#xff0c;不用…

51單片機-驅動74HC595芯片實現IO口擴展模塊教程

本章概述思維導圖&#xff1a; 51單片機驅動74HC595芯片實現IO口擴展 74HC595芯片簡介 74HC595是一款8位串行輸入、并行輸出的移位寄存器&#xff0c;屬于硅結構的CMOS器件。它能將串行輸入數據轉換為并行輸出&#xff0c;其中并行輸出為三態輸出&#xff08;即高電平、低電平…

錄音轉文字,如何做到“快、準、狠“多格式通吃?

MP3、FLAC、M4A、OGG、WAV、MP4等多種常見音頻格式&#xff0c;一鍵精準轉成文字&#xff0c;讓辦公效率翻倍提升&#xff01;&#x1f525; 真實痛點場景&#xff1a;告別低效&#xff0c;迎接智能辦公緊急會議紀要&#xff0c;爭分奪秒&#xff01;上午10點剛結束一場跨部門腦…

【秋招】2025.08.16京東秋招機考真題

?? 點擊直達筆試專欄 ??《大廠筆試突圍》 ?? 春秋招筆試突圍在線OJ ?? 筆試突圍在線刷題 bishipass.com 京東 題目一:魔法水晶陣列能量優化 1??:理解逆序對的變化規律,分析區間操作對逆序對的影響 2??:選擇后綴區間避免產生新的逆序對,只最大化消除的逆序對…

RocksDB 解密可逆哈希:BijectiveHash的設計奧秘

BijectiveHash&#xff08;雙射哈希&#xff0c;即可逆哈希&#xff09;的設計精髓在于它借鑒了現代密碼學和高性能哈希函數中的核心思想&#xff0c;但目標并非加密&#xff0c;而是實現一種無沖突、可逆的置換&#xff08;Permutation&#xff09;。可逆哈希是什么&#xff0…

05.用戶和組管理命令

用戶和組管理命令用戶和組管理命令1. getent2. useradd3. usermod4. userdel5. id6. su7. passwd8. chage9. groupadd10. groupmod11. groupdel12. gpasswd13. groupmems用戶和組管理命令 用戶和組的主要配置文件 /etc/passwd&#xff1a;用戶及其屬性信息(名稱、UID、主組ID…

go 多版本共存【goup + alias方案】

一、需求背景 以go1.21為主&#xff0c;臨時可以快速切換到go1.23,且只有當前窗口生效 二、安裝 安裝 goup go install github.com/owenthereal/goup/cmd/gouplatest安裝 go1.23 # 注意這里是安裝新的sdk,如果你本地存在相同版本的話&#xff0c;應該保持統一用goup安裝的 goup…

DR200差速移動機器人的多功能感知系統與多場景應用

DR200差速移動機器人平臺是一款基于室內平地的差速轉向移動機器人底盤&#xff0c;主要針對教育教學、超市移動促銷、無人配送、室內倉儲、室內巡檢、物流搬運等行業。整套底盤采用了4個萬向輪和雙驅動輪差速驅動結構&#xff0c;間驅動輪帶直流無刷伺服電機。整套結構采用了擺…

基于ZLMediaKit的大疆上云視頻流服務集成方案

引言 隨著無人機技術的快速發展&#xff0c;大疆&#xff08;DJI&#xff09;設備產生的高清視頻流需要高效、低延遲的云端處理方案。傳統基于SRS的視頻流服務在多協議支持和并發性能上存在局限&#xff0c;而ZLMediaKit作為一款高性能流媒體服務框架&#xff0c;憑借其多協議支…

用 Python 實現一個“小型 ReAct 智能體”:思維鏈 + 工具調用 + 環境交互

在大語言模型&#xff08;LLM&#xff09;的應用開發中&#xff0c;如何讓模型具備調用外部工具的能力是一個關鍵問題。我們不希望模型只是“生成答案”&#xff0c;而是能像一個智能體&#xff08;Agent&#xff09;一樣&#xff0c;按照推理鏈條自主決定調用搜索、計算、或數…

集成電路學習:什么是SIFT尺度不變特征變換

SIFT:尺度不變特征變換 SIFT(尺度不變特征變換,Scale Invariant Feature Transform)是一種在圖像處理和計算機視覺領域廣泛應用的算法,由David Lowe在1999年提出。該算法能夠在圖像的不同尺度、旋轉和光照條件下保持特征不變性,從而提取出獨特的特征點,并用于圖像…

短視頻流量|基于Java+vue的短視頻流量數據分析系統(源碼+數據庫+文檔)

短視頻流量數據分析系統 基于SprinBootvue的短視頻流量數據分析系統 一、前言 二、系統設計 三、系統功能設計 系統功能模塊 管理員功能模塊實現 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算機畢設選題推薦 八、源碼獲取&#xff1a; 博主介紹&#xff…

【無標題】卷軸屏手機前瞻:三星/京東方柔性屏耐久性測試進展

卷軸屏手機前瞻&#xff1a;三星/京東方柔性屏耐久性測試進展卷軸屏手機的產業化突破臨近2025年全球柔性屏市場規模預計突破186億美元&#xff0c;其中卷軸屏技術正從概念走向量產。三星顯示近期宣布新一代柔性OLED面板通過50萬次折疊認證&#xff0c;日均折疊200次可使用6年以…

Git 入門指南:核心概念與常用命令全解析

Git 入門指南&#xff1a;核心概念與常用命令全解析前言一、Git相關概念1.1 工作目錄1.2 暫存區1.3 本地倉庫1.3 遠程倉庫1.3.1 首次提交到遠程倉庫提示輸入用戶名密碼1.3.2 解決方法二、Git常用命令2.1 配置命令2.1.1 查看當前 Git 配置的所有信息2.1.2 查看系統全局配置2.1.3…

懸賞任務網站源碼多平臺兼職賺錢搭建圖解

功能詳細說明 &#xff08;一&#xff09;登錄與注冊 1、登錄&#xff1a;打開系統用戶端&#xff0c;輸入已注冊的手機號和密碼進行登錄。 若為忘記密碼&#xff0c;可通過 “找回密碼” 功能&#xff0c;按提示驗證身份后重置密碼登錄。 2、注冊&#xff1a;點擊 “注冊” 按…