主頁 >  其他 > DASH標準&ABR演算法介紹

DASH標準&ABR演算法介紹

2021-11-11 09:25:23 其他

文章目錄

  • 1. What is DASH?
    • 1.1 MPD檔案
    • 1.2 QoE & ABR演算法
    • 附:VBR & AVC/H.264編碼
    • 附:DASH白皮書結構 [2.c]
  • 2. Why DASH?
    • 2.1 HAS vs. 傳統方案
    • 2.2 DASH vs. other HAS
    • 2.3 DASH vs. others
    • 2.4 DASH的劣勢
  • 3. 學術研究
    • 3.1 多客戶端的競爭/穩定性問題
    • 3.2 恒定質量的流
    • 3.3 QoE的優化與衡量
      • 3.3.1 QoE優化
      • 3.3.2 QoE衡量
    • 3.4 目標間多媒體同步
  • 4. 實際部署(個人經驗)
  • 相關資料


(注:本檔案主要包含DASH與點播相關的內容,對直播相關的部分涉及不多,)

1. What is DASH?

DASH又稱MPEG-DASH,全稱為Dynamic Adaptive Streaming over HTTP(基于HTTP的動態自適應流),
DASH的架構如下圖所示[5.b],藍色部分為標準指定內容,紅色部分可以自由實作:

在這里插入圖片描述
在DASH中,一個視頻會被編碼為多個不同的版本(稱為Representation),通常對應不同的解析度(如480p、720p、1080p)和平均碼率(如1.85Mbps、2.85Mbps、4.3Mbps),一個完整的視頻被切分為多個視頻塊(稱為segment/chunk/GoP),包含幾秒的視頻內容(通常2~5s,時長相等),DASH使用MPD檔案(Media Presentation Description)來描述視頻資訊,

所有視頻內容與MPD檔案保存于服務器上,在開啟視頻會話時,客戶端首先請求并決議MPD檔案,獲取服務器上的視頻資訊,之后,客戶端每次使用HTTP GET請求一個視頻塊,通過ABR演算法(Adaptive Bitrate,自適應碼率)決定所請求視頻塊的碼率級別,下載相應視頻塊并使用播放器播放視頻,

1.1 MPD檔案

DASH標準的核心內容之一是對MPD檔案格式的規范,MPD檔案是一種用XML語言描述的分層結構,其結構如下圖[5.b]:

在這里插入圖片描述
關鍵欄位:

  • Period:代表一個時間段,包含開始時間和持續時間,由一個或多個Adaption Set組成
  • Adaption Set:包含不同媒體型別的不同編碼版本(Representation),比如一個Adaption Set包含視頻的多個碼率版本,另一個Adaption Set包含音頻的多個碼率版本
  • Representation:表示同一媒體內容的不同編碼(碼率、解析度、信道數量等)版本,由一個或多個Segment組成
  • Segment:代表媒體塊,每個Segment都有一個URI,可以使用HTTP GET(or with byte ranges)下載


一個真實的MPD檔案內容如下,該視頻由FFMpeg編碼、GPAC(MP4Box)切片生成,總時長9m56.459s(“mediaPresentationDuration”, “duration”),每個視頻塊時長2s,幀率24fps,比例為16:9,共分為144p、240p、360p、480p、720p、1080p六個解析度,對應六擋平均碼率(“bandwidth”),格式為mp4,附帶的音頻只有一個版本,

