最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows環(huán)境給FFmpeg集成AVS3解碼器

 更新時(shí)間:2024年05月18日 12:08:25   作者:aqi00  
libuavs3d是AVS3標(biāo)準(zhǔn)的解碼器,支持windows/linux/arm/ios等所有常用平臺(tái),在移動(dòng)端最高支持4K/30fps視頻實(shí)時(shí)解碼,解碼速度大幅領(lǐng)先AV1開(kāi)源解碼器dav1d和aomdec,由于FFmpeg默認(rèn)未啟用libuavs3d,因此需要重新配置FFmpeg,標(biāo)明啟用libuavs3d,然后重新編譯安裝FFmpeg

?AVS3是中國(guó)AVS工作組制定的第三代音視頻編解碼技術(shù)標(biāo)準(zhǔn),也是全球首個(gè)已推出的面向8K及5G產(chǎn)業(yè)應(yīng)用的視頻編碼標(biāo)準(zhǔn)。AVS工作組于2019年3月9日完成第三代AVS視頻標(biāo)準(zhǔn)(AVS3)基準(zhǔn)檔次的制訂工作,參考軟件的測(cè)試表明,AVS3基準(zhǔn)檔次的性能比上一代標(biāo)準(zhǔn)AVS2和HEVC提升了約30%。

libuavs3d是AVS3標(biāo)準(zhǔn)的解碼器,最高可支持8K/60P視頻實(shí)時(shí)解碼,支持windows/linux/arm/ios等所有常用平臺(tái),在移動(dòng)端最高支持4K/30fps視頻實(shí)時(shí)解碼,解碼速度大幅領(lǐng)先AV1開(kāi)源解碼器dav1d和aomdec。
在《FFmpeg開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到短視頻上線》一書(shū)的“8.1.2  給FFmpeg集成avs2”介紹了如何在Windows環(huán)境給FFmpeg集成AVS2的編解碼器,其實(shí)也能給FFmpeg集成AVS3的解碼器libuavs3d。詳細(xì)的集成步驟說(shuō)明如下。

一、編譯AVS3的解碼器libuavs3d

libuavs3d的源碼托管在https://github.com/uavs3/uavs3d,注意要下載master的主干代碼,不可下載2019年的1.0版本代碼(該版本的源碼編譯有問(wèn)題)。主干代碼的下載地址是https://codeload.github.com/uavs3/uavs3d/zip/refs/heads/master,把該鏈接復(fù)制到瀏覽器地址再按回車(chē)鍵,即可開(kāi)始下載源碼包。
libuavs3d的編譯步驟說(shuō)明如下。
1、解壓下載好的壓縮包,雙擊運(yùn)行uavs3d-master源碼目錄下的version.bat,以便生成頭文件version.h。
2、啟動(dòng)Visual Studio 2022,在歡迎頁(yè)面單擊右側(cè)的“打開(kāi)項(xiàng)目或解決方案”,在彈出的文件對(duì)話框中選擇uavs3d-master/build/vs2017目錄下的uavs3d.sln。
3、等待Visual Studio打開(kāi)uavs3d-master工程,依次選擇頂部菜單“生成”→“配置管理器”,在打開(kāi)的配置管理器界面上,找到左上角的“活動(dòng)解決方案配置”下拉框,把Debug模式改為Release模式,再單擊右下角的關(guān)閉按鈕。
4、右擊界面右側(cè)解決方案列表中的common,選擇右鍵菜單底部的“屬性”。在彈出的屬性窗口中,將右側(cè)常規(guī)屬性列表中的“Windows SDK 版本”這項(xiàng)改為“10.0(最新安裝的版本)”,將“平臺(tái)工具集”這項(xiàng)改為“Visual Studio 2022(v143)”,目的是把這兩項(xiàng)的值改為自己電腦上的版本。

5、右擊界面右側(cè)解決方案列表中的libuavs3d,選擇右鍵菜單底部的“屬性”。在彈出的屬性窗口中,將右側(cè)常規(guī)屬性列表中的“Windows SDK 版本”這項(xiàng)改為“10.0(最新安裝的版本)”,將“平臺(tái)工具集”這項(xiàng)改為“Visual Studio 2022(v143)”,目的是把這兩項(xiàng)的值改為自己電腦上的版本。

