DAV数字音视工程网_会议系统、指挥调度、演艺科技、智能楼宇等音视频工程信息行业门户

DAV首頁
數字音視工程網

微信公眾號

數字音視工程網

手機DAV

null
null
null
卓華,
招商,
null
null
null
快捷,
null

我的位置:

share

淺談多平臺音視頻同屏開發技術

來源:四川湖山電器股份有限公司        編輯:ZZZ    2024-09-24 10:13:03     加入收藏    咨詢

咨詢
所在單位:*
姓名:*
手機:*
職位:
郵箱:*
其他聯系方式:
咨詢內容:
驗證碼:
不能為空 驗證碼錯誤
確定

音視頻同屏處理作為一項核心基礎的關鍵技術被廣泛應用于無紙化會議、課堂教學系統等多媒體融合應用場景中。

淺談多平臺音視頻同屏開發技術

四川湖山電器股份有限公司 陳柯宇

 

  引言

  音視頻同屏處理作為一項核心基礎的關鍵技術被廣泛應用于無紙化會議、課堂教學系統等多媒體融合應用場景中。音視頻同屏技術本身也集中了音視頻采集、編解碼和網絡傳輸等多領域的技術,內容豐富多樣。隨著應用范圍的不斷增加,特別是國產化主機和操作系統平臺的應用普及不斷推進,音視頻同屏處理技術需要適配應用于各種異構平臺上,這一訴求更加豐富了音視頻同屏技術的涵蓋范圍。

  本文結合本公司產品實踐,結合較為當前企業級應用較為主流Windows和Linux操作系統平臺,提出了適用于指定平臺的端到端音視頻同屏技術方案。

 

  系統架構設計

  系統架構由以下幾個主要節點組成:

  1. 同屏推送端

  采集本地設備的音視頻數據,對音視頻數據進行編碼壓縮,將編碼壓縮后的音視頻數據流推送到流媒體服務器

  2. 流媒體服務器

  對來自同屏推送端的音視頻數據流進行轉發,目前已經有一些成熟、開源的流媒體服務器軟件項目可用,例如:ZLMediaKit、RTMP Nginx等。

  ZLMediaKit是應用廣泛的流媒體服務器,支持RTSP、RTMP、HTTP、HLS、MPEG-TS等多種協議,可以實現音視頻的推流、轉碼、錄制、播放等功能。具有高性能、低延遲、易擴展等特點,適用于直播、視頻會議、監控等場景。ZLMediaKit可以運行在Linux、Windows等操作系統上,支持多種硬件平臺。

  3. 播放端

  從流媒體服務器拉取音視頻數據流,對音視頻數據進行解碼,將解碼后的音視頻數據播放渲染以呈現給最終用戶。

  因為流媒體服務器已有較多現成軟件項目可用,所以本文主要說明同屏推送端和播放端的開發實現技術,對于流媒體服務器不再贅述。

 

  實現流程

  一、同屏推流端

  同屏推流端完成的功能包括:

  1. 屏幕截圖

  屏幕截圖功能包括對鼠標、光標位置和形狀的捕獲。

  (1)Linux系統的獲取屏幕圖片方法:

  A. framebuffer方式

  訪問由顯卡顯存映射(mmap)的內存幀緩沖區,使用特殊的設備節點:/dev/fb*。framebuffer是一種比較老的渲染方式,因為只能實現簡單的整張位圖輸入輸出,需要耗費較多的CPU處理,目前僅仍然在一些輸出簡單顯示界面或者對顯示性能要求不高的嵌入式設備上使用。現代Linux系統在X Window System加載后便將其接管,相應地,這種獲取屏幕圖片方式也就失效。

  B. OpenGL方式

  一種跨平臺的圖形編程接口,在Linux系統中最終仍然是通過X Window System的協議庫Xlib實現各種圖形操作。

  C. XCB方式

  X Window System由MIT在1984年發布的一種窗口系統,廣泛使用于類UNIX操作系統上。X包括X server和X client,它們之間通過X協議通信。X server接收X client的顯示請求,調用底層的顯示設備驅動程序,輸出到顯示設備上;同時,把輸入設備的輸入事件,傳遞給相應的X client。X協議是網絡透明的,server和client可以位于同一機器上、同一操作系統中,也可以位于不同機器、不同操作系統中(因此X是跨平臺的)。這為遠端GUI登錄提供了便利。X client的實現上將X協議封裝為命令原語,以庫的形式(xlib或者xcb)向外部應用提供接口。外部應用作為X client調用這些API,向X server發起請求。X server的實現幾經演變為現在的Xorg。目前的主流版本是X11R6(R7)。

  這也是目前在Linux系統常用的獲取屏幕截圖方式。

  (2) Windows系統的獲取屏幕圖片方法:

  A. GDI方式

  在Windows10以前的版本使用GDI (Graphics Device Interface)接口從系統中獲取屏幕截圖,但這種方式性能比較差,獲取操作的耗時經常超過40ms,無法保證25幀的截圖速率,也就無法保證同屏視頻的流暢性,視覺效果不是太好。

  B. DXGI方式

  DXGI (Microsoft DirectX Graphics Infrastructure ) 是隨 Windows Vista 引入的新子系統,從Windows10開始可以通過DXGI接口從系統中獲取屏幕截圖,耗時大幅縮短,能夠保證25幀的截圖速率,大幅提升了同屏視頻的視覺效果。

  2. 聲音采集

  聲音采集功能用于獲取本機上其他應用產生的聲音。

  (1)Linux系統的采集聲音方法:

  A. OSS聲卡系統

  OSS(Open Sound System)是一個類Unix和POSIX兼容系統上一個可選的聲音架構,提供了源代碼級的可移植性。OSSv3是Linux下原始的聲音系統并集成在內核里,但是OSSv4在2002年OSS成為商業軟件時它的地位被ALSA所取代。OSSv4在2007年又成為開源軟件,4Front Technologies以GPL協議發布了它的源碼。OSS的設備節點在/dev目錄下,類型為字符設備,其主設備號為14:/dev/dsp: Digital audio。

  B. ALS聲卡系統

  ALSA提供了Playback和Capture兩種方式對聲卡進行操作,應用程序通過asound庫調用ALSA對聲卡進行操作,但在默認情況下Capture方式只能對聲卡的輸入通道進行采集,不能進行內錄。

  通過配置ALSA環回(Loopback虛擬聲卡)路由,將真實的物理聲卡和Loopback輸入通道合并為一個邏輯聲卡設備,實現對Loopback輸出通道進行采集。

  (2)Windows系統的采集聲音方法:

  使用MMDevice API來枚舉和獲取指定設備,用WASAPI來處理應用程序和音頻設備之間的音頻流數據。

  3. 音視頻編碼

  音視頻編碼功能將屏幕截圖的bmp數據編碼壓縮成H264/H265數據,將聲音采集的pcm數據編碼壓縮成G711/aac/mp3等格式數據。

  使用最為廣泛的音視頻編解碼開源軟件項目是ffmpeg, 這是一套可以功能強大、可運行于很多軟硬件平臺的音視頻處理軟件,支持幾乎市面上絕大多數音視頻編解碼、采集、轉碼、記錄、推拉流等處理,支持Intel QSV、Linux VAAPI、Android MediaCode等硬件編解碼處理增強。同時,ffmpeg也可由開發者自行開發代碼對接新的編解碼協議、實現和硬件編解碼增強。

  4. 音視頻傳輸

  音視頻傳輸功能將編碼壓縮后的音視頻碼流數據通過網絡傳輸協議推送給流媒體服務器,常用的網絡傳輸協議包括:RTMP、RTP、RTSP、HLS等。

  A. RTP/RTCP

  RTP/RTCP(Real-time Transport Protocol, RTP Control Protocol)用于在網絡中傳輸音視頻數據的IETF RFC標準協議,可工作在TCP或UDP上,可單播也可組播,通常和RTCP一起使用。

  B. RTSP

  RTSP(Real Time Streaming Protocol)是哥倫比亞大學、Netscape和RealNetworks公司提交的IETF RFC標準。RTSP在體系結構上位于RTP/RTCP之上,語法和HTTP 1.1類似,默認使用端口號554或8554。RTSP控制消息協商完成后可使用RTP/RTCP傳輸流媒體數據。

  常用的RTSP客戶端和流媒體轉發服務器有:live555、ZLMediaKit。

  C. RTMP

  RTMP(Real Time MessagingProtocol)是Adobe公司為Flash播放器和服務器之間音視頻數據傳輸開發的開放協議。工作在TCP之上,默認使用端口號1935,并衍生出:RTMPE、RTMPT、RTMPS。可實現主動推送,常用的RTMP流媒體轉發服務器有:Nginx(rtmp-module)、SRS、ZLMediaKit。

  D. HLS

  HLS(HTTP Live Streaming)是蘋果公司基于 HTTP 的流媒體傳輸協議,主要應用于 iOS 設備提供音視頻直播和點播服務。

  結合前述的介紹,同屏推流端在Linux操作系統的軟件架構如下圖所示:

  同屏推流端在Windows操作系統的軟件架構如下圖所示:

  上圖中左右邊分別表示視頻和音頻數據在同屏推流端中的數據流。

  二、 播放端

  播放端的實現方案相對比較簡單,完成的功能包括:

  1. 音視頻傳輸

  音視頻傳輸功能通過網絡傳輸協議從流媒體服務器拉取編碼壓縮的音視頻碼流數據,常用的網絡傳輸協議包括:RTMP、RTP、RTSP、HLS等,和同屏推流端使用的協議一致。

  2. 音視頻解碼

  音視頻解碼功能將編碼壓縮的H264/H265、G711/aac/mp3碼流數據解碼還原成YUV或BMP數據。常用的軟件開源項目除了前述的ffmpeg,還有libyuv等。

  3. 音視頻渲染

  音視頻渲染功能渲染呈現解碼后的視頻圖像,播放解碼后的音頻。

  (1) 常用的視頻圖像渲染方式:

  A. OpenGL

  OpenGL是一種跨平臺的圖形編程接口,能夠充分利用GPU的強大處理能力,實現圖像和圖形的各種渲染顯示。相比較簡單地由軟件繪圖方式呈現每一幀解碼后的BMP或YUV數據,使用OpenGL能降低CPU占用率,提升整體性能和呈現效果。

  B. SDL

  SDL(Simple DirectMedia Layer)是一套開放源代碼的跨平臺多媒體開發庫,提供了跨平臺的圖像、聲音控制功能,SDL的底層也能通過OpenGL實現圖像渲染顯示的功能。

  (2) 常用的音頻播放方式:

  A. SDL

  B. 直接調用系統原生的聲音播放API

  因為這種方式需要分別調用不同操作系統的聲卡處理API,且需要配置很多參數,所以不推薦使用這種方式。

 

  總結

  本文完整地闡述和說明了Windows和Linux平臺下的音視頻同屏技術解決方案,尤其是針對不同平臺的幾種常見主流處理技術進行了討論和比較。音視頻技術的發展非常迅速,新的編解碼技術標準、傳輸協議和操作系統底層軟件驅動框架也在不斷發展演變,我們也會持續跟進。