<?xml version="1.0"?>
<!-- MPD file Generated with GPAC version 0.8.0-rev178-g44c48d630-master  at 2021-03-07T05:59:46.633Z-->
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" minBufferTime="PT1.500S" type="static" mediaPresentationDuration="PT0H9M56.459S" maxSubsegmentDuration="PT0H0M2.458S" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011,http://dashif.org/guidelines/dash264">
 <ProgramInformation moreInformationURL="http://gpac.io">
  <Title>bbb.mpd generated by GPAC</Title>
 </ProgramInformation>

 <Period duration="PT0H9M56.459S">
  <AdaptationSet segmentAlignment="true" maxWidth="1920" maxHeight="1080" maxFrameRate="24" par="16:9" lang="und" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
   <Representation id="1" mimeType="video/mp4" codecs="avc1.640028" width="1920" height="1080" frameRate="24" sar="1:1" bandwidth="4258031">
    <BaseURL>BBB1920x1080_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="916-4523">
     <Initialization range="0-915"/>
    </SegmentBase>
   </Representation>
   <Representation id="2" mimeType="video/mp4" codecs="avc1.64001F" width="1280" height="720" frameRate="24" sar="1:1" bandwidth="2847609">
    <BaseURL>BBB1280x720_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="915-4522">
     <Initialization range="0-914"/>
    </SegmentBase>
   </Representation>
   <Representation id="3" mimeType="video/mp4" codecs="avc1.64001F" width="896" height="504" frameRate="24" sar="1:1" bandwidth="1878775">
    <BaseURL>BBB896x504_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="915-4522">
     <Initialization range="0-914"/>
    </SegmentBase>
   </Representation>
   <Representation id="4" mimeType="video/mp4" codecs="avc1.64001E" width="640" height="360" frameRate="24" sar="1:1" bandwidth="1240660">
    <BaseURL>BBB640x360_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="915-4522">
     <Initialization range="0-914"/>
    </SegmentBase>
   </Representation>
   <Representation id="5" mimeType="video/mp4" codecs="avc1.640014" width="416" height="234" frameRate="24" sar="1:1" bandwidth="757000">
    <BaseURL>BBB416x234_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="915-4522">
     <Initialization range="0-914"/>
    </SegmentBase>
   </Representation>
   <Representation id="6" mimeType="video/mp4" codecs="avc1.64000D" width="256" height="144" frameRate="24" sar="1:1" bandwidth="294059">
    <BaseURL>BBB256x144_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="914-4521">
     <Initialization range="0-913"/>
    </SegmentBase>
   </Representation>
  </AdaptationSet>
  <AdaptationSet segmentAlignment="true" lang="und" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
   <Representation id="7" mimeType="audio/mp4" codecs="mp4a.40.2" audioSamplingRate="48000" bandwidth="139642">
    <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
    <BaseURL>BBB_dashinit.mp4</BaseURL>
    <SegmentBase indexRangeExact="true" indexRange="856-4475">
     <Initialization range="0-855"/>
    </SegmentBase>
   </Representation>
  </AdaptationSet>
 </Period>
</MPD>

1.2 QoE & ABR演算法

ABR演算法的設計目標是提高用戶的QoE(Quality of Experience,體驗質量),點播視頻的QoE主要包括:

  • 高視頻質量(一般用碼率表征)
  • 低卡頓時間
  • 少質量切換
  • 低啟動時延


ABR演算法將網路吞吐量及播放器Buffer時長等資訊作為輸入,輸出下一個視頻塊的碼率級別,DASH標準并沒有規定ABR的實作方式,由客戶端自由實作,ABR演算法在DASH中的結構如下圖所示(From Neural Adaptive Video Streaming with Pensieve | SIGCOMM’17):

在這里插入圖片描述
最直觀的ABR邏輯是選擇不高于預測吞吐量的最高碼率的視頻,該方法稱為Rate-based(RB),

附:VBR & AVC/H.264編碼

早期的視頻編碼方案均為CBR(Constant Bitrate,固定碼率),即整個視頻的所有片段的碼率都幾乎一致,
后來出現了VBR編碼(Variable Bitrate,可變碼率),可以根據畫面變化對不同的幀進行壓縮,AVC/H.264即為一種廣泛應用的VBR編碼方案,

在這里插入圖片描述
如圖所示,VBR編碼后,一個GoP(Group of Pictures)內包含一個I幀和多個P幀(*可能還有B幀),I幀可以獨立解碼為完整圖片,P幀則根據與I幀之間的差異生成,需要依賴I幀解碼,VBR可以對相對靜止或者復雜度較低的畫面使用較少的位元組進行編碼,因此其優勢在于降低了視頻壓縮的資料量,

下圖展示了不同解析度下VBR視頻的塊碼率變化(From ABR Streaming of VBR-encoded Videos: Characterization, Challenges, and Solutions | CoNEXT’18):

  • *塊碼率=塊大小/塊時長,在視頻塊等長的情況下,塊碼率取決于塊大小

在這里插入圖片描述
對于VBR編碼的視頻而言,通常所說的視頻碼率指的是整個視頻的平均碼率,視頻解析度越高,平均碼率越高,對于單個視頻,其視頻塊大小的變化程度非常劇烈,因為視頻塊大小與其包含的畫面復雜度呈正相關,

