ffmpeg 庫介紹


http://www.ctolib.com/topics-96125.html

 

六、ffmpeg 為開發者准備的庫

libavutil

libavutil 庫是一個實用程序庫,以輔助多媒體編程。 它包含安全可移植字符串函數,隨機數生成器,數據結構,附加數學函數,加密和多媒體相關功能。 它不是 libavcodec 和 libavformat 所需的代碼的庫。

這個庫的目標是:

模塊化 它應該具有很少的相互依賴性和在 ./configure 期間禁用單個部件的可能性。小 源和對象都應該小。高效 它應該具有低CPU和內存使用。有用 它應該添加人們很需要的功能。

libavcodec

libavcodec 庫提供通用編碼/解碼框架,並包含用於音頻,視頻和字幕流的多個解碼器和編碼器,以及多個比特流濾波器。

共享架構提供從比特流 i/o 到 dsp 優化的各種服務,並且使得它適合於實現健壯和快速的編解碼器。

libavformat

libavformat 庫為音頻、視頻和字幕流的復用和解復用(多路復用和解復用)提供了一個通用框架。 它包括多媒體容器格式的多個多路復用器和多路分解器。

它還支持幾種輸入和輸出協議來訪問媒體資源。

libavdevice

libavdevice 庫提供了一個通用框架,用於從許多常見的多媒體輸入/輸出設備抓取和渲染,並支持多個輸入和輸出設備,包括 Video4Linux2,VfW,DShow和ALSA。

libavfilter

libavfilter 庫提供了一個通用的音頻/視頻過濾框架,包含幾個過濾器,源和接收器模塊。

libswscale

libswscale 庫執行高度優化的圖像縮放和顏色空間和像素格式轉換操作。

具體來說,此庫執行以下轉換:

重新調整:是更改視頻大小的過程。 有幾個重新調整選項和算法可用。 這通常是有損耗的過程。像素格式轉換:是轉換圖像的圖像格式和顏色空間的過程,例如從平面 YUV420P 到 RGB24 轉換。 它還可以處理 packed 轉換,即從 packed 布局(屬於在同一緩沖器中交織的不同平面的所有像素)轉換為平面布局(屬於存儲在專用緩沖器或“平面”中的相同平面的所有樣本)的轉換。如果源和目標顏色空間不同,這通常是有損過程。

libswresample

libswresample 庫執行高度優化的音頻重采樣,重新矩陣化和樣本格式轉換操作。

具體來說,此庫執行以下轉換:

重新采樣:是改變音頻速率的過程,例如從 44100Hz 的高采樣率到 8000Hz 。從高到低采樣率的音頻轉換是有損耗的過程。有幾個重采樣選項和算法可用。格式轉換:是將采樣類型(例如從16位有符號采樣轉換為無符號8位或浮點采樣)的過程。當從 packed 布局(所有屬於在相同緩沖器中交錯的不同通道的樣本)到平面布局(屬於存儲在專用緩沖器或“平面”中的相同通道的所有樣本)時,它還處理 packed 轉換。重新矩陣化:是改變通道布局的過程,例如從立體聲到單聲道。當輸入通道不能映射到輸出流時,該過程是有損的,因為它涉及不同的增益因子和混合。通過專用選項啟用各種其他音頻轉換(例如拉伸和填充)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM