版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/Tosonw/article/details/89509356
概要:
vlc編譯, 硬解基于libva庫(VAAPI), live555(liblivemedia-dev), --enable-live555才能播放rtsp流, 基于liveMedia庫, vlc對ffmpeg是運行時依賴,把libavcodec_plugin.so刪了就可以。
ps:
重點章節:
“二、VLC編譯與安裝” :
“1.依賴相關”
“2.VLC編譯”
“4.vainfo”
該章節是我親自編譯的記錄,基于Ubuntu 16.04。
另外,本來想用intel核顯解碼,但可惜libva庫的VAAPI驅動一直未調通。
一、VLC中GPU解碼簡介
參考:(https://wiki.videolan.org/VLC_VAAPI/)
1.VLC基于libva庫(VAAPI):
一個開源庫和API規范,可以訪問圖形硬件加速功能以進行視頻處理。它由一個主庫和每個支持的硬件供應商的特定于驅動程序的加速后端組成。
另請參閱:VLC GPU解碼:https://wiki.videolan.org/VLC_GPU_Decoding/
在某些情況下,VLC框架可以使用您的圖形卡(也稱為GPU)來解碼H.264流(錯誤地稱為HD視頻)。
VLC在其模塊化方法及其轉碼/流媒體功能中,僅在解碼階段在GPU中進行解碼,然后將數據恢復到其他階段(流式傳輸,過濾或插入任何視頻輸出)。
這意味著,與其他一些實現相比,VLC中的GPU解碼速度較慢,因為它需要從GPU獲取數據。 但您可以將任何視頻輸出(接收器)插入其中并使用所有VLC視頻過濾器。
2.VAAPI的介紹
此頁面是關于在Linux上支持GPU加速的VLC編譯。
這個howto由Jean-Baptiste Kempf編寫并使用nVidia GPU進行測試。
vaapi:https://www.freedesktop.org/wiki/Software/vaapi/
在Linux / X11上,有兩個用于硬件視頻解碼的競爭接口:
來自Intel的VA-API,和來自NVIDIA的VDPAU。
通常,VAAPI用于Intel和Broadcom圖形卡,而VDPAU用于AMD / ATI和NVIDIA卡。
VA-API:
在Ubuntu發行版上,首先安裝硬件支持包:i965-va-driver,libva-intel-vaapi-driver和vainfo,然后在Preferences→Input&Codecs中激活GPU硬件加速。
??? $ sudo apt-get install i965-va-driver libva-intel-vaapi-driver vainfo
VDPAU:
自VLC版本2.1.0起,VDPAU支持解碼,自VLC 2.2.0起支持后處理和渲染(截至2013年底仍處于開發階段)。
默認情況下,VLC版本2.2.0以后將自動啟用VDPAU。
有關技術詳細信息,請參閱http://www.remlab.net/op/vlc-vdpau.shtml。
3.在編譯vlc之前保證以下正確安裝
安裝libva(注:We do not support other libraries than the one from Mr Beauchesne.)
https://github.com/intel/libva (https://www.freedesktop.org/wiki/Software/vaapi/)
nvidia驅動(注:Use at least version 0.6.2 )
ATI(注:Use at least 0.6.4.)
#檢查是否正確配置了libva環境變量:
$ set | grep LIBVA
#應輸出如下內容:
LIBVA_DRIVER_NAME=xvba
LIBVA_DRIVERS_PATH=/usr/lib64/va/drivers
#如果沒有,請根據庫路徑將這些添加到系統環境變量(/etc/environment ?)
VLC基于FFmpeg插件。
FFmpeg: https://github.com/FFmpeg/FFmpeg
./configure --enable-gpl --enable-postproc --prefix=/path/to/ --enable-shared --enable-vaapi
make -j12
make install
#將vaapi.h復制到includes
二、VLC編譯與安裝
1.依賴相關
sudo apt install libva-dev
sudo apt -y install libvdpau-dev
sudo apt -y install vdpau-va-driver
sudo apt -y install vdpauinfo
sudo apt -y install libavcodec-dev
sudo apt -y install libvdpau-va-gl1
sudo apt install libdrm-dev
sudo apt-get install autoconf automake libtool //運行autogen.sh用
sudo apt-get install libffi-dev
sudo apt-get install libx11-dev libxext-dev libxfixes-dev
sudo apt install libxcb-dev //提供X window protocol access
sudo apt install libpciaccess-dev //提供PCI access
以下是我在實際編譯的時候仍然缺少的,和異常的依賴項:
sudo apt install -y libmad-ocaml-dev
sudo apt install -y libgstreamer-ocaml-dev
sudo apt install -y liba52-0.7.4
sudo apt install -y liba52-0.7.4-dev
sudo apt install -y libxcb-composite0-dev
sudo apt install -y libxcb-xv0-dev
sudo apt install -y libxcb-randr0-dev
sudo apt install -y libxcb-keysyms1-dev
sudo apt install -y wayland-protocols
sudo apt install -y libalsa-ocaml-dev
sudo apt install -y libxcb-xkb-dev
sudo apt install -y libsidplay2-dev
sudo apt install -y libogg-dev
sudo apt install -y libdca-dev
sudo apt install -y libflac-dev
sudo apt install -y libmpeg2-4-dev
sudo apt install -y libvorbis-dev
sudo apt install -y libspeex-dev
sudo apt install -y libtheora-dev
sudo apt install -y libfreetype6-dev
sudo apt install -y libcaca-dev
sudo apt install -y libncursesw5-dev
sudo apt install libbluray-dev
sudo apt install -y libssh2-1-dev
sudo apt install -y libvncserver-dev
sudo apt install -y libfreerdp-dev
sudo apt install libdvbpsi-dev
sudo apt install -y libpulse-dev
sudo apt install -y libcddb2-dev
sudo apt install -y libdbus-1-dev
sudo apt install -y libsystemd-dev
sudo apt install -y libsmbclient-dev
# 版本太高,configure: error: libavutil versions 55 and later are not supported.
#sudo apt purge libavutil-dev
#sudo apt purge libavutil-ffmpeg54
# 依賴問題:configure: error: Could not find the LUA byte compiler.
# 可以在編譯時使用--disable-lua?;蛘甙惭blua,如下:
sudo apt install liblua5.2-dev
sudo apt install liblua50-dev
sudo apt install liblualib50-dev
# 編譯問題:yacc: command not found
sudo apt install byacc
# ERROR: flex is not installed.
sudo apt install flex
# ERROR: GNU bison is not installed.
sudo apt install bison
# configure: error: No package 'Qt5Core' found
# No package 'Qt5Widgets' found
# No package 'Qt5Gui' found
# No package 'Qt5Quick' found
# No package 'Qt5QuickWidgets' found
# No package 'Qt5QuickControls2' found
# No package 'Qt5Svg' found. If you want to build VLC without GUI, pass --disable-qt.
# 對上述問題,我使用的是:$ ./configure --disable-qt
# 也可以參考下面一句,自行安裝:(我好像這樣試過,然而不行)
sudo apt install -y qt5-default qtcreator libqt5svg5-dev
# configure: error: Skins2 interface requires FreeType, libxpm, libxext and libxinerama
sudo apt install -y libfreetype6 libfreetype6-dev libxpm-dev libxext-dev libxinerama-dev
# Makefile:1806: recipe for target 'lua/intf/modules/httprequests.luac' failed
# make[2]: *** [lua/intf/modules/httprequests.luac] Error 1
#?? LUAC?? lua/intf/telnet.luac
sudo apt install -y liblua5.1-0-dev liblua5.1-bitop-dev liblua5.1-rrd-dev liblua5.2-dev liblua5.3-dev
sudo apt install -y lua5.1-policy-dev
sudo apt install -y libghc-hslua-dev libluabind-dev libluajit-5.1-dev libtexlua52-dev libtexluajit-dev
sudo apt install -y libtolua++5.1-dev libtolua-dev lua-ansicolors-dev lua-apr-dev lua-bit32-dev lua-cjson-dev
sudo apt install -y lua-cliargs-dev lua-curl-dev lua-curses-dev lua-cyrussasl-dev lua-dbi-mysql-dev
sudo apt install -y lua-dbi-postgresql-dev lua-dbi-sqlite3-dev lua-discount-dev lua-dkjson-dev
sudo apt install -y lua-event-dev lua-expat-dev lua-filesystem-dev lua-iconv-dev lua-ldap-dev lua-leg-dev
sudo apt install -y lua-lemock-dev lua-lgi-dev lua-lpeg-dev lua-lpty-dev lua-luassert-dev lua-md5-dev
sudo apt install -y lua-mediator-dev lua-messagepack-dev lua-penlight-dev lua-posix-dev lua-redis-dev
sudo apt install -y lua-rex-gnu-dev lua-rex-onig-dev lua-rex-pcre-dev lua-rex-posix-dev lua-rex-tre-dev
sudo apt install -y lua-rings-dev lua-rrd-dev lua-say-dev lua-sec-dev lua-socket-dev lua-sql-mysql-dev
sudo apt install -y lua-sql-postgres-dev lua-sql-sqlite3-dev lua-svn-dev lua-term-dev lua-uri-dev
sudo apt install -y lua-wsapi-fcgi-dev lua-yaml-dev lua-zip-dev lua-zlib-dev
需要–enable-live555才能播放rtsp流,基于liveMedia庫。
注意:不要用apt直接安裝live555(liblivemedia-dev),我剛開始就這樣操作,導致vlc打開rtsp時出現段錯誤。
手動下載live555編譯安裝后,手動建立文件(索引包):/usr/lib/x86_64-linux-gnu/pkgconfig/live555.pc
sudo vim /usr/lib/x86_64-linux-gnu/pkgconfig/live555.pc
寫入如下內容:(注:路徑根據自己的系統,自行修改)
prefix=/usr/local
libdir=/usr/local/lib #庫路徑目錄,注:源碼編譯出來的庫是.la庫。
includedir=${prefix}/include #安裝的頭文件的目錄
Name: live555
Description: multimedia RTSP streaming library
Version: 2016.02.09
Cflags: -I${includedir}/liveMedia -I${includedir}/groupsock -I${includedir}/BasicUsageEnvironment -I${includedir}/UsageEnvironment
Libs: -L${libdir} -lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment
2.VLC編譯
源碼編譯:
??? 下載vlc-3.0.6-20190114-0223.tar.xz:http://nightlies.videolan.org/build/source/
??? 我是在Git下載的:https://github.com/videolan/vlc
??? (并且使用的是就是最新代碼編譯通過的:4.0.0-dev-7527-g6a4f370)
或者直接下載現成的軟件應用:
??? Ubuntu軟件管理中心:搜索vlc,點擊安裝。參考:https://wiki.videolan.org/Configure/
??? 然后將安裝路徑下的庫取出來直接用。
依賴項(有點多。。。)
注:除了前面的“1.依賴相關”里安裝的依賴項之外,這里我也同樣操作過下面的命令,安裝了以下依賴項:
sudo apt-get install libvorbis-dev libogg-dev libtheora-dev speex libspeex-dev flac libflac-dev x264 libx264-dev a52-0.7.4 liba52-0.7.4-dev mpeg2dec libmpeg2-4-dev faad libfaad-dev faac libfaac-dev lame libmp3lame-dev libavdevice-dev libmad0 libmad0-dev libschroedinger-dev libebml-dev libdca-dev twolame libtwolame-dev libmpcdec-dev libvorbisidec1 libvorbisidec-dev libass-dev libmatroska-dev libdvbpsi-dev libmodplug1 libmodplug-dev libshout3 libshout3-dev libdvdread4 libdvdnav4 libdvdnav-dev livemedia-utils liblivemedia-dev libcddb2 libcddb2-dev libcdio13 libcdio-dev libxcb-composite0-dev libcdio-utils vcdimager libvcdinfo0 libvcdinfo-dev libgpg-error0 libgpg-error-dev libgcrypt11-dev gnutls-bin libgnutls-dev libdap-bin libdap-dev libxml2 libxml2-dev libpng12-0 libpng12-dev libjpeg8 libtiff5 libsdl1.2-dev libsdl-image1.2 libsdl-image1.2-dev libc-bin gettext libfreetype6 libfreetype6-dev libfribidi-dev libfribidi0 zlib1g zlib1g-dev libtag1-dev libcaca0 libcaca-dev caca-utils libqt4-dev libportaudio2 libupnp-dev libupnp6 libexpat1 libexpat1-dev yasm libxcb-xv0 libxcb-xv0-dev libx11-xcb1 libx11-xcb-dev liblua5.2-dev libswscale-dev
編譯:
# 源碼clone
git clone https://github.com/videolan/vlc.git
# 查看版本信息
git log
# 根據需要,可以更新到指定release版本:
#例vlc-4.0.0:
#git checkout 1f2e534f3033aab9dd31442f7b3956728b62b3d3
#例vlc-3.0.0:
#git checkout 8d432b090e08f141ce9156dc728afbed4636301b
# 開始編譯(注:備注:要支持播放rtsp流,必須enable live。要能打印debug,也要enable debug選項。)
./bootstrap
mkdir build; cd build
#../configure --disable-lua --disable-qt --enable-live555 --enable-debug? --enable-x264
../configure --enable-avcodec --enable-avformat --enable-swscale --enable-mad --enable-a52 --enable-libmpeg2 --enable-faad --enable-vorbis --enable-ogg --enable-theora --enable-freetype --enable-fribidi --enable-speex --enable-flac --enable-live555 --enable-caca --enable-alsa --enable-ncurses --enable-debug --enable-x264 --disable-lua --disable-qt --enable-dsm --enable-dvbpsi --enable-dvdnav --enable-dvdread --enable-bluray --enable-nfs --enable-pulse --enable-freerdp --enable-sftp --enable-vnc --enable-run-as-root --enable-archive --enable-dc1394 --enable-dv1394 --enable-smbclient
sudo make -j12 #或者 ./compile
sudo make install
啟動VLC:
#直接在命令行上:
vlc --ffmpeg-hw #hw:硬解? sw:軟解
#其實可以直接啟動:
vlc
#Exemple: on playback log output (with -v debug and ATI VAAPI)
[0x7f8c4cc03ba8] avcodec decoder: Using VA API version 0.32 for hardware decoding.
以下“3.”“4.”“5.”節,與VLC硬解相關
3.libva-2.1.1編譯安裝
#依賴
$ sudo apt install -y libc6 libdrm-intel1 libdrm2 libva-x11-1 libva1 multiarch-support
#源碼
$ git clone https://github.com/intel/libva.git
$ cd libva
#編譯
$ sudo ./autogen.sh -with-drivers-path=/usr/lib/x86_64-linux-gnu/dri
$ sudo make -j12
$ sudo make install
4.vainfo
vainfo工具用于查看libva庫調用信息。
$ sudo apt install vainfo
$ vainfo
# 將會輸出一些調用信息
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'i965'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
vainfo支持調用nvidia顯卡,但需要先安裝nvidia_video驅動:
$ sudo apt install vdpau-va-driver
#查看庫文件
$ ll /usr/lib/x86_64-linux-gnu/dri/
#將查看到有個nvidia_drv_video.so文件
lrwxrwxrwx?? 1 root root?????? 18 4月?? 7? 2016 nvidia_drv_video.so -> vdpau_drv_video.so
#此時使用vainfo查看調用情況
$ vainfo
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'nvidia'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.39 (libva 1.7.0)
vainfo: Driver version: Splitted-Desktop Systems VDPAU backend for VA-API - 0.7.4
vainfo: Supported profile and entrypoints
????? VAProfileMPEG2Simple??????????? :?? ?VAEntrypointVLD
????? VAProfileMPEG2Main????????????? :?? ?VAEntrypointVLD
????? VAProfileMPEG4Simple??????????? :?? ?VAEntrypointVLD
????? VAProfileMPEG4AdvancedSimple??? :?? ?VAEntrypointVLD
????? VAProfileH264Baseline?????????? :?? ?VAEntrypointVLD
????? VAProfileH264Main?????????????? :?? ?VAEntrypointVLD
????? VAProfileH264High?????????????? :?? ?VAEntrypointVLD
????? VAProfileVC1Simple????????????? :?? ?VAEntrypointVLD
????? VAProfileVC1Main??????????????? :?? ?VAEntrypointVLD
????? VAProfileVC1Advanced??????????? :?? ?VAEntrypointVLD
vainfo支持調用intel核顯,但需要先安裝i965-va-driver驅動:
(但是我的i965-va-driver庫調用一直是下面的問題,無法解決。)
#查看是否安裝了驅動
$ apt list i965-va-driver
Listing... Done
i965-va-driver/xenial,now 1.7.0-1 amd64 [installed,automatic]
#如果沒有安裝,則進行安裝
$ sudo apt install -y i965-va-driver
#此時使用vainfo查看調用情況(注:要先將libva調用庫改為i965,即intel的VAAPI庫。)
$ export LIBVA_DRIVER_NAME=i965
$ vainfo
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'i965'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
vainfo: intel_driver.c:100: intel_driver_init: Assertion `(((struct drm_state *)(ctx)->drm_state)->auth_type == (VA_DRM_AUTH_DRI1)) || (((struct drm_state *)(ctx)->drm_state)->auth_type == (VA_DRM_AUTH_DRI2)) || (((struct drm_state *)(ctx)->drm_state)->auth_type == (VA_DRM_AUTH_CUSTOM))' failed.
Aborted (core dumped)
可能是直接使用apt安裝存在支持問題,于是嘗試自己編譯intel的vaapi驅動:
$ sudo apt-get install libx11-dev libtool libdrm-dev build-essential autoconf libva-dev
$ git clone https://github.com/intel/intel-vaapi-driver.git
$ cd intel-vaapi-driver/
$ ./autogen.sh
#此時存在一些依賴項的版本問題:
#configure: error: Package requirements (libva >= 1.4.0) were not met:
#Requested 'libva >= 1.4.0' but version of libva is 1.3.0
$ git clone https://github.com/intel/libva.git
$ cd libva/
$ ./autogen.sh -with-drivers-path=/usr/lib/x86_64-linux-gnu/dri
$ make -j12
$ sudo make install
#完成后返回intel-vaapi-driver目錄,再次配置并編譯:
$ cd ../intel-vaapi-driver/
$ ./autogen.sh
#我在配置路徑的時候發現配置無用,路徑仍然是默認的/usr/local/lib/dri/
#沒去深究,我繼續編譯安裝,最后手動將/usr/local/lib/dri/i965_drv_video.so庫鏈接到/usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
#后來發現是libva必須要先修改安裝路徑,然后intel-vaapi-driver的修改才能起作用
$ ./configure --prefix=/usr/lib/x86_64-linux-gnu/dri/
$ make -j12
$ sudo make install
#$ sudo ln -s /usr/local/lib/dri/i965_drv_video.so /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
#$ sudo ln -s /usr/local/lib/dri/i965_drv_video.la /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.la
此時使用vainfo查看調用情況,這次異常不一樣了,似乎是某函數問題:
$ vainfo
libva info: VA-API version 0.39.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'i965'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so has no function __vaDriverInit_0_32
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
我在GitHub上有找到類似的問題,但并不能解決我這出現的情況,后來提了issue:https://github.com/intel/intel-vaapi-driver/issues/455
繼續嘗試,經過仔細考慮懷疑是這些驅動的版本兼容問題,比如我查到的大部分人們的版本為:libva info: VA-API version 0.34.0,而我的是0.39.0。
經查詢:0.34.0對應的libva版本是1.2.1,所以下載對應版本:https://github.com/intel/libva/archive/libva-1.2.1.tar.gz
解壓后進入目錄,進行編譯安裝:
$ ./autogen.sh -with-drivers-path=/usr/lib/x86_64-linux-gnu/dri
$ make -j12
$ sudo make install
#完成后使用vainfo查看
$ vainfo
libva info: VA-API version 0.34.0
libva info: va_getDriverName() returns 0
libva info: User requested driver 'i965'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva error: /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so has no function __vaDriverInit_0_32
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
#可以看到VA-API版本已經為0.34.0了,接下來重新編譯intel-vaapi-driver
$ cd intel-vaapi-driver
$ ./autogen.sh
#會出現錯誤:
configure: error: Package requirements (libva >= 1.4.0) were not met:
Requested 'libva >= 1.4.0' but version of libva is 0.34.0
我們的intel-vaapi-driver也應該使用舊版本,經檢查應該使用:intel-vaapi-driver_1.2.1版本。下載:https://github.com/intel/intel-vaapi-driver/archive/1.2.1.tar.gz
解壓后進入目錄,進行編譯安裝:
$ cd ../intel-vaapi-driver-1.2.1/
$ ./autogen.sh
$ make -j12
但是編譯出現了錯誤,問題可能出在源碼里吧,因為新版本編譯都正常,`
只可惜新版本運行有問題,舊版本又編譯不過。
Traceback (most recent call last):
? File "../../gpp.py", line 200, in
??? writeblocks(outfile, blocks)
? File "../../gpp.py", line 168, in writeblocks
??? do_writeblock(block, [])
? File "../../gpp.py", line 161, in do_writeblock
??? while check_cond(block.param_op, for_curs[0], block.param_limit):
? File "../../gpp.py", line 138, in check_cond
??? assert type(cur) == int
AssertionError
make[5]: Leaving directory '/home/toson/soft/intel-vaapi-driver-1.2.0/src/shaders/post_processing/gen5_6'
Makefile:376: recipe for target 'all-recursive' failed
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory '/home/toson/soft/intel-vaapi-driver-1.2.0/src/shaders/post_processing'
Makefile:377: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/home/toson/soft/intel-vaapi-driver-1.2.0/src/shaders'
Makefile:941: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/toson/soft/intel-vaapi-driver-1.2.0/src'
Makefile:533: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/toson/soft/intel-vaapi-driver-1.2.0/src'
Makefile:410: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
5.檢查版本
#查看libva版本
dpkg-query --showformat='${Package}: ${Version}\n' --show | grep libva
#查看vainfo版本
dpkg-query --showformat='${Package}: ${Version}\n' --show | grep vainfo
#查看i965版本
dpkg-query --showformat='${Package}: ${Version}\n' --show | grep i965
例:(我運行的結果)
# List installed libva packages
$ dpkg-query --showformat='${Package}: ${Version}\n' --show | grep libva
libva-dev: 1.7.0-1ubuntu0.1
libva-drm1: 1.7.0-1ubuntu0.1
libva-egl1: 1.7.0-1ubuntu0.1
libva-glx1: 1.7.0-1ubuntu0.1
libva-tpi1: 1.7.0-1ubuntu0.1
libva-wayland1: 1.7.0-1ubuntu0.1
libva-x11-1: 1.7.0-1ubuntu0.1
libva1: 1.7.0-1ubuntu0.1
libva1: 1.7.0-1ubuntu0.1
# The vainfo installed
$ dpkg-query --showformat='${Package}: ${Version}\n' --show | grep vainfo
vainfo: 1.7.0-1ubuntu0.1
# List installed i915 Intel VAAPI driver
$ dpkg-query --showformat='${Package}: ${Version}\n' --show | grep i965
i965-va-driver: 1.7.0-1
6.我在編譯VLC時問過的問題
依賴庫編譯與調用:
Toson_桐:有誰知道編譯vlc的時候怎樣讓它不依賴ffmpeg的那些解碼模塊?
不斷電的夢:依不依賴是代碼調用時決定的, 不是編譯時決定的.
Toson_桐:編譯時可以加編譯參數“–disable-***”,但是沒有–disable-ffmpeg這個
Toson_桐:vlc是不是必須依賴ffmpeg
爨纛鼟:那你得自己編ffmpeg禁用那些模塊 然后再編vlc 鏈你自己編的那版ffmpeg
爨纛鼟:@Toson_桐 你直接把libavcodec_plugin.so刪了就行
爨纛鼟:vlc對ffmpeg是運行時依賴 你把插件一刪就沒有了
爨纛鼟:ffmpeg的解碼器比較全面 我不知道你為什么要禁用它 但是我告訴你可以通過運行時參數指定使用哪個解碼器 如果你要自己寫一個解碼器 可以把分數設得比ffmpeg高 這樣會優先找你的
Toson_桐:@爨纛鼟 厲害了!,問一下禁用ffmpeg會不會vlc對某些編碼格式就不支持了
爨纛鼟:肯定的啊
Toson_桐:我主要想看vlc自己的解碼能力,做個對比
爨纛鼟: libvlc什么功能都沒有 vlc所有的功能都是插件提供的
爨纛鼟:libvlccore是插件加載器 libvlc實現音視頻播放邏輯和負責線程調度
Toson_桐:我明白了,vlc依賴的x264也是它的插件了,我是解碼相機的H264格式視頻流,我可以跳過vlc直接使用底下的插件庫,應該可以達到快速解碼吧
Toson_桐:現在我這掛載20多個攝像頭之后,cpu資源全耗光了
Eric:牛逼
Toson_桐:聽說vlc解碼效果好,就來研究
爨纛鼟:用硬編硬解 你有顯卡沒有
Toson_桐:剛開始就想用核顯,linux上編譯,一直沒調通。獨顯倒是能用,不過獨顯都拿去跑模型用了
爨纛鼟:跑模型跟編解碼不是同一塊核心
爨纛鼟:跑模型用的是cuda核心 編碼是nvenc 解碼是cuvid
三、VLC代碼
參考雷霄驊文檔:https://blog.csdn.net/leixiaohua1020/article/details/42363079
流程圖中包含了3個結構體:
libvlc_instance_t:代表一個libVLC的實例。
libvlc_media_t:代表一個可以播放的媒體。
libvlc_media_player_t:代表一個VLC媒體播放器(一個視頻播放器播放一個視頻)。注意VLC并不僅僅用于媒體播放。
創建或者以上3個結構體通過以下6個函數:
libvlc_new():創建libvlc_instance_t。
libvlc_media_new_path():創建libvlc_media_t。
libvlc_media_player_new_from_media():創建libvlc_media_player_t。
libvlc_media_player_release():釋放libvlc_media_player_t
libvlc_media_release():釋放libvlc_media_t。
libvlc_release():釋放libvlc_instance_t。
可以通過下面的函數控制媒體的播放或者暫停:
這些函數都需要使用libvlc_media_player_t作為參數。這里處于簡化的目的,只使用了播放和停止函數。
libvlc_media_player_play():播放。
libvlc_media_player_pause():暫停。
libvlc_media_player_stop():停止。
獲取視頻的時長,寬,高等信息:
在libVLC中可以通過如下等函數獲取。
libvlc_media_player_get_length()
//libvlc_video_get_width()
//libvlc_video_get_height()
實測已經沒有上述2個函數,以下面一個函數代替:
libvlc_video_get_size(mp, 0, &width, &height);
但是有一個很奇怪的現象:如果在調用完libvlc_media_player_play()之后,立即調用上述3個函數的話,返回的值都是0,只有“等待”一段時間(例如調用sleep())后再調用上述函數,才能得到正確的數值。
四、例程
以下是我運行過的程序,實現vlc代碼提取攝像機圖像:
//
// Created by toson on 19-4-15.
//
#include
#include
#include
#include
#include
#include "unistd.h"
using namespace std;
using namespace cv;
int IMG_WIDTH = 3840;//2592//1920;//1280//1280
int IMG_HEIGHT= 2160;//1520//1080;//960//720
namespace vlcreader_ns {
//#pragma comment(lib,"libvlc.so.5")
//#pragma comment(lib,"libvlccore.so.8")
??? class VLCReader
??? {
??? public:
??????? VLCReader(char* url = 0);
??????? ~VLCReader();
??????? void start(int wantW = IMG_WIDTH, int wantH = IMG_HEIGHT);
??????? void pause(bool paused);
??????? void ctrl(const char *psz_options);
??????? cv::Mat frame() { return img; }
??????? unsigned int w, h;
??? private:
??????? char* rtspAddress = "rtsp://admin:admin123@192.168.1.102:554/cam/realmonitor?channel=1&subtype=0";
??????? libvlc_instance_t *inst;
??????? libvlc_media_player_t *mp;
??????? unsigned char *pixel;
??????? cv::Mat img;
??????? libvlc_media_t *media;
??????? static void *cb_lock(void *opaque, void **plane);
??????? static void cb_unlock(void *opaque, void *picture, void * const *plane);
??????? static void cb_display(void *opaque, void *picture);
??????? unsigned char * updataSize();
??? };
??? VLCReader::VLCReader(char*url)
??????????? : inst(0), mp(0), pixel(0), w(0), h(0), rtspAddress(url)
??? {
??????? const char * vlc_args[] = {
??????????????? "--ipv4", //將會默認為所有連接使用 IPv4。 (默認關閉)
??????????????? "--no-prefer-system-codecs", //無論是否有可用的選擇都優先使用您系統中的原生插件替代VLC自己的插件。 (默認關閉)
??????????????? "--rtsp-caching=300", //延遲速度ms //允許您修改 RTSP 流的默認緩存值。此值必須以毫秒為單位設置。
??????????????? "--network-caching=500", //設高可減少花屏 //遠程文件額外增加的緩存值,以毫秒為單位。
??????????????? "--demux=h264", //去復用器被用于分離 "復合" 流 (類似音頻和視頻流)。
??????????????? "--rtsp-tcp", //--rtsp-host //--rtsp-tcp //使用 RTP over RTSP (TCP) (默認關閉)
??????? };
??????? std::string rstp_str(rtspAddress);
??????? if (rstp_str.substr(0, 4) == "file")
??????? {
??????????? vlc_args[4] = "";
??????????? vlc_args[5] = "";
??????? }
??????? inst = libvlc_new(sizeof(vlc_args) / sizeof(vlc_args[0]), vlc_args);
??????? mp = libvlc_media_player_new(inst);
??????? libvlc_video_set_callbacks(mp, cb_lock, cb_unlock, cb_display, this);
??? }
??? VLCReader::~VLCReader()
??? {
??????? libvlc_media_player_stop(mp);
??????? libvlc_media_player_release(mp);
??????? libvlc_release(inst);
??? }
??? void VLCReader::start(int wantW, int wantH)
??? {
??????? libvlc_media_player_pause(mp);
??????? media = libvlc_media_new_location(inst, rtspAddress);
??????? libvlc_media_player_set_media(mp, media);
??????? libvlc_media_release(media);
??????? libvlc_video_set_format(mp, "RV24", wantW, wantH, wantW * 3);
??????? libvlc_media_player_play(mp);
??? }
??? void VLCReader::pause(bool paused)
??? {
??????? if (mp) {
??????????? libvlc_media_player_set_pause(mp, paused);
??????? }
??? }
??? unsigned char * VLCReader::updataSize()
??? {
??????? libvlc_video_get_size(mp, 0, &w, &h);
??????? //int w = libvlc_video_get_width(mp);
??????? //int h = libvlc_video_get_height(mp);
??????? if (!w || !h)
??????????? return 0;
??????? if (pixel && (this->w != w || this->h != h)) {
??????????? delete[] pixel;
??????????? pixel = 0;
??????? }
??????? if (!pixel) {
??????????? pixel = new unsigned char[w*h * 3];
??????????? this->w = w;
??????????? this->h = h;
??????? }
??????? return pixel;
??? }
??? void* VLCReader::cb_lock(void *opaque, void **plane)
??? {
??????? VLCReader *p = (VLCReader*)opaque;
??????? *plane = p->updataSize(); //tell VLC to put decoded data to this buffer
??????? return *plane;
??? }
??? void VLCReader::cb_unlock(void *opaque, void *picture, void * const *plane)
??? {
??????? VLCReader *p = (VLCReader*)opaque;
??????? unsigned char *pix = (unsigned char*)picture;
??????? if (pix) {
??????????? p->img = cv::Mat(p->h, p->w, CV_8UC3, pix);
??????? }
??? }
??? void VLCReader::cb_display(void *opaque, void *picture)
??? {
??????? VLCReader *p = (VLCReader*)opaque;
??????? if (!p->img.empty()) {
//??????????? cv::cvtColor(p->img, p->img, cv::COLOR_BGR2RGB);
//??????????? cv::namedWindow("1", CV_WINDOW_NORMAL);
//??????????? resize(p->img, p->img, Size(0,0), 0.5, 0.5, INTER_LINEAR);
??????????? cv::imshow("1", p->img);
??????????? cv::waitKey(1);
??????? }
??? }
??? void VLCReader::ctrl(const char *psz_options)
??? {
??????? libvlc_media_add_option(media, psz_options);
??? }
}
using namespace vlcreader_ns;
int main(int argc, char* argv[])
{
??? VLCReader vlc_reader("rtsp://admin:admin123@192.168.1.106:554/cam/realmonitor?channel=1&subtype=0");
//??? VLCReader vlc_reader("file:////home/toson/videos/BigBuckBunny_320x180.mp4");
??? vlc_reader.start();
??? sleep(3);
??? vlc_reader.pause(true); //暫停
??? sleep(3);
??? vlc_reader.pause(false);
??? sleep(3);
//??? vlc_reader.ctrl("-f"); //"--fullscreen"
??? sleep(3);
??? sleep(100);
??? return 0;
}
?
————————————————
版權聲明:本文為CSDN博主「Tosonw」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/Tosonw/article/details/89509356
VLC核顯編解碼簡介 + Linux平臺vlc編譯
- Linux(218415)
- Linux平臺(8331)
- 編譯(34998)
- VLC(16093)
- vlc播放器(5198)
相關推薦
熱點推薦
米爾T113核心板的農機中控屏顯方案解析
、 基于 T113的農機中控屏顯方案示例基于全志T113i處理器的核心板方案通常采用模塊化架構,便于功能擴展與定制開發,其典型系統組成如下:· 視頻編解碼:支持開機動畫· 影像輸入:CVBS 倒車攝像頭
2026-01-04 17:58:47
RK3588?平臺?MPP?編譯?+ VPU?格式測試
? ? ? ? ? ? 大家在做瑞芯微 ?RK3588? 開發時,是不是經常困惑「怎么驗證? VPU? 到底支持哪些編解碼格式?」「 MPP? 媒體庫該怎么編譯?」今天手把手帶你走一遍流程
2025-12-25 11:33:54
1207
1207
德州儀器PCM2904/PCM2906立體聲音頻編解碼器:特性、應用與設計指南
德州儀器PCM2904/PCM2906立體聲音頻編解碼器:特性、應用與設計指南 在當今數字化音頻的時代,高質量的音頻編解碼器對于各種音頻設備至關重要。德州儀器(Texas Instruments
2025-12-23 15:05:02
208
208TLV320AIC12KIDBTR 低功耗單聲道語音頻編解碼器
TLV320AIC12KIDBTR低功耗單聲道語音頻編解碼器產品型號:TLV320AIC12KIDBTR產品品牌:TI/德州儀器產品封裝:TSSOP30產品功能:語音頻編解碼
2025-12-20 11:30:53
152
152
米爾RK3506核心板SDK重磅升級,解鎖三核A7實時控制新架構
出來,獨立運行實時操作系統RT-Thread。此架構實現了完美的任務隔離:兩顆A7核運行通用Linux,處理網絡、存儲等復雜業務;被隔離的A7核則專司硬實時任務,確保微秒級響應。這為傳統PLC、遠程I
2025-12-19 20:35:23
瑞芯微SOC智能視覺AI處理器
需要連接多種外設的產品。顯示: 支持雙屏異顯,最高4K@60fps輸出。
RK1126B: 一款集成自研NPU的智能視覺AI處理器,專注于視頻輸入端的AI分析與處理。CPU: 雙核A53,主要負責
2025-12-19 13:44:47
AMD EV系列器件VCU Control Software簡介
近年來,隨著音視頻應用場景和內容越來越豐富,對網絡傳輸和存儲都帶來了巨大的挑戰。為了應對這一挑戰,各種視頻編解碼技術就被提了出來,其中H.264/H.265視頻編解碼協議是當前的主流視頻編解碼標準
2025-12-10 14:45:59
3932
3932
藍牙模塊低功耗新突破:LE Audio技術詳解(LC3編解碼/多設備串流/廣播音頻)
還支持多設備連接和音頻分享等功能,為消費者帶來了更加出色的音頻體驗。 LE Audio和經典藍牙相比的優勢 1.LC3編解碼器 LC3作為LE Audio強制支持的
2025-12-10 11:20:26
863
863
Linux Swap交換空間詳解:Android編譯內存不足?這樣擴充立竿見影
? ? 在 ?Linux? 系統使用過程中,你是否遇到過? “ 內存不足 ”? 的報錯?比如編譯? Android? 源碼時,明明按教程操作,卻因物理內存沒達到? 16G? 要求而編譯中斷?這正是
2025-12-06 08:10:17
3871
3871從兩輪車儀表到工程機械環視,米爾電子助力國產 HMI 顯控一體化突圍
登場。
性能越級:搭載全志 T527 八核 Cortex-A55 處理器,內置 RISC-V 協處理器與 2 TOPS NPU。采用AMP 異構架構,A55 跑 Android/Linux 處理復雜
2025-12-05 17:46:42
別再迷糊了!Linux交叉編譯到底是個啥?一文講清楚
就用 不繞彎子、接地氣、工程師能看懂 的方式,把交叉編譯講得明明白白。 而且結合我們鋇錸技術(BaileiTech)那些跑在 ARM、RISC-V、國產嵌入式 Linux 的產品,告訴你交叉編譯在工業場景里究竟為什么重要。 一、交叉編譯是什么?一句話講清
2025-12-03 16:28:54
701
701
基于 DR1M90 的 Linux-RT 內核開發:從編譯配置到 GPIO / 按鍵應用實現(1)
本手冊由創龍科技研發,針對 DR1M90,詳述 Linux-RT 實時內核開發:含實時性測試(Linux 與 Linux-RT 對比、CPU 空載 / 滿負荷 / 隔離狀態測試)、內核配置編譯
2025-12-02 10:38:01
1005
1005
瑞芯微RK3562平臺FFmpeg硬件編解碼移植及性能測試實戰攻略
本文介紹瑞芯微RK3562平臺,FFmpeg硬件編解碼移植及性能測試方法。FFmpeg簡介與實測數據FFmpeg簡介FFmpeg是一套多媒體框架,能夠解碼、編碼、轉碼、復用、解復用、流、過濾和播放
2025-11-28 19:02:04
936
936
Linux 下交叉編譯實戰:跑起來你的第一個 STM32 程序
很多開發者第一次接觸STM32,總會被“交叉編譯”、“燒錄程序”等概念繞暈。其實方法很簡單:在Linux下配置交叉編譯環境,編寫簡單程序,然后燒錄到STM32,就可以看到成果了。本文帶你從零開始
2025-11-24 19:04:50
454
454
RK3576驅動高端顯控系統升級:多屏拼控與AI視覺融合解決方案
系統依賴多工控主機、外接顯卡和解碼器,存在功耗高、延遲大的問題。而瑞芯微 RK3576 打造的新一代 AI 多媒體平臺,憑借 “三屏異顯 + 八路攝像頭輸入 + AI 邊緣計算” 的架構,全面提升高端顯
2025-11-21 17:51:45
Linux搭建平臺
起因:本人用IDE感覺好不方便,所以配置了相關的Linux環境,Linx配置環境文檔看得有點亂,索性整理了一下。
環境是zsh,用bash的可以稍微改一下。主要下載了nuclei-sdk
2025-11-05 09:00:56
音視頻編解碼封裝解封裝部件介紹
是否有探索開源鴻蒙音視頻編解碼技術的欲望?是否對開源鴻蒙音視頻編解碼格式支持有訴求?別急——今天這份開源鴻蒙AVCodec Kit介紹文章,就是解答疑惑的指南!參考這份指南,可以使用開源鴻蒙的音視頻編解碼能力,進行應用開發;也可以參與共建,讓開源鴻蒙音視頻編解碼更加完善!
2025-10-31 09:15:20
362
362
基于E203 RISC-V的音頻信號處理系統 -CODEC(音頻編解碼器)配置
CODEC介紹
本設計采用的音頻編解碼器是WM8731,該編解碼器可以通過I2C進行寄存器配置,可以調節主從模式、數據位數可設置為16bit、24bit、32bit。可以設置的傳輸模式為I2S、DSP等模式。
寄存器值配置軟件代碼
邏輯分析儀抓取波形
2025-10-28 06:29:53
VDMA IP核簡介
VDMA端口信號
S_AXI_LITE:PS端可以通過AXI_LITE協議對IP核進行控制;
S_AXIS_S2MM:視頻流(AXI STREAM)輸入到IP核的FIFO中
2025-10-28 06:14:54
使用rk3568開發板,核0\\1\\3運行linux,核2運行hal,在核0中怎么關閉核2
使用rk3568開發板,核0\\\\1\\\\3運行linux,核2運行hal,想在內核中通過smc指令完成核0對核2得啟動和關閉,文件系統中/sys/rk_amp目錄下有個boot_cpu文件,可以發起對核2得開啟和關閉操作,但是目前會返回錯誤,請問如果解決呢
2025-10-27 10:09:54
瑞芯微RK3588平臺FFmpeg硬件編解碼移植及性能測試實戰攻略
本文介紹瑞芯微RK3588平臺,FFmpeg硬件編解碼移植及性能測試方法。FFmpeg簡介與實測數據FFmpeg簡介FFmpeg是一套多媒體框架,能夠解碼、編碼、轉碼、復用、解復用、流、過濾和播放
2025-10-21 13:51:27
1205
1205
車載360環視平臺:米爾RK3576開發板支持12路低延遲推流
,傳統硬件平臺往往在攝像頭數量、編解碼效率和推流延遲上存在瓶頸,難以滿足行業對 高并發 + 低延遲 的要求。作為嵌入式領域的先行者,米爾電子基于瑞芯微 RK3576開發板,推出了針對車載360環視
2025-10-11 17:55:41
瑞芯微RK35XX系列FFmpeg硬件編解碼實測,詳細性能對比!
FFmpeg硬件編解碼技術通過調用GPU或專用的媒體處理芯片來加速視頻的壓縮與解壓縮過程,其核心價值在于能夠顯著提升處理效率并降低系統資源消耗。適用于對實時性、功耗或并行處理能力有較高要求的場景
2025-09-30 17:46:40
2592
2592
RK3506開發板QT Creator開發手冊,交叉編譯工具鏈與QT應用示例,入門必備
本文基于觸覺智能RK3506核心板/開發板介紹QTCreator交叉編譯配置與QT應用示例。如需購買開發板進行評估驗證簡介QTCreatorQtCreator?是由TheQtCompany開發的跨平臺集成開發環境(IDE),專為Qt框架設計,支持C++、QML、Pyth
2025-09-30 16:26:38
3474
3474
新唐科技推出低延遲音頻編解碼器NAU88L21C
Audio CODEC (Audio Coder-Decoder) 是音頻“編解碼器”,主要功能是進行音頻信號的編碼(壓縮)和解碼(解壓)。在音頻信號處理過程中,信號的采集處理,編碼,解碼都是
2025-09-30 09:25:19
5786
5786
創龍 瑞芯微 RK3588 國產2.4GHz八核 工業開發板—Linux-RT應用開發案例
Linux-RT 性能;還提供 rt_gpio_ctrl(實時線程控制 LED 翻轉)、rt_input(實時線程監聽按鍵觸發 LED)兩個開發案例,含測試、編譯步驟與關鍵代碼,為評估板 Linux-RT 應用開發提供指導。
2025-09-25 17:25:41
620
620
獨顯和集顯有什么區別?一篇搞懂!?
選電腦時,“顯卡”是決定使用體驗的關鍵硬件。有人糾結“集顯夠不夠用”,有人擔心“獨顯太貴且笨重”。其實獨顯(獨立顯卡)和集顯(集成顯卡)沒有絕對的 “好壞”,只有“是否適配需求”:集顯適合日常辦公
2025-09-19 16:09:21
5664
5664
瑞芯微RK3576平臺FFmpeg硬件編解碼移植及性能測試實戰攻略 觸覺智能RK3576開發板演示
本文介紹瑞芯微RK3576平臺,FFmpeg硬件編解碼移植及性能測試方法。演示設備:觸覺智能RK3576開發板FFmpeg簡介與實測數據FFmpeg簡介FFmpeg是一套多媒體框架,能夠解碼、編碼
2025-09-08 13:58:41
876
876
增強T-BOX設計,新唐編解碼器的重要作用
、遠程異常維護和更新。
數據收集和傳輸:安全保護和隱私加密。
多接口擴展:可定制的功能和軟件應用程序。
在T-BOX中,編解碼器(編碼器-解碼器)起著至關重要的作用,充當主要的通信橋梁。其基本功能包括
2025-09-05 06:26:02
國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—Linux系統使用手冊(三)
本文檔詳細介紹了T113開發板的Linux環境搭建與系統編譯流程。主要內容包括:1)開發環境要求(Windows/VMware/Ubuntu版本);2)Linux SDK安裝步驟(依賴軟件安裝、源碼
2025-09-04 14:56:56
521
521
國產!全志T113-i 雙核Cortex-A7@1.2GHz 工業開發板—Linux系統使用手冊(二)
本文檔詳細介紹了T113開發板的Linux環境搭建與系統編譯流程。主要內容包括:1)開發環境要求(Windows/VMware/Ubuntu版本);2)Linux SDK安裝步驟(依賴軟件安裝、源碼
2025-09-02 16:36:02
590
590
視耀T1 MINI-4路4K編解碼器丨端到端超低延時賦能4K超清視界
、串流分發等基礎場景展現顯著優勢。其靈活的通道管理可同步處理多源流媒體信號,確保遠程協作、多平臺內容分發等場景下的低延時傳輸與高質量畫面呈現,實現全鏈路效能躍升。
上市以來,視耀T1 MINI編解碼器已
2025-08-28 13:43:50
TLV320AIC3104-Q1汽車級低功耗音頻編解碼器技術解析
Texas Instruments TLV320AIC3104-Q1低功耗立體聲音頻編解碼器配有立體聲耳機放大器以及多個輸入和輸出,其可在單端或全差分配置中編程。該器件具有廣泛的基于寄存器的電源控制
2025-08-28 10:31:43
749
749
如何調用mpp硬解+ffmpeg本地播放視頻,RK3576
我往rk3576上部署了一個ubuntu系統,想測試rkmpp+ffmpeg或者rkmpp+gstreamer硬解,實現本地播放視頻,有什么思路或者案例可以供我參考嗎?
目前遇到了很多問題:
無法使用rkmpp解碼,如果直接本地播放視頻(mpv/vlc),是純軟解等問題
2025-08-23 10:05:13
如何使用 M487 微控制器和外部音頻編解碼器NAU88L25將 AMR 格式的聲音錄制到 MicroSD 卡中?
使用 M487 微控制器和外部音頻編解碼器NAU88L25將 AMR 格式的聲音錄制到 MicroSD 卡中
2025-08-20 06:28:24
一款低功耗、高質量的24位立體聲編解碼器-CJC8972
24位立體聲編解碼器通過數字信號處理實現高精度音頻編碼與解碼,核心在于對立體聲信號的數字化處理及還原。
2025-08-07 09:22:27
1101
1101
360環視技術推薦的硬件平臺:支持多攝像頭與三屏異顯的理想選擇
攝像頭接入通道不夠,限制了視野覆蓋;l 視頻編解碼能力不足,畫面延遲;l 缺乏AI識別能力,無法實現智能感知;l 輸出能力弱,難以支持多屏顯示或異顯需求。這時候,一個性能均衡、接口豐富、AI能力強
2025-07-30 17:32:03
【VisionFive 2單板計算機試用體驗】二維碼檢測與解碼
進行解碼。
二、搭建環境
使用PuTTY的ssh接口連接后開發板后,需要執行以下指令,以完成 StarFive Packages及其依賴的必要組件安裝,下載安裝時長比較久。
https
2025-07-30 01:01:39
FX3 UVC 無法與 Ubuntu 24.04 Cheese 或 Snapshot 相機應用程序配合使用,怎么處理?
添加了來自 VLC 的日志以供比較。根據日志,似乎 PipeWire 或 UVC 驅動程序存在一些問題。
我一直在做一些調試,發現對于 Ubuntu 視頻有 3 個類似的控制視頻的組件,V4L2
2025-07-16 06:37:58
Texas Instruments TAC5x42接口編解碼器數據手冊
Texas Instruments TAC5x42接口編解碼器包括低功耗立體聲音頻模數轉換器 (ADC) 和音頻數模轉換器 (DAC),集成了豐富的功能。這些支持時分復用 (TDM)、左對齊 (LJ
2025-07-14 14:43:12
630
630
【米爾RK3576開發板免費體驗】1、開發環境、鏡像燒錄、QT開發環境搭建以及應用部署
RK3576 是瑞芯微一款面向AI 市場推出的高性能處理器,它配備了四核Cortex-A72 和四
核Cortex-A53 的CPU,集成了6TOPS 的NPU 和3D GPU,支持4K 視頻編解碼
2025-07-14 11:26:52
【Milk-V Duo S 開發板免費體驗】人臉檢測測試(視頻)
https://bbs.elecfans.com/jishu_2494616_1_1.html我們編譯了人臉檢測的應用,現在攝像頭到了, 我們就進行實際測試。 視頻見https
2025-07-11 22:33:24
【Milk-V Duo S 開發板免費體驗】OV5647攝像頭測試
/sample_sensor_test 推流執行camera-test.sh PC上下載安裝VLC https://get.videolan.org/vlc/3.0.21/win64
2025-07-11 22:03:56
如何單獨編譯linux內核?
那套sdk?純linux sdk編譯方法見readmehttps://github.com/kendryte/k230_linux_sdk/
make linux
2025-07-11 08:06:38
請問編譯純rtos到底是選擇Linux+rtos的sdk編譯only rtos還是直接使用rtos sdk?
編譯純rtos到底是選擇Linux+rtos的sdk編譯only rtos還是直接使用rtos sdk?
2025-07-11 07:22:56
RK這2款旗艦芯片RK3588 PK RK3576,誰是最優選
編解碼能力上 RK3588 更勝一籌。四、支持多屏異顯兩者都支持多屏異顯和各種常見的顯示接口。? RK3576:最多支持 3 屏異顯和最高可支持 (4K@120 + 2.5K@60 + 2K@60),具有
2025-07-10 18:24:32
Texas Instruments TAC5311-Q1汽車單聲道音頻編解碼器數據手冊
Texas Instruments TAC5311-Q1汽車單聲道音頻編解碼器是一款低功耗單聲道編解碼器,具有10V~RMS ~差分輸入、104dB ADC和2V~RMS~ 差分輸出、114dB
2025-07-09 15:35:40
758
758
迅為iTOP-3588S開發板核心板引腳240PIN全部引出8GB內存32GBEMMC存儲
能力6TOPS的NPU算力,賦能各類AI場景。
強大的視頻編解碼8K編碼+8K解碼,持 8Kp60 H.264/H.265NVP9 視頻解碼,支持 8Kp30 H.264/H.265視頻編碼,支持
2025-06-23 11:19:37
AI玩具爆發,音頻編解碼器如何滿足語音交互需求
電子發燒友網綜合報道,在AI玩具已經開始逐漸爆發的當下,人機交互已經成為標配功能,而最重要的便是語音控制。而語音控制的第一步,便需要讓AI玩具聽懂你在說什么這就需要用到音頻編解碼器。 ? 音頻
2025-06-20 01:07:00
7032
7032ArkUI-X平臺橋接Bridge說明
。
數據類型支持
平臺橋接通過JSON格式或二進制格式序列化編解碼傳遞數據,支持基礎數據類型、數組類型和結構化數據。具體支持類型如下表
JSON格式數據支持類型表:
ArkTS
Java
2025-06-19 23:12:28
音諾恒RK3576安卓主板 工業云終端菜品識別結算臺邊緣計算開發板
6TOPS算力NPU,搭載Android14.0系統(內核為Linux5.10),GPU采用ARM G52 MC3,性能突出,性價比高。支持8K視頻編解碼,8K顯
2025-06-11 17:47:53
不借助Linux系統,在Windows下如何搭建ZMC900E交叉編譯環境
不需要依賴笨重的虛擬機,也不需要安裝雙系統。拋開繁瑣的環境準備,在Windows上輕松搭建交叉編譯環境。本文將介紹如何在Windows上搭建交叉編譯環境,不借助Linux系統,直接進行交叉編譯。前言
2025-05-21 11:34:25
743
743
iTOP-3588S開發板四核心架構GPU內置GPU可以完全兼容0penGLES1.1、2.0和3.2。
能力6TOPS的NPU算力,賦能各類AI場景。
強大的視頻編解碼8K編碼+8K解碼,持 8Kp60 H.264/H.265NVP9 視頻解碼,支持 8Kp30 H.264/H.265視頻編碼,支持
2025-05-15 10:36:03
請問RT-smart加linux的SDK包里有沒有開發linux內核(小核)的環境適配?
想使用K230的小核(linux)去驅動一些外設,要不要重新燒錄鏡像?如果不需要的話,有沒有更具體的例程可以借鑒參考?以下為官方文檔找到的一些資料,但是不夠具體,希望有更具體的一些開發例程。
雙系統sdk一般需要重新燒錄鏡像
2025-05-14 06:59:03
ADAU1761集成PLL的SIGMADSP立體聲、低功耗、96KHZ、24位音頻編解碼器技術手冊
ADAU1761是一款低功耗、集成數字音頻處理功能的立體聲音頻編解碼器,支持立體聲48 kHz錄音和回放,采用1.8 V模擬電源供電,功耗為14mW。立體聲音頻ADC和DAC支持8 kHz至96 kHz范圍內的采樣速率,并支持數字音量控制。
2025-05-12 15:41:44
1031
1031
ADAU1787四個ADC、兩個DAC、帶音頻DSP的低功耗編解碼器技術手冊
ADAU1787 是一款具有四個輸入和兩個輸出的編解碼器,其中整合了兩個數字信號處理器 (DSP)。從模擬輸入到 DSP 內核再到模擬輸出的路徑已針對低延遲進行優化,適用于噪聲消除耳機。通過加入少量無源組件,ADAU1787 提供了完整的耳機解決方案。
2025-05-12 14:57:45
1286
1286
基于RK3576的BASE64編解碼
了BASE64編解碼工具,方便用戶進行數據封裝。文章詳細說明了如何快速上手,包括源碼工程下載、開發環境搭建、例程編譯與運行。此外,還提供了BASE64編解碼API的詳細說明,包括編碼和解碼函數的原型、輸入
2025-05-12 13:41:39
526
526
5ms低延遲 視頻編解碼模塊迎來關鍵突破
隨著無人設備的應用越來越廣泛,遠程控制技術也在不斷革新。其中延時時間作為一個關鍵指標,直接決定著遠程控制無人設備等的綜合性能。因此,低帶寬、低延遲的視頻編解碼技術成為必須要突破的技術。編碼延時與編碼
2025-05-07 17:58:10
444
444
TPS65950 集成電源管理 IC (PMIC),具有 3 個 DC/DC、11 個 LDO、音頻編解碼器、USB HS收發器數據手冊
TPS65950 器件是一款高度集成的電源管理和音頻編碼器/解碼器(編解碼器)集成電路 (IC),支持 OMAP? 應用處理器的電源和外設要求。該器件包含電源管理、音頻編解碼器、通用串行總線
2025-04-28 14:38:42
719
719
TWL6040 用于便攜式應用的 8 通道高質量低功耗音頻編解碼器數據手冊
TWL6040 設備是具有高集成度的音頻編碼器/解碼器(編解碼器),可為便攜式應用程序提供模擬音頻編解碼器功能,如 所示。該設備包含多個音頻模擬輸入和輸出,以及麥克風偏置和附件檢測。該設備通過專有
2025-04-27 17:52:07
863
863
TWL6041 用于便攜式應用的 8 通道高質量低功耗音頻編解碼器數據手冊
TWL6041 是一種具有高集成度的音頻編解碼器,為便攜式應用程序提供模擬音頻編解碼器功能,如 所示。該設備包含多個音頻模擬輸入和輸出,以及麥克風偏置和附件檢測。該設備通過專有的 PDM 接口連接
2025-04-27 14:55:56
883
883
Linux_SDK編譯出的核心不全的原因?
根據官方提供的Linux_SDK編譯Ubuntu系統,lshw命令查看硬件配置,發現CPU1被禁用,僅開啟了CPU0,看設備樹文件確實是只配置了CPU0,并且沒有看到其他的配置。
期待結果和實際
2025-04-25 08:20:28
linux+rtos系統如何適配linux小核屏幕驅動?
我希望使用小核運行lvgl對大核程序進行控制,運行小核lvgldemo的時候發現linux下的屏幕沒有做適配,查看dts發現幾乎所有的dts都用的是hx8399作為dsi的顯示,但是現在市面上
2025-04-25 07:16:03
一款專為便攜式數字音頻應用而設計的單聲道編解碼器-CJC8911
Codec芯片 - CJC8911是一個低功率,高質量的單聲道編解碼器,設計用于便攜式數字音頻應用程序。該設備集成了完整的接口到一個出線端口的接口。片上數字信號處理執行圖形均衡器,三維聲音增強和麥克風或線路的自動電平控制輸入。
2025-04-22 09:28:51
681
681
新一代視頻編解碼標準H.266走向主流 頭部視頻平臺滲透率超70%
正從成熟走向主流,在頭部視頻平臺的滲透率超70%,達摩院正在積極推進自研視頻編解碼方案DAMO266的應用推廣與生態共建。 ? 據統計,當前視頻應用消耗全網超過80%的流量,且4K等超高清內容占比持續上升。面對視頻流量的嚴峻挑戰,業內不斷推
2025-04-21 11:24:18
945
945
QuarkPi-CA2 RK3588S卡片電腦:6.0Tops NPU+8K視頻編解碼+接口豐富,高性能嵌入式開發!
本帖最后由 jf_85110202 于 2025-4-12 12:12 編輯
QuarkPi-CA2 RK3588S卡片電腦:6.0Tops NPU+8K視頻編解碼+接口豐富,高性能嵌入式開發
2025-04-11 16:03:36
Linux內核編譯失敗?移動硬盤和虛擬機的那些事兒
Linux開發中,編譯內核是一項常見任務,但不少開發者在移動硬盤或虛擬機環境下嘗試時會遭遇失敗。本文將簡要探討這些問題的成因,并介紹一些虛擬機使用技巧,幫助大家更好地應對相關問題。在移動硬盤里編譯
2025-04-11 11:36:04
846
846
迅為iTOP-RK3588S開發板/核心板瑞芯微RK3588S處理器6TOPS算力內置NPU
能力6TOPS的NPU算力,賦能各類AI場景。
強大的視頻編解碼8K編碼+8K解碼,持 8Kp60 H.264/H.265NVP9 視頻解碼,支持 8Kp30 H.264/H.265視頻編碼,支持
2025-04-10 11:13:03
iTOP-3588開發板采用瑞芯微RK3588處理器四核心架構GPU內置獨立NPU強大的視頻編解碼
的視頻編解碼
8K編碼+8K解碼,多路視頻源同時解碼。支持8K@60fps
H.265/H.264/VP9/AV1視頻解碼和8K@30fps H.265/H.264視頻編碼。
開發板采用核心板+底板
2025-04-09 16:09:58
從安防到元宇宙:RK3588如何重塑視覺感知邊界?
示例:
多模態AI融合:支持TensorFlow、PyTorch等主流框架模型部署,可應用于智能零售中的行為識別系統,通過攝像頭+紅外傳感器數據融合,精準分析顧客停留熱點。
七屏異顯與8K編解碼:在數
2025-04-07 16:11:04
迅為iTOP-RK3576開發板/核心板視頻編解碼能力強高性能低功耗的應用處理芯片
、PyTorch、Caffe等一系列框架的網絡模型。滿足多種應用場景。
iTOP-3576擁有強大的視頻編解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,支持4k@60fps
2025-04-07 14:18:10
啟明智顯兩位數高性價比4.3寸觸摸串口屏,帶WIFI/藍牙
Model3E核心板方案觸摸串口屏,工業級設計,2D加速,PNG/JPEG編解碼,不到百元也可呈現復雜炫酷UI
2025-04-03 16:05:50
672
672
《RK3588核心板:AIoT邊緣計算的革命性引擎,能否解鎖智能物聯新范式?》
顧客停留熱點。
七屏異顯與8K編解碼:在數字孿生工廠中,可驅動多個監控大屏展示生產數據、設備狀態及實時視頻,8K畫質確保細節無遺漏。
工業級可靠性:-20℃至85℃寬溫設計,適配AGV機器人、戶外
2025-04-02 10:26:16
3D圖形和視頻編解碼器引擎的通用微處理器RZ/V2L數據手冊
DRP 和 AI-MAC 組成。 它還配備一個 16 位的DDR3L/DDR4 接口,具備內置 Arm Mali-G31 的 3D 圖形引擎和視頻編解碼器 (H.264)。 *附件:3D圖形和視頻編解碼
2025-03-14 16:50:57
917
917
【正點原子】全志T113-i開發板資料震撼來襲!異核開發、工控設計方案!
【正點原子】全志T113-i開發板震撼來襲!異核開發、工控設計方案!ATK-DLT113IS開發板是正點原子基于全志T113-i處理器而研發的一款用于嵌入式Linux領域的開發板,其擁有高性能
2025-03-13 15:37:03
具有雙核 Arm Cortex-A53 CPU 的超高性能微處理器RZ/G2E數據手冊
雙核Arm Cortex-A53(1.2 GHz)CPU的高處理性能,以及3D圖形和視頻編解碼器引擎。作為該產品的軟件平臺,瑞薩提供了經驗證的Linux包,其中包括Linux內核、中間件驅動程序和該
2025-03-13 14:08:45
1312
1312
帶四核Arm Cortex-A57和四核Arm Cortex-A53 CPU的RZ/G2H超高性能微處理器數據手冊
具有超高處理性能的四核 Arm?Cortex?-A57(1.5GHz)和四核 Arm Cortex-A53(1.2GHz)CPU,具有 3D 圖形和4K 視頻編碼器 / 解碼器。作為本產品的軟件平臺
2025-03-12 17:59:24
1149
1149
采用雙核Arm Cortex-A57 CPU的超高性能微處理器RZ/G2N數據手冊
RZ/G2N憑借雙核 Arm? Cortex?-A57(1.5GHz)處理器,具備更高規格的處理性能,同時擁有 3D 圖形處理能力以及 4K 視頻編碼/ 解碼功能。作為該產品的軟件平臺,瑞薩電子提供
2025-03-10 17:05:10
1036
1036
開源鴻蒙版AI終端主板AIoT-3588A彩頁
AIoT-3588A是一款開源鴻蒙版AI終端主板,基于RK3588八核處理器,內置高達6TOPS算力AI加速器NPU,搭載OpenHarmony操作系統,支持8K視頻編解碼,支持四屏異顯,擴展接口豐富,主要適用于邊緣計算、AI機器人、AI云服務器及各種高性能AIoT設備。
2025-02-28 13:58:07
2
2分享!基于NXP i.MX 8M Plus平臺的OpenAMP核間通信方案
在嵌入式系統領域,隨著技術不斷發展,對于系統性能和功能要求日益提高。核間通信作為提升系統整體效能的關鍵技術,成為了關注焦點。今天,我們和大家分享一個OpenAMP非對稱架構核間通信方案,基于NXP
2025-02-27 10:44:16
970
970
RK3562J 處理器 M 核啟動實操
編譯源碼
完成配置文件的生成后,我們可以開始編譯源碼。通過運行構建腳本,選擇相應的defconfig配置,并分別編譯Linux系統和M0核固件。編譯成功后,會在指定目錄下生成 amp.img
2025-02-27 08:59:57
[2025全網首發] 瑞芯微RK3566開發資料大揭秘!
瑞芯微RK3566處理器 技術規格全解析
(四核Cortex-A55 | 4K編解碼 | 0.8TOPS NPU)
1. 基礎架構[td]項目參數說明
架構ARM Cortex-A55四核64位
2025-02-26 12:17:22
迅為iTOP-RK3588S開發板/核心板6TOPS的NPU算力視頻編解碼8K編碼+8K解碼
能力6TOPS的NPU算力,賦能各類AI場景。
強大的視頻編解碼8K編碼+8K解碼,持 8Kp60 H.264/H.265NVP9 視頻解碼,支持 8Kp30 H.264/H.265視頻編碼,支持
2025-02-20 14:24:25
迅為RK3588S開發板/核心板介紹
能力6TOPS的NPU算力,賦能各類AI場景。
強大的視頻編解碼8K編碼+8K解碼,持 8Kp60 H.264/H.265NVP9 視頻解碼,支持 8Kp30 H.264/H.265視頻編碼,支持
2025-02-13 14:40:17
從性能到成本,深度剖析 RK3588 與 RK3576 怎么選
RK3588支持最高8K@60fps H.265,RK3576最高支持8K@30fps。兩者都具備很強的視頻編解碼能力,在8K的視頻編解碼能力上RK3588更勝一籌。
支持多屏異顯兩者都支持多屏異顯和各種
2025-02-09 09:10:29
迅為RK3588開發板實時系統編譯-Preemption系統/ Xenomai系統編譯-編譯Linux實時系統-單獨編譯1
鏡像編譯完成后,最終打包鏡像 update.img 的方式來編譯 buildroot 鏡像 update.img。
第一步:編譯 uboot
首先在 linux 源碼目錄下輸入以下命令進入編譯的 UI
2025-01-23 10:20:56
哇!5.2秒進入應用界面!Linux快速啟動方案分享,基于全志T113-i國產平臺
T113-i國產平臺優勢
全志T113-i處理器可運行Linux操作系統、Qt炫酷圖形界面,并可支持1080P高清視頻編解碼、4G大數據傳輸、LCD/LVDS/MIPI三種顯示、原生千兆網/雙
2025-01-23 09:53:47
迅為iTOP-RK3576開發板/核心板6TOPS算力4K視頻編解碼
、PyTorch、Caffe等一系列框架的網絡模型。滿足多種應用場景。
iTOP-3576擁有強大的視頻編解碼能力,支持4K@120fps的H.265、VP9、AVS2和AV1解碼器,支持4k@60fps
2025-01-20 14:56:44
EE-96:將兩個AD73311編解碼器與ADSP-218x接口
電子發燒友網站提供《EE-96:將兩個AD73311編解碼器與ADSP-218x接口.pdf》資料免費下載
2025-01-13 16:32:14
0
0AN-1056: 低功耗編解碼器ADAU1361及ADAU1761的五電容耳機虛擬地短路保護
電子發燒友網站提供《AN-1056: 低功耗編解碼器ADAU1361及ADAU1761的五電容耳機虛擬地短路保護.pdf》資料免費下載
2025-01-13 16:00:26
0
0EE-212:將AD74111單聲道音頻編解碼器評估板連接到ADSP-21161N SHARC? EZ-KIT Lite板
電子發燒友網站提供《EE-212:將AD74111單聲道音頻編解碼器評估板連接到ADSP-21161N SHARC? EZ-KIT Lite板.pdf》資料免費下載
2025-01-08 14:27:23
0
0ADSP-21065L SHARC DSP與AD1819A AC-97 SoundPort編解碼器的接口
電子發燒友網站提供《ADSP-21065L SHARC DSP與AD1819A AC-97 SoundPort編解碼器的接口.pdf》資料免費下載
2025-01-06 15:33:59
0
0EE-193:ADSP-BF535 Blackfin處理器與AD73322L編解碼器接口
電子發燒友網站提供《EE-193:ADSP-BF535 Blackfin處理器與AD73322L編解碼器接口.pdf》資料免費下載
2025-01-06 14:17:09
0
0
電子發燒友App





評論