VBR編碼對于ABR演算法設計也提出了新的挑戰:播放器Buffer的變化,既取決于網路的動態性,也取決于視頻內容的動態性,

附:DASH白皮書結構 [2.c]

  1. Media presentation description and segment formats
  2. Reference software and conformance
  3. Implementation guidelines
  4. Format Independent Segment encryption and authentication
  5. Server and network assisted DASH (SAND)
  6. DASH with Server Push and WebSockets
  7. Delivery of CMAF content with DASH
  8. Session based DASH operation

2. Why DASH?

2.1 HAS vs. 傳統方案

傳統視頻傳輸方案基于UDP,HAS(HTTP Adaptive Streaming)基于TCP進行視頻傳輸,

設計對比 [5.b] :

  • 傳統的流傳輸:服務器向客戶端push,在服務器端實作ABR(下文會講)——>增大了服務器的復雜度和運算壓力
  • HAS:將媒體內容看作普通Web資源,由客戶端向服務器pull,在客戶端實作分布式ABR

在這里插入圖片描述
架構對比[5.b] :
在這里插入圖片描述
HAS的優勢,首先在于HTTP用于媒體傳輸的優勢[5.b] :

  • 穿越NAT和防火墻
  • 可以利用傳統的Web服務器及網路快取(如CDN)
  • 客戶端端維護播放會話狀態,服務器端不需要維護任何狀態,因此客戶端可以從不同服務器下載視頻且不會影響系統的擴展性
  • 客戶端與服務器間不需要持久連接,提高了系統的可擴展性,且降低了實作和部署開銷


其次,HAS允許客戶端根據網路變化請求不同碼率的視頻,提高了帶寬利用率,帶來了QoE的提高,

2.2 DASH vs. other HAS

在DASH之前,HAS主要為各公司的私有方案:

  • 微軟:MSS(Smooth Streaming)
  • 蘋果:HLS(HTTP Live Streaming)
  • Adobe:HDS(HTTP Dynamic Streaming)、OSMF(Open Source Media Framework)
  • Akamai:HD


這些方案的思路和技術大部分相同,但是無法互相兼容,增加了播放器的開發成本,為了解決這一問題,MPEG組織與微軟、蘋果、Netflix、高通、愛立信、三星和等公司聯合推出了MPEG-DASH,使其成為開放的國際標準(ISO/IEC 23009-1 [2.a] ),相對于私有解決方案(尤其是較為廣泛應用的HLS),MPEG-DASH的主要優勢在于降低了兼容成本,簡化了視頻流系統的實作,提高了通用性和靈活性,包括:

  • 整合了之前幾種HAS方案,方便播放器進行兼容
  • 不限定視頻編碼,方便視頻內容提供商進行兼容
  • 有豐富的開源實作,便于應用

2.3 DASH vs. others

在DASH之前,工業界也有一些其他非HAS的視頻傳輸方案,但DASH很明顯在靈活性和QoE上具有更好的表現,?
國內點播視頻的主流方案包括整段/分段FLV、整段MP4等,整段MP4的問題在于,對于長視頻而言,其頭部過于復雜,首幀加載很慢,
?

以下二圖為國內主流視頻傳輸方案的對比:

(From 我們為什么使用DASH | 嗶哩嗶哩)
在這里插入圖片描述
(From DASH、HLS和MP4格式有什么播放體驗區別? | 華為云)
在這里插入圖片描述

2.4 DASH的劣勢

盡管DASH可以同時應用于直播和點播場景,但受限于視頻切片,DASH目前的劣勢在于其應用于直播場景的時延較大(至少一個視頻塊的時長,如2s),

下圖對比了不同直播傳輸方案的時延差異(From 打造極致觀看體驗:超低時延直播技術探索與實踐 | 2020阿里云云棲大會):
在這里插入圖片描述
(注:DASH工業論壇 [2.a] 似乎最近在關注DASH應用于直播的問題)

3. 學術研究

*此部分內容可以參考:ABR研究綜述 | A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP(IEEE CST’18)閱讀筆記

針對DASH(HAS)的相關研究主要分為以下幾個方面[5.b]:

  • 多客戶端的競爭/穩定性問題(Multi-Client Competition/Stability Issues)
  • 恒定質量的流(Consistent-Quality Streaming)
  • QoE的優化與衡量(QoE Optimization and Measurement)
  • 目標間多媒體同步(Inter-Destination Multimedia Synchronization)

