<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          星球?qū)O?| 關(guān)于播放器的一次項(xiàng)目實(shí)踐~~

          共 1896字,需瀏覽 4分鐘

           ·

          2022-03-18 02:04

          眾所周知,前段時(shí)間開通了知識(shí)星球,旨在為音視頻的開發(fā)和學(xué)習(xí)提供更專業(yè)的問(wèn)答氛圍。

          一個(gè)關(guān)于音視頻領(lǐng)域?qū)I(yè)問(wèn)答的小圈子??!

          同時(shí)也考慮在星球內(nèi)出一些干貨教程,回饋大家的信任,一番思索之后,決定在星球內(nèi)出一個(gè)播放器的項(xiàng)目實(shí)踐。

          為什么會(huì)選擇做播放器呢?

          在星球內(nèi)也有很多朋友咨詢從事音視頻開發(fā)要如何入手?其實(shí)音視頻開發(fā)根據(jù)業(yè)務(wù)形態(tài)的不同也會(huì)有不同的側(cè)重點(diǎn)。

          比如我做短視頻 SDK 的,馬上去做網(wǎng)絡(luò)通話的優(yōu)化,估計(jì)就要被優(yōu)化了。同樣,做音視頻算法的來(lái)搞工程搭建一時(shí)半會(huì)也不見得能搞定。

          盡管工作內(nèi)容不同,但我們都還屬于音視頻開發(fā)范圍內(nèi),所以說(shuō)音視頻也是一個(gè)很大的方向了。

          而我個(gè)人覺(jué)得播放器會(huì)是音視頻大方向下的一個(gè)很好入門切入點(diǎn)。

          關(guān)于音視頻的概念有很多,比如 I、B、P 幀、容器格式、H.264 碼流、編解碼器等等,這些概念都是基礎(chǔ)必須知道的,但如何在項(xiàng)目實(shí)踐中去真正調(diào)試使用它呢?說(shuō)的再多也不如實(shí)操一遍。

          而做一個(gè)播放器是能夠?qū)⑦@些概念融會(huì)貫通的,在解碼時(shí)去體驗(yàn)每一幀的不同,在渲染時(shí)去感受 YUV 的格式差異,在音視頻對(duì)齊時(shí)去領(lǐng)悟音畫同步的真諦。

          要如何去做一個(gè)播放器呢?

          一個(gè)播放器可以很簡(jiǎn)單,也可以很復(fù)雜,但這不重要。

          做播放器不是我們的目的,最終是為了在這個(gè)過(guò)程中掌握音視頻開發(fā)、調(diào)試經(jīng)驗(yàn),并且熟悉 C++、FFmpeg 的用法,建立起系統(tǒng)而完善的概念。

          目前我已經(jīng)完成了整個(gè)項(xiàng)目的初步搭建,Github 地址如下:

          https://github.com/glumes/PlanetPlayer

          設(shè)想按照具體的業(yè)務(wù)實(shí)際來(lái)開發(fā),核心是開發(fā)播放器 SDK ,對(duì)外提供 SDK 的能力,業(yè)務(wù)工程去依賴 SDK ,這就和目前的短視頻 SDK 開發(fā)接入流程一樣了。

          理想情況是做一個(gè)跨平臺(tái)的播放器 SDK ,因?yàn)閷懙氖?C++ 代碼,天然就有跨平臺(tái)的基因。

          但前期的運(yùn)行都是在電腦上測(cè)試通過(guò)的,先保證自己電腦上的播放器項(xiàng)目可以正常運(yùn)行,然后再去做移動(dòng)端上的適配。

          另外,整個(gè) SDK 還引入了 Google Test 做單元測(cè)試,保證每個(gè)接口都可以測(cè)試通過(guò),這也是現(xiàn)代軟件開發(fā)流程中必備的了。而且關(guān)于 FFmpeg 的一些知識(shí)技巧,在播放器的正式代碼中不一定需要,就可以放到單測(cè)中做總結(jié)了,存儲(chǔ)一些代碼以后用得上。

          整個(gè)項(xiàng)目結(jié)構(gòu)如下圖所示:

          對(duì)每個(gè)文件夾內(nèi)容的具體說(shuō)明如下:

          1. 依賴第三方庫(kù)代碼,比如 FFmpeg 等,目前用臨時(shí)代碼模擬頂替一下,后面會(huì)講如何接入 FFmpeg。
          2. Demo 工程,演示如何接入 SDK 的具體工程代碼,也是通過(guò)這個(gè) Demo 工程來(lái)播放視頻的。
          3. SDK 的接口頭文件代碼,對(duì)外暴露 include 里面的接口就行了
          4. SDK 的具體實(shí)現(xiàn)代碼,也是后面的核心代碼了
          5. 單測(cè)目錄,Google Test 的單測(cè)內(nèi)容都在這里了。

          目前及后續(xù)的進(jìn)展

          目前還只是完成了工程的搭建, 寫了一丟丟的代碼。

          我是用 CLion 做開發(fā)的,IDE 還是好用很多,但由于它是付費(fèi)的,星球內(nèi)不一定所有人都可以使用。

          因此我特意配置了一下 VSCode 上的開發(fā)環(huán)境,搗鼓了 launch.json 的配置,也可以直接運(yùn)行代碼了,但建議還是使用 CLion 來(lái)開發(fā),畢竟 VSCode 只是一個(gè)編輯器,和強(qiáng)大的 IDE 比還是少了不少功能。

          關(guān)于播放器實(shí)踐的專欄,后續(xù)大部分進(jìn)展都會(huì)放在知識(shí)星球里面了,尤其是源碼會(huì)在星球內(nèi)同步更新,當(dāng)然也會(huì)挑一些干貨在公眾號(hào)同步。

          目前 音視頻開發(fā)進(jìn)階知識(shí)星球 還在讓利中,非常低的價(jià)格就可以獲得業(yè)內(nèi)一線開發(fā)人員的答疑解惑

          與其在群里面提問(wèn)石沉大海,不如來(lái)星球有問(wèn)必答,而且這個(gè)價(jià)格還是管一年的哦,一年的時(shí)間可以說(shuō)是相當(dāng)劃算了。

          同時(shí)星球內(nèi)非常歡迎大家提問(wèn),尤其是我不會(huì)的問(wèn)題,我會(huì)去找業(yè)內(nèi)好朋友請(qǐng)教,既回答了你的問(wèn)題又幫助了我提高。

          想要加入的可以通過(guò)掃如下二維碼進(jìn)星球哦,iPhone 用戶如果不能訪問(wèn)小程序的話,也可以加我微信 ezglumes 拉你進(jìn)星球。

          一個(gè)音視頻領(lǐng)域?qū)I(yè)問(wèn)答的小圈子!

          推薦閱讀:

          音視頻開發(fā)工作經(jīng)驗(yàn)分享 || 視頻版

          OpenGL ES 學(xué)習(xí)資源分享

          開通專輯 | 細(xì)數(shù)那些年寫過(guò)的技術(shù)文章專輯

          Android NDK 免費(fèi)視頻在線學(xué)習(xí)!??!

          你想要的音視頻開發(fā)資料庫(kù)來(lái)了

          推薦幾個(gè)堪稱教科書級(jí)別的 Android 音視頻入門項(xiàng)目

          覺(jué)得不錯(cuò),點(diǎn)個(gè)在看唄~

          瀏覽 37
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色黄色1级a片 | 美国黑人大屌视频 | 2024国产精品 | 亚洲欧洲精品成人 | 日韩精品无码一区二区 |