實時音視頻概念很早就有,一直發(fā)展緩慢,直到2011年谷歌開源了webrtc,才算是從技術(shù)層面推動了實時音視頻的發(fā)展,使得音視頻技術(shù)開發(fā)周期大大縮短。
但之后實時音視頻還是不溫不火,因為沒什么市場需求,像短視頻什么的都是4G/5G時代技術(shù)發(fā)展才帶動起來的,通信寬帶不支持的話,這種音視頻通話體驗效果肯定不好。而給音視頻真正帶來發(fā)展機(jī)遇的是2020年初的新冠疫情。就連我們常用的騰訊會議也是2020年1月24日才正式上線,在這之前,估計很多人和我一樣都沒聽說過騰訊會議吧。疫情三年,各種遠(yuǎn)程會議、遠(yuǎn)程上課等需求為音視頻帶來了市場前景,從而推動音視頻發(fā)展。并且2021年10月火起來的元宇宙、以及AR/VR概念把音視頻通信進(jìn)一步推動起來。
所以總的來說,實時音視頻的歷史還是很短,從各個大廠的校招官網(wǎng)也能看出一二,除了字節(jié)跳動有專門的音視頻崗位外,其他大廠像阿里、騰訊、網(wǎng)易等,校招都沒有這個崗位,只有社招才有這個崗位。說明音視頻還是一個藍(lán)海,目前大廠都沒有形成成熟的培養(yǎng)體系。另外從B站的搜索也能發(fā)現(xiàn)一些信息,關(guān)于音視頻的教程播放量基本都不到1萬,播放量超過1萬的基本是Android端的音視頻開發(fā)。
言歸正傳,通過調(diào)研各個大廠招聘信息,發(fā)現(xiàn)音視頻開發(fā)的招聘要求基本圍繞著兩個框架:FFmpeg和webrtc。下面簡要談?wù)勥@兩個框架。
2、FFmpegFFmpeg其實不是專門用來做實時音視頻開發(fā)的,而是用來做視頻剪輯、合成、去水印、音頻處理之類的,后來發(fā)現(xiàn)這個開源庫在音視頻通信方面很好使,就轉(zhuǎn)而用上了。就連百度百科上對FFmpeg的定義是:一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機(jī)程序。
FFmpeg源碼是用C++寫的,官網(wǎng)鏈接是:http://ffmpeg.org/。FFmpeg的使用包括兩種模式:命令行模式和源碼模式。
2.1 命令行模式命令行模式就是在終端敲命令完成功能,就像我們在Linux終端輸入ls,pwd,cd一樣,例如使用FFmpeg從一個視頻文件中抽取一幀圖像:
ffmpeg -y -i test.mp4 -ss 00:03:22.000 -vframes 1 -an test.jpg
敲這個命令就能一鍵完成。
命令行模式不需要編程基礎(chǔ),一些非軟件開發(fā)人員也會用,所以多用于這些場景:非編程的多媒體工作人員剪輯視頻音頻、小公司快速開發(fā)一些簡單的音視頻編輯軟件。
2.2 源碼模式所謂源碼模式,就是在c++源碼上做開發(fā),也就是面向軟件開發(fā)人員,把源碼下載下來,進(jìn)行裁剪、修改后編譯使用。其實上面的命令行模式就是官方在源碼上開發(fā)的示例軟件,就像Linux下ls,cd,pwd也是一個個小程序軟件一樣。
源碼模式開發(fā)是使用C++語言。那些大廠就是把ffmpeg 源碼下載下來,進(jìn)行修改開發(fā),實現(xiàn)自己想要的功能,各個大廠自己維護(hù)著一個在ffmpeg基礎(chǔ)上修改的框架,在這個框架上實現(xiàn)功能。
2.3 學(xué)習(xí)路線關(guān)于ffmpeg 的學(xué)習(xí),有網(wǎng)友建議先玩一下命令行模式,熟悉常見功能之后再入手源碼,用源碼實現(xiàn)某些功能。建議找一套視頻教程,照著視頻教程學(xué)一遍,整幾個項目。
3、 webrtcwebrtc是真正的面向?qū)崟r音視頻通信的,webrtc的源碼也是C++。webrtc的中文官網(wǎng)是:https://www.webrtc.org.cn/
谷歌為webrtc提供了多種形式的接口,webrtc的開發(fā)主要分為客戶端和服務(wù)端。
webrtc客戶端開發(fā)分為三種:web網(wǎng)頁、Android、iOS。webrtc針對Android端提供了Java語言的API接口,為iOS端提供了objective -C語言的API,而web網(wǎng)頁開發(fā)則使用html和JavaScript語言調(diào)用API。
3.2 服務(wù)端服務(wù)端的開發(fā),從B站的視頻教程來看,主要是使用c++語言或者nodejs。使用c++也就是在源碼基礎(chǔ)上開發(fā),使用nodejs就是使用谷歌提供的JavaScript語言的API接口。
3.3 學(xué)習(xí)路線關(guān)于webrtc的學(xué)習(xí),也是找一套好的視頻教程,系統(tǒng)性學(xué)一遍。先學(xué)一下音視頻通信的基礎(chǔ)知識,再學(xué)一下教程里自帶的項目,入門之后把幾個經(jīng)典開源框架學(xué)一下,例如:Janus、mediasoup等。最后如果想深入的話,入手源碼。
4、 FFmpeg和webrtc對比對于軟件開發(fā)人員來說,學(xué)習(xí)其中一個就行。FFmpeg和webrtc是兩套不同的技術(shù)棧,F(xiàn)Fmpeg主要面向桌面端的軟件開發(fā),所以經(jīng)常和Qt、MFC等軟件開發(fā)框架結(jié)合,主要開發(fā)語言是C++。webrtc主要面向網(wǎng)頁瀏覽器手機(jī)終端,主要開發(fā)語言依客戶端而定,例如JavaScript、html、JAVA、objective C等,如果是服務(wù)端則是nodejs或者c++。
5、總結(jié)對于二者的學(xué)習(xí)路線,先確定學(xué)習(xí)哪個技術(shù)棧,然后找一套好的視頻教程,系統(tǒng)性的學(xué)一遍,寫幾個簡單項目,再啃幾個開源框架。目前B站的視頻教程都不怎么樣,建議去慕課買套付費的高質(zhì)量教程學(xué)學(xué)。
音視頻通信算是門檻比較高的領(lǐng)域,建議深耕兩年,不然很難在這個領(lǐng)域做出成績。并且有這個業(yè)務(wù)的公司也不多,小公司開發(fā)團(tuán)隊人員少,大多基于某個框架開發(fā),一般不會涉及到C++源碼。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
網(wǎng)頁名稱:實時音視頻開發(fā)淺談-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://chinadenli.net/article0/ddgoio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站內(nèi)鏈、關(guān)鍵詞優(yōu)化、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容