FFmpeg播放器的相關概念【1】

播放器框架

在這里插入圖片描述

相關術語

?容器/文件(Conainer/File):即特定格式的多媒體文件,比如mp4、flv、mkv等。
? 媒體流(Stream):表示時間軸上的一段連續數據,如一段聲音數據、一段視頻數據或一段字幕數據,可以是壓縮的,也可以是非壓縮的,壓縮的數據需要關聯特定的編解碼器(有些碼流音頻他是純PCM)。
? 數據幀/數據包(Frame/Packet):通常,一個媒體流是由大量的數據幀組成的,對于壓縮數據,幀對應著編解碼器的最小處理單元,分屬于不同媒體流的數據幀交錯存儲于容器之中。
? 編解碼器:編解碼器是以幀為單位實現壓縮數據和原始數據之間的相互轉換的。

復用器和解復用器(封裝和解封裝)

在這里插入圖片描述

編碼器和解碼器

在這里插入圖片描述

FFmpeg常用函數庫

FFMPEG有8個常用庫:
? AVUtil:核心工具庫,下面的許多其他模塊都會依賴該庫做一些基本的音視頻處理操作。
? AVFormat:文件格式和協議庫,該模塊是最重要的模塊之一,封裝了Protocol層Demuxer、Muxer層,使得協議和格式對于開發者來說是透明的。
? AVCodec:編解碼庫,封裝了Codec層,但是有一些Codec是具備自己的License的,FFmpeg是不會默認添加像libx264、FDK-AAC等庫的,但是FFmpeg就像一個平臺一樣,可以將其他的第三方的Codec以插件的方式添加進來,然后為開發者提供統一的接口。
? AVFilter:音視頻濾鏡庫,該模塊提供了包括音頻特效和視頻特效的處理,在使用FFmpeg的API進行編解碼的過程中,直接使用該模塊為音視頻數據做特效處理是非常方便同時也非常高效的一種方式。
? AVDevice:輸入輸出設備庫,比如,需要編譯出播放聲音或者視頻的工具ffplay,就需要確保該模塊是打開的,同時也需要SDL的預先編譯,因為該設備模塊播放聲音與播放視頻使用的都是SDL庫。
? SwrRessample:該模塊可用于音頻重采樣,可以對數字音頻進行聲道數、數據格式、采樣率等多種基本信息的轉換。
? SWScale:該模塊是將圖像進行格式轉換的模塊,比如,可以將YUV的數據轉換為RGB的數據,縮放尺寸由1280720變為800480。
? PostProc:該模塊可用于進行后期處理,當我們使用AVFilter的時候需要打開該模塊的開關,因為Filter中會使用到該模塊的一些基礎函數。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/22052.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/22052.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/22052.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UFS Explorer Professional Recovery: 如何從啟用了 mSATA 緩存的 Drobo 設備中恢復數據

天津鴻萌科貿發展有限公司是 UFS Explorer Professional Recovery 數據恢復軟件的授權代理商。 UFS Explorer Professional Recovery 數據恢復軟件提供綜合性的解決方案,用于解決復雜的數據恢復案例,包括那些采用特殊存儲技術的案例,或介質受…

上海亞商投顧:創業板指震蕩收漲 超70家ST股跌停

上海亞商投顧前言:無懼大盤漲跌,解密龍虎榜資金,跟蹤一線游資和機構資金動向,識別短期熱點和強勢個股。 一.市場情緒 滬指昨日震蕩震蕩,創業板指走勢稍強,盤中一度漲超1%,黃白二線分化嚴重。算…

vue ts 導入 @/assets/ 紅色顯示的問題解決