免責聲明:本文來源于四川湖山電器股份有限公司,本文僅代表作者個人觀點,本站不作任何保證和承諾,若有任何疑問,請與本文作者聯系或有侵權行為聯系本站刪除。(原創稿件未經許可,不可轉載,轉載請注明來源)
掃一掃關注數字音視工程網公眾號

相關閱讀related

評論comment

 
驗證碼:
您還能輸入500
    主站蜘蛛池模板: 重庆聚成达汽车有限公司-重庆吸污净化车 | 中国建材信息总网-中国建材行业权威的信息资讯平台 | 康拓威技术(深圳)有限公司|Theia镜头代理商|安讯士AXIS摄像机|安讯士监控系统|博世BOSCH监控|博世会议系统|索尼SONY监控|松下PANASONIC监控|三星韩华SAMSUNG监控|霍尼韦尔Honeywell|海康|大华|华为监控|Theia无畸变镜头|AXIS监控|安讯视摄像机 | 紫外交联仪,紫外透射仪,紫外灯-上海析浦科学仪器有限公司 | 瑞凯科技,吉林省瑞凯科技,吉林省瑞凯科技股份有限公司 | 日职联直播_日职联免费视频直播_日职联直播在线观看无插件-24直播网 | 节能设备|余热回收|蒸汽压缩机|脱硝-河北耀一节能设备制造有限责任公司 | 太原重卡叔叔运输有限公司-山西太原大件运输、太原物流公司、太原货运物流、太原大件运输、太原货运信息、长治物流公司、长治大件运输、晋城物流公司、晋城大件运输、忻州大件运输、朔州大件运输、阳泉大件运输、大同大件运输、吕梁大件运输、临汾大件运输、运城大件运城 | 陶瓷纤维模块|陶瓷纤维毯|陶瓷纤维纸|高温隔热材料|陶瓷纤维厂家-济南火龙热陶瓷有限责任公司 | 金属标牌,镍电铸,电铸铭牌,标牌定制-青岛大东电铸标牌制作厂家 | 太阳能路灯生产厂家-郑州太阳能高杆灯价格-道路照明智能路灯-河南坤德照明 | 土石_泥石分离机_无轴滚筒筛_振动筛 - 巩义市鑫利重工机械制造有限公司 | 内蒙古发电机厂家_呼和浩特发电机租赁_销售_维修_回收_置换|盈弘发电设备有限责任公司 | 济宁市泓世新型建材有限公司,山东ALC墙板,GRC轻质隔墙板,预制化粪池,复合墙板加工厂家 | 勺子互联-b2b电子商务平台,免费产品发布 | 无尘车间_洁净车间_净化车间_洁净室工程一站式净化服务商-深圳市美克威尔环境科技有限公司 | 石家庄LED显示屏|石家庄显示屏|河北显示屏升级改造|石家庄科航光电科技有限公司_石家庄科航光电科技有限公司 | 惠声电子、广州市惠声电子科技有限公司、VBS、VBS惠声电子、VBS公共广播生产厂家、VBS广播功放生产厂家、VBS会议系统设备批发、VBSIP网络对讲系统厂家、VBS会议系统厂家、VBS智能中控厂家、VBS专业扩声厂家 | 中山电子控制板|中山工业控制板|中山市云禾电子科技有限公司 | 上海舜华新能源系统有限公司_官网 | 聚丙烯酰胺,聚合氯化铝,重金属捕捉剂,污泥调理剂,活性氧化铝,生石灰,反渗透阻垢剂,工业葡萄糖,硫酸铝,果壳活性炭,柱状活性炭,蜂窝活性炭,石英砂,锰砂-北京雁归来环保科技有限公司-以真诚为立足之本,以质量为生存之本,愿与海内外同仁共创双赢。雁归来人一路走来,气贯长虹,勇锐盖过怯弱,进取压倒苟安!我们紧扣时代脉搏,专注水处理、继往开来! | 三菱plc_触摸屏_变频器_欧姆龙plc_普洛菲斯_安川伺服电机-广州凌控 | 矿用精确定位系统,井下4G无线通讯系统,工作面集控系统,皮带保护系统-山东新云鹏电气有限公司 | 塑木地板-木塑地板厂家「云南昆明楚雄曲靖玉溪塑木地板」云南云冶中信塑木新型材料有限公司 | 环保白电油_甲醇_二价酸酯DBE_防白水-【名亿新材料】 | 临沂网站建设,临沂网站制作,临沂网络公司,临沂小程序开发,临沂网站设计,沂水网站建设,沂南网站建设,蒙阴网站建设,平邑网站建设,费县网站建设,兰陵网站建设,郯城网站建设,临沭网站建设,莒南网站建设,兰山网络公司 | 耐磨焊条_高硬度堆焊焊条_碳化钨合金耐磨焊丝_北京耐默 | 送料机-冲床送料机-伺服送料机 - 常州市佳王精密机械有限公司 | 科衣洛定制衣柜,书柜,厨柜,衣帽间,电视柜,酒柜,餐厅柜,门厅柜,鞋柜——科衣洛全屋定制官网 | 深圳同步带轮_东莞齿轮加工_东莞同步轮厂家-东莞东城精胜机械配件厂 | 铁氟龙膜/板/棒-铁氟龙网带/胶带/胶布-[东莞华氟]专注铁氟龙及特氟龙制品生产 | 铜陵耐火砖|铜陵耐火浇注料|铜陵耐火材料|铜陵市金钟物资经营部【官网】 | 宿迁网站建设-宿迁做网站-宿迁网站制作-宿迁网络公司-宿迁网页设计-宿迁软件开发-宿迁新动力软件开发有限公司 | 每天一篇励志文章,每晚一个励志故事—励志人生网 | 疝灯试验箱-有风源淋雨-汽车盐雾室-无锡苏南试验设备有限公司 | 湖南净声源环保科技有限公司是一家专业从事噪声治理和建筑声学设计生态环境综合治理服务的企业,专业从事株洲电梯隔音治理,湘潭中央空调降噪处理,衡阳邵阳冷却塔噪音治理,岳阳常德大型风机噪声隔音降噪,张家界空压机噪声治理,益阳配电房变压器噪声治理,专业郴州永州工厂企业车间噪声治理,怀化娄底专业机械设备减振降治理,武汉噪音治理隔音降噪公司,孝感噪音治理,立式球磨机的噪声控制,专业隔音降噪公司,、以及各类机械动力设备减振降噪噪声治理的公司,同时为客户提供咨询与解决方案 | 廊坊大地木业有限公司| 河北高新技术企业认定,沧州商标注册,沧州9001质量管理体系认证,沧州高新技术企业认定,沧州体系认证,沧州商标续展,沧州版权登记,河北国瑞企业管理咨询有限公司 | 影像测量仪|检测设备定制|平面度测量仪|三坐标测量机|广州市海科思自动化设备有限公司-400-0528-668 | 长沙网站建设,网站设计制作,长沙小程序开发,公众号开发,长沙叶老设计 | 监控工程,安防监控公司,北京监控安装,北京安装监控,安装摄像头,北京监控维保,监控施工,北京监控维修,监控弱电工程,监控器安装,监控维护保养,监控工程设计,北京监控设备维修,监控报警安装,北京北方合力科技有限公司 |