6、單擊界面右側(cè)解決方案列表中的libuavs3d,再依次選擇頂部菜單“生成”→“生成libuavs3d”(或“Build libuavs3d”)。等待生成完畢,可在uavs3d工程的uavs3d-master/bin目錄下找到uavs3d的庫(kù)文件(包括libuavs3d.dll和libuavs3d.lib)。

二、安裝AVS3的解碼器libuavs3d

雖然Visual Studio把libuavs3d的dll庫(kù)文件編譯了出來(lái),但是若想讓FFmpeg識(shí)別libuavs3d,還得依照相應(yīng)的目錄結(jié)構(gòu)放入libuavs3d的庫(kù)文件和頭文件,從而模擬Linux環(huán)境的安裝結(jié)果。詳細(xì)的安裝步驟參考《FFmpeg開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到短視頻上線》一書(shū)的第8章的“8.1.4  給FFmpeg集成freetype”。
(1)在msys64的/usr/local目錄下新建libuavs3d目錄,并在該目錄下創(chuàng)建lib子目錄;
(2)把uavs3d工程中uavs3d-master/bin目錄下的libuavs3d.lib和libuavs3d.dll兩個(gè)文件復(fù)制到上面第一步創(chuàng)建的lib目錄;
(3)在lib目錄下創(chuàng)建pkgconfig子目錄,并在pkgconfig目錄下新建文件uavs3d.pc,給該pc文件填入以下的配置內(nèi)容。

prefix=/usr/local/libuavs3d
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: uavs3d
Description: AVS3 decoder library 
Version: 1.2.0
Libs: -L${libdir} -luavs3d -lm -lpthread
Cflags: -I${includedir}

(4)在libuavs3d目錄下創(chuàng)建include目錄,并把uavs3d工程的uavs3d-master/source/decoder/uavs3d.h復(fù)制到include目錄下。
經(jīng)過(guò)以上步驟操作后的libuavs3d目錄結(jié)構(gòu)如下所示:

/usr/local/libuavs3d
 |--------------- lib
 |                 |-- libuavs3d.lib
 |                 |-- libuavs3d.dll
 |                 |-- pkgconfig
 |                        |----- uavs3d.pc
 |--------------- include

(5)接著給環(huán)境變量PKG_CONFIG_PATH添加libuavs3d的pkgconfig路徑,也就是在/etc/profile文件末尾添加如下一行內(nèi)容。

export PKG_CONFIG_PATH=/usr/local/libuavs3d/lib/pkgconfig:$PKG_CONFIG_PATH

(6)保存并退出profile文件后,在MSYS窗口中執(zhí)行下面命令重新加載環(huán)境變量。

source /etc/profile

(7)執(zhí)行下面命令查看當(dāng)前的環(huán)境變量,發(fā)現(xiàn)PKG_CONFIG_PATH的修改已經(jīng)奏效。

env | grep PKG_CONFIG_PATH

三、讓FFmpeg啟用libuavs3d

由于FFmpeg默認(rèn)未啟用libuavs3d,因此需要重新配置FFmpeg,標(biāo)明啟用libuavs3d,然后重新編譯安裝FFmpeg。FFmpeg的Windows環(huán)境完整編譯過(guò)程參見(jiàn)《FFmpeg開(kāi)發(fā)實(shí)戰(zhàn):從零基礎(chǔ)到短視頻上線》一書(shū)的“8.1  Windows環(huán)境編譯FFmpeg”,詳細(xì)的啟用步驟說(shuō)明如下。
1、回到FFmpeg源碼的目錄,執(zhí)行以下命令重新配置FFmpeg,主要增加啟用libuavs3d。(增加了選項(xiàng)--enable-libuavs3d)

./configure  --prefix=/usr/local/ffmpeg --arch=x86_64 --enable-shared --disable-static --disable-doc --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libdavs2 --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libfreetype --enable-sdl2 --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libopus --enable-libvpx --enable-libass --enable-libfribidi --enable-libxml2 --enable-fontconfig --enable-openssl --enable-libuavs3d --enable-iconv --enable-zlib --extra-cflags='-I/usr/local/lame/include -I/usr/local/libogg/include -I/usr/local/amr/include' --extra-ldflags='-L/usr/local/lame/lib -L/usr/local/libogg/lib -L/usr/local/amr/lib' --cross-prefix=x86_64-w64-mingw32- --target-os=mingw32