vue ts 導入 /assets/ 紅色顯示的問題解決 一、問題描述 在使用的時候這樣導入會出現如上的錯誤。 在使用的時候,導入的類型也沒有對應的代碼提示,說明導入有問題。 二、解決 在 tsconfig.json 中添加如下內容: {"compilerOptions&…

AI大模型探索之路-實戰篇15: Agent智能數據分析平臺之整合封裝Tools和Memory功能代碼

系列篇章💥 AI大模型探索之路-實戰篇4:深入DB-GPT數據應用開發框架調研 AI大模型探索之路-實戰篇5:探索Open Interpreter開放代碼解釋器調研 AI大模型探索之路-實戰篇6:掌握Function Calling的詳細流程 AI大模型探索之路-實戰篇7…

模式識別判斷題

貝葉斯估計的方法類似于貝葉斯決策,也需要定義損失函數。(正確) 解釋:貝葉斯估計是一種基于貝葉斯定理的參數估計方法,它在估計參數時考慮了參數的先驗分布。與貝葉斯決策類似,貝葉斯估計也需要定義損失函數…

46.ThreadPoolExcutor接口

線程池狀態 ThreadPoolExcutor使用int高3位來表示線程池狀態,低29位表示線程數量 狀態高三位接收新任務處理阻塞隊列任務說明RUNNING111YYSHUTDOWN000NY不會接收新任務,但會處理阻塞隊列剩余任務,比較溫和,已經提交的任務都會執…

15.1 測試-重要性與testing包

1. 測試的重要性 1.1 單元測試 單元測試是針對一小部分代碼進行獨立地測試。 單元測試的對象通常是單個函數或方法,而要測試的是它在接受給定的輸入后,能否產生符合預期的輸出。 單元測試的作用主要表現在以下兩個方面: 驗證程序的最小…

C++ STL-迭代器函數對象適配器

目錄 一.迭代器 二. 函數對象 三. 適配器 一.迭代器 是一種通用的指針類型,可以用來遍歷 STL 容器中的元素。 具有以下作用和意義: 提供一種通用的方式來訪問容器中的元素。允許對不同類型的容器進行統一的操作。增強了代碼的靈活性和可擴展性。 一…

The Best Toolkit 最好用的工具集

The Best Toolkit 工欲善其事,必先利其器,整理過往工作與生活中遇到的最好的工具軟件 PDF合并等 PDF24 Tools PDF查看器 SumatraPDF 可以使用黑色來查看,相對不傷眼睛,也有電子書相關的閱讀器 Kindle pdf裁邊工具 briss 軟件卸載…

【C++題解】1085 - 尋找雷劈數

問題:1085 - 尋找雷劈數 類型:for循環 題目描述: 把整數 3025 從中剪開分為 30 和 25 兩個數,此時再將這兩數之和平方,計算結果又等于原數。 (3025)(3025)55553025 ,這樣的數叫“雷劈數”。 求所有符合這…

Photoshop版本選擇及系統要求

1、ps2018cc/2020cc版本 適合新手,增加了很多智能化操作,非常方便好上手。 2020: 2、ps2015版本 cc2015版本不論是功能還是硬件上,都是不二選擇,適合于配置較低的電腦,該有的基本功能它都有。 3、2021/2…

std::numeric_limits::max和宏定義重復報錯問題

問題描述 今天在編譯Beckhoff ADS開源組件的時候發現編譯報錯&#xff0c;報錯代碼如下 long AdsDevice::ReadReqEx2(uint32_t group, uint32_t offset, size_t length, void* buffer, uint32_t* bytesRead) const {if (length > std::numeric_limits<uint32_t>::ma…

Algorand 的復興之路:改變游戲規則,打造 RWA 第一公鏈

TLDR 發布 AlgoKit 2.0&#xff0c;支持 Python 原生語言&#xff0c;打造開發者友好的開發環境&#xff0c;Algorand 的開發者社區規模迅速擴大。 升級共識激勵機制&#xff0c;用 ALGO 獎勵共識節點參與共識的執行&#xff0c;增加 ALGO 的應用場景&#xff0c;同時進一步確…

GB28181的主動、被動的含義

GB28181有點象視頻會議&#xff1a; 終端通過SIP登錄服務器。管理員點擊某個終端&#xff0c;進行視頻。 就是這個主動、被動沒有聽說。于是問了同事&#xff0c;他說&#xff1a; 主動被動是從服務器角度來看的。所謂被動&#xff0c;就是服務器開一個端口&#xff0c;被動接…

鋼結構乙級資質延期,企業如何降低經營風險

當企業面臨鋼結構乙級資質延期時&#xff0c;為了降低經營風險&#xff0c;可以采取以下措施&#xff1a; 1. 提前規劃與準備 資質延續規劃&#xff1a;在資質到期前&#xff0c;提前規劃資質延續的相關工作&#xff0c;包括準備所需材料、明確流程和時間節點等。 項目評估&…

js去重的幾種方式

在JavaScript中&#xff0c;有多種方式可以實現數組去重。以下是幾種常見的方式&#xff1a; 使用Set數據結構&#xff1a;使用Set可以快速實現數組去重&#xff0c;Set會自動排除重復的元素。例如&#xff1a; const arr [1, 2, 3, 3, 4, 4, 5]; const uniqueArr [...new S…

如何從官網下載 mysql 二進制安裝包

一.下載二進行包 1. 官網網址: https://www.mysql.com/ 如圖所示進入官網 2. 點擊 DOWNLOADS ,進入如下圖 在該頁面找到 MySQL Community (GPL) Downloads 點進去 如上圖頁面&#xff0c;找到 MySQL Community Server 在點進去 下載 linux 通用版 點擊最下面 Compressed …

(十四)統計學基礎練習題八(選擇題T351-400)

本文整理了統計學基礎知識相關的練習題&#xff0c;共50道&#xff0c;適用于想鞏固統計學基礎或備考的同學。來源&#xff1a;如荷學數據科學題庫&#xff08;技術專項-統計學三&#xff09;。序號之前的題請看往期文章。 351&#xff09; 352&#xff09; 353&#xff09; 3…

C++vector部分實現及感悟

myvector.h #pragma once #include<assert.h> #include<iostream> #include<vector> using namespace std; namespace bit {template<class T>//必須使用typename場景\template<typename T>與template<class T>一般情況下這兩個通用&#…

Jmeter實戰教程入門講解

前言 通過前面對Jmeter元件的講解&#xff0c;大家應該都知道常用元件的作用和使用了。編寫Jmeter腳本前我們需要知道Jmeter元件的執行順序&#xff0c;可以看看我這篇性能測試學習之路&#xff08;三&#xff09;—初識Jmeter來了解下。下面我將以工作中的一個簡單的實例帶大…