3.1 多客戶端的競爭/穩定性問題

一個合理的DASH(HAS)機制應該能夠實作:

  • 穩定性:避免頻繁的碼率切換
  • 公平性:多個DASH(HAS)客戶端公平共享網路資源(網路資源)
  • 高利用率:客戶端盡可能有效地利用網路資源


但DASH(HAS)客戶端獨有的ON-OFF請求模式,為實作以上目標帶來了挑戰,

在一個視頻流會話中,客戶端會處于兩種狀態:buffer填充狀態和穩定狀態,在buffer填充狀態下,客戶端持續向服務器請求視頻塊,以快速填充buffer,使其達到目標值,從而進入穩定狀態;而在穩定狀態下,客戶端僅在buffer低于目標值時才進行請求,導致實際的請求行為并不連續,將客戶端進行請求的時間段稱之為ON,不請求的時間段稱之為OFF,可以看出,客戶端的請求行為呈現出明顯的ON-OFF周期性特征,

一個真實場景下的ON-OFF請求行為如下圖,Request表明客戶端向服務器發出請求但還未收到回應,Download表明客戶端收到回應并開始下載,Idle表明客戶端與服務器之間沒有任何資料傳輸,

在這里插入圖片描述
需要注意的是,若OFF的持續時間超過某一閾值(Linux默認值為200ms),對于CUBIC等擁塞控制演算法(不包括BBR),其擁塞視窗會恢復到初始大小(Linux默認值為10),則穩定狀態下每個視頻塊的請求都是一個獨立的慢啟動增窗程序
?

由于ON-OFF周期的存在,若多個客戶端共享瓶頸鏈路(各客戶端的ON-OFF周期不重疊),或一個客戶端與其他持續流共享瓶頸鏈路(慢啟動導致客戶端無法競爭到足夠的可用帶寬),一方面客戶端很難準確估計真實的可用帶寬,另一方面客戶端無法獲得公平的網路資源,導致客戶端無法實作穩定、公平、高利用的目標,

3.2 恒定質量的流

視頻流傳輸的目標之一是提供質量恒定的視頻流,以避免頻繁的質量切換影響QoE,過去的方案直接用視頻碼率表征視頻質量,然而研究表明,視頻質量(可以用PSNR、SSIM、VMAF等指標衡量)與視頻碼率之間呈非線性關系,如下圖[5.b]所示:
在這里插入圖片描述
可以看出,視頻質量和視頻碼率的不一致性(非線性關系),既體現在單個視頻中,也體現在不同視頻的對比之中,網路的動態性與視頻內容的動態性,為實作恒定質量的視頻傳輸帶來了挑戰,

3.3 QoE的優化與衡量

3.3.1 QoE優化

DASH客戶端部署ABR演算法(注:此外,還有一些非客戶端的ABR方案,以及非ABR的QoE優化方案)以實作QoE的最大化,近些年來,學術界在此領域有非常豐富的研究,目前主流的ABR演算法按照其決策依據主要分為:

  • 基于吞吐量預測:僅根據吞吐量預測進行碼率決策
    • 最直觀的ABR演算法,通過吞吐量預測給定可選碼率的上界,以在不卡頓的前提下盡可能提高視頻質量
    • 存在兩個問題:1) 準確的吞吐量預測很難實作,尤其是在弱網下;2) 存在頻繁的質量切換,造成QoE損失
    • 代表:FESITIVE(CoNEXT’12)
  • 基于播放器Buffer:
    • 由于吞吐量的準確預測較為困難,此類演算法僅根據播放器當前的Buffer水平進行碼率決策
    • 存在的問題:buffer的變化本身并不足以同時表征網路環境和視頻資訊
    • 代表:BBA(SIGCOMM’14)、BOLA(INFOCOM’16,已成為dash.js [3.a] 默認ABR演算法的一部分)
  • 基于混合資訊:基于吞吐量預測(可能是隱式的)和buffer等資訊進行碼率決策,是目前工業界部署和學術界研究的主流方案,可分為機器學習方法與非機器學習方法:
    • 非機器學習方法:主要為控制論方法,代表為MPC(SIGCOMM’15)
      • MPC使用的基于調和平均數的吞吐量預測不夠準確,最近很多研究致力于提升其預測準確性,
    • 機器學習方法:主要為強化學習方法,代表為Pensieve(SIGCCOMM’17)
      • Penieve在實際場景中表現不佳,可能是由于離線仿真器與真實場景的差異過大,此外,機器學習的模型較為復雜,可解釋性差,給實際部署和除錯帶來了較大的困難

3.3.2 QoE衡量

為簡便起見,目前ABR學術研究的QoE形式,是將其主要影響因素賦以權重后線性加和,形如下式(From A Control-Theoretic Approach for Dynamic Adaptive Video Streaming over HTTP | SIGCOMM’15):
在這里插入圖片描述
等號右邊四項,分別代表一個視頻流會話中的:總視頻質量、總視頻質量切換、總卡頓時間、總啟動時延,

  • *早期的研究直接用碼率代替質量,近期研究則偏向于使用特定的質量衡量指標(如SSIM)
  • *大部分研究不關注啟動時延


然而,真實場景中的QoE則更為復雜,研究將影響QoE的因素分為兩類:

  • perceptual(用戶感知層面):視頻影像質量、啟動時延、卡頓的時間和頻率、質量切換的程度和頻率
  • technical(技術指標層面):演算法、引數、視頻流系統的軟硬體


視頻流領域的一個主要挑戰是缺乏統一的量化方法來衡量QoE,現有的工業和學術方案基于三方面的指標來衡量QoE:

  • 客觀指標:如PSNR(Peak Signal-to-Noise Ratio,峰值信噪比)、SSIM(Structural SIMilarity,結構相似性)
  • 主觀指標:如VMAF(Video Multimethod Assessment Fusion)
  • QoS衍生指標:如啟動時延、平均視頻碼率、質量切換、卡頓事件

3.4 目標間多媒體同步

不同用戶同步觀看視頻的需求逐漸顯現,在傳統方案中,每個客戶端僅根據自身的網路環境進行視頻傳輸,并不考慮與其他客戶端的同步,因此,如何為分布在不同地理位置的多個客戶端實作播放狀態同步,也成為了需要研究的問題,該問題稱為目標間多媒體同步 (IDMS),

4. 實際部署(個人經驗)

目前DASH已經在諸多視頻廠商的產品中得到廣泛部署,國外廠商如Youtube、Netflix、Hulu等,國內廠商如Bilibili,

dash.js [3.a] 是DASH工業論壇[2.a]推薦的DASH標準播放器,dash.js基于Javascript實作,可以在HTML網頁中實作DASH視頻播放的功能,

基于Nginx(HTTP/1.1)與dash.js搭建DASH視頻播放系統的個人實踐:DASH視頻系統(服務器&播放器)搭建


相關資料

  1. 介紹:
    1. 基于HTTP的動態自適應流 | 維基百科
    2. Dynamic Adaptive Streaming over HTTP | Wikipedia
    3. DASH Streaming | Encoding.com
  2. 工業論壇&標準&白皮書:
    1. DASH Industry Forum
    2. ISO/IEC 23009-1:2019(en), DASH - Part 1 | ISO
    3. MPEG-DASH: Standards and white papers | MPEG
  3. 開源實作:
    1. Dash-Industry-Forum/dash.js - Javascript / Samples players for dash.js(official)
    2. bitmovin/libdash - C++(official)
    3. ExoPlayer - Android
    4. VLC media player
    5. google/shaka-player | Javascript
  4. 工業部署:
    1. 我們為什么使用DASH | 嗶哩嗶哩 / 關于引入DASH技術,提升用戶播放體驗的說明 - 嗶哩嗶哩
    2. Delivering Live YouTube Content via DASH | YouTube Live Streaming API
    3. Why YouTube & Netflix use MPEG-DASH in HTML5 | Bitmovin
    4. Akamai Announces Native MPEG-DASH and HDS Support for Live Video Workflows | Akamai
  5. 學術研究(綜述):
    1. A Survey of Rate Adaptation Techniques for Dynamic Adaptive Streaming Over HTTP | IEEE CST’17
    2. A Survey on Bitrate Adaptation Schemes for Streaming Media Over HTTP | IEEE CST’18

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/355427.html

標籤:其他

上一篇:筆記一:點云環境搭建及法向量獲取

下一篇:使用 OpenCV 和 Python 識別信用卡號

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more