物聯網學習日記26

1.VA-API
解析:VA-API是一個開啓硬件加速視頻處理的開源library/API,它使用GPU加速視頻處理從而減輕CPU負擔。

2.PPA
解析:PPA是Personal Package Archives首字母簡寫,即個人軟件包文檔。只有Ubuntu用戶可以用,而所有的PPA都是寄存在launchpad.net網站上。

3.cpio
解析:cpio指令可以將文件複製到存檔包,也可以從存檔包複製出文件。缺省情況下,cpio從標準輸入讀取輸入數據,向標準輸出寫入輸出數據。

4.vainfo工具
解析:vainfo工具用於查看libva庫調用信息。

5.clinfo
解析:clinfo是一個顯示OpenCL平臺和設備的軟件,安裝後在命令行輸入clinfo即可驗證。sudo apt-get install clinfo

6.Running CLINFO Returns The Error “Number of Platforms – 0” Even With AMD Drivers Installed
解析:sudo apt install mesa-opencl-icd

7.Ubuntu安裝OpenCL[不確定]
解析:

sudo apt install ocl-icd-libopencl1
sudo apt install opencl-headers
sudo apt install clinfo
sudo apt install ocl-icd-opencl-dev
sudo apt install beignet

說明:apt-get remove beignet-opencl-icd

8.vainfo
解析:

fl@ubuntu:~/gva/gst-video-analytics/scripts$ vainfo
libva info: VA-API version 1.4.1
libva info: va_getDriverName() returns 0
libva info: Trying to open /opt/intel/mediasdk/lib64/vmwgfx_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

9.VA-API
解析:VA-API是一個開源庫和API規範,可以訪問圖形硬件加速功能以進行視頻處理。它由一個主庫和每個支持的硬件供應商的特定於驅動程序的加速後端組成。

10.VDPAU
解析:VDPAU是一個開源庫,API允許視頻程序將部分視頻解碼過程和視頻後處理卸載到GPU視頻硬件。如果VDPAU可用,CPU使用率可以顯着降低。

11.gstreamer-vaapi
解析:Hardware-accelerated video decoding, encoding and processing on Intel graphics through VA-API.

12.systemctl enable
解析:設置開機自啓。

13.clear linux
解析:應該主要是針對服務器和開發者市場。

14.udev
解析:udev是Linux kernel 2.6系列的設備管理器。它主要的功能是管理/dev目錄底下的設備節點。它同時也是用來接替devfs及熱插拔的功能,這意味着它要在添加/刪除硬件時處理/dev目錄以及所有用戶空間的行爲,包括加載固件時Linux 2.6.13內核。udev的最新版本依賴於升級後的的uevent接口的最新版本。使用新版本udev的系統不能在2.6.13以下版本啓動,除非使用noudev參數來禁用udev並使用傳統的/dev來進行設備讀取。

15.udev工作機制
解析:udev完全工作在用戶空間,當一個設備被插入或者移除時,內核會通過netlink套接字發送設備詳細信息到用戶空間,udev獲取到設備信息,根據信息內容在/dev下創建並命名設備節點。

16.ffmpeg將rtsp轉碼爲rtmp
解析:

ffmpeg -re -rtsp_transport tcp -i "rtsp://192.168.0.10:554/user=admin&password=&channel=1&stream=0.sdp?" -f flv -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -r 10 -s 1280x720 -q 10 "rtmp://192.168.0.128:1935/stream/hello"

[1]-vcodec:強制指定視頻編碼格式
[2]-acodec:強制指定音頻編碼格式
[3]-b:v:指定視頻的碼率
[4]-b:a:指定音頻碼率
[5]-b:指定視頻和音頻加起來的碼率
[6]-r:幀率
[7]-an:disable audio,這樣輸出xxx.mp4裏面沒有音頻
[8]-vn:disable video
[9]-f:指定文件格式
[10]-s:分辨率
[11]-y:覆蓋輸出文件
[12]-n:不覆蓋輸出文件
[13]-re:根據文件真實的幀率來讀取文件,生成實時刷新的直播流

17.video.js對接IP Camera [RTSP]
解析:通過ffmpeg將IP Camera的RTSP轉爲RTMP,然後推到流媒體服務器,再通過VLC或者Web等方式拉流。

18.RTP
解析:實時傳輸協議[Real-time Transport Protocol或簡寫RTP]是一個網絡傳輸協議,它是由IETF的多媒體傳輸工作小組1996年在RFC 1889中公佈的。

19.硬件解碼和軟件解碼
解析:
[1]硬件解碼:就是通過硬件進行視頻的解碼工作,其中硬件解碼是由GPU來進行的,使用GPU解碼能夠降低CPU的工作負荷,降低功耗。播放出來的視頻較爲流暢,並且能夠延長移動設備播放視頻的時間;
[2]軟件解碼:軟件解碼則是通過軟件本身佔用的CPU進行解碼,所以會增加CPU工作負荷,提升功耗,如果CPU能力不足,則軟件也將受到影響。

20.filesrc
解析:

gst-launch-0.10 filesrc location=f:\\media\\sintel\\sintel_trailer-480p.webm ! decodebin2 ! autovideosink

21.filesink
解析:這個element會把所有收到的媒體數據存成文件,使用location屬性來指定路徑和文件名。

gst-launch-0.10 audiotestsrc ! vorbisenc ! oggmux ! filesink location=test.ogg

22.souphttpsrc
解析:這個element作爲一個客戶端,使用SOUP庫經由HTTP來接收數據,通過location屬性來設置URL。

gst-launch-0.10 souphttpsrc location=http://docs.gstreamer.com/media/sintel_trailer-480p.webm ! decodebin2 ! autovideosink

23.videotestsrc
解析:這個element生成一個固定的video輸出[通過pattern屬性來設置],用來測試視頻的pipeline。

gst-launch-0.10 videotestsrc ! ffmpegcolorspace ! autovideosink

24.audiotestsrc
解析:這個element生成一個音頻信號[通過設置wave屬性來設置],用來測試音頻的pipeline。

gst-launch-0.10 audiotestsrc ! audioconvert ! autoaudiosink

25.ffmpegcolorspace
解析:這個element會把一個色彩空間轉換到另一個色彩空間[比如從RGB轉到YUV]。它也可以在轉換不同的YUV格式或者RGB格式。

st-launch-0.10 videotestsrc ! ffmpegcolorspace ! autovideosink

參考文獻:
[1]VAAPI:https://www.freedesktop.org/wiki/Software/vaapi/
[2]OpenCL On ubuntu 16.04, Intel Sandy Bridge CPU:https://askubuntu.com/questions/850281/opencl-on-ubuntu-16-04-intel-sandy-bridge-cpu/850594#850594
[3]Python and OpenCL issue:https://stackoverflow.com/questions/45479014/python-and-opencl-issue
[4]Ubuntu編譯安裝libva:https://blog.csdn.net/Tosonw/article/details/90412626
[5]gstreamer-vaapi:https://github.com/GStreamer/gstreamer-vaapi

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章