2、運(yùn)行下面命令編譯FFmpeg。

make clean
make -j4

3、執(zhí)行下面命令安裝FFmpeg。

make install
cp /usr/local/libuavs3d/lib/*.dll /usr/local/ffmpeg/bin

4、運(yùn)行以下命令查看FFmpeg的版本信息。

ffmpeg -version

查看控制臺(tái)回顯的FFmpeg版本信息,找到“--enable-libuavs3d”,說(shuō)明FFmpeg正確啟用了AVS3的解碼器libuavs3d。

到此這篇關(guān)于Windows環(huán)境給FFmpeg集成AVS3解碼器的文章就介紹到這了,更多相關(guān)FFmpeg集成AVS3解碼器 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C++超詳細(xì)講解auto與nullptr的使用

    C++超詳細(xì)講解auto與nullptr的使用

    C++11提供了nullptr用來(lái)取代0或者NULL。在C++11之前,使用NULL為空指針賦初值,但NULL其實(shí)就是0,這時(shí)會(huì)把NULL當(dāng)成0來(lái)用;在C++11中,我們?cè)诼暶饕粋€(gè)變量或?qū)ο?,指定它的?lèi)型時(shí),可以不使用變量本身的類(lèi)型而使用auto替代
    2022-05-05
  • C語(yǔ)言程序環(huán)境編譯+鏈接理論

    C語(yǔ)言程序環(huán)境編譯+鏈接理論

    這篇文章主要介紹了C語(yǔ)言程序環(huán)境編譯+鏈接理論,下面文章基于C語(yǔ)言的相關(guān)資料展開(kāi)對(duì)編譯和鏈接的詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-04-04
  • C++ 整數(shù)拆分方法詳解

    C++ 整數(shù)拆分方法詳解

    整數(shù)拆分,指把一個(gè)整數(shù)分解成若干個(gè)整數(shù)的和。本文重點(diǎn)給大家介紹C++ 整數(shù)拆分方法詳解,非常不錯(cuò),感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • C++ 約瑟夫環(huán)的實(shí)例代碼

    C++ 約瑟夫環(huán)的實(shí)例代碼

    這篇文章主要介紹了C++ 約瑟夫環(huán)的實(shí)例代碼的相關(guān)資料,希望通過(guò)本文能幫助到大家,實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • C++單例模式的實(shí)例詳解

    C++單例模式的實(shí)例詳解

    這篇文章主要介紹了C++單例模式的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-10-10
  • 解讀C++11 原生字符串

    解讀C++11 原生字符串

    這篇文章主要介紹了C++11 原生字符串的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++11,感興趣的朋友可以了解下
    2020-08-08
  • C++選擇排序算法實(shí)例詳解

    C++選擇排序算法實(shí)例詳解

    這篇文章主要為大家詳細(xì)介紹了C++選擇排序算法實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • C語(yǔ)言實(shí)現(xiàn)停車(chē)場(chǎng)管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)停車(chē)場(chǎng)管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)停車(chē)場(chǎng)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C語(yǔ)言版簡(jiǎn)單掃雷游戲

    C語(yǔ)言版簡(jiǎn)單掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言版簡(jiǎn)單掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • C++ Eigen庫(kù)計(jì)算矩陣特征值及特征向量

    C++ Eigen庫(kù)計(jì)算矩陣特征值及特征向量

    這篇文章主要為大家詳細(xì)介紹了C++ Eigen庫(kù)計(jì)算矩陣特征值及特征向量,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評(píng)論

南汇区| 万载县| 德保县| 桦南县| 枞阳县| 远安县| 浦城县| 祁东县| 昆山市| 方山县| 本溪市| 尚义县| 大化| 邢台县| 华宁县| 龙里县| 信阳市| 新竹县| 西乌| 施秉县| 鸡西市| 毕节市| 迁西县| 平顶山市| 民和| 西充县| 容城县| 曲靖市| 新营市| 策勒县| 喀什市| 敖汉旗| 油尖旺区| 星子县| 南通市| 黄石市| 方城县| 青田县| 抚顺市| 孟津县| 凌海市|