ffmpeg濾鏡創建過程

1、創建一個濾鏡圖

AVFilterGraph *filter_graph = avfilter_graph_alloc();

2、創建濾鏡的輸入和輸出

AVFilterInOut *inputs = avfilter_inout_alloc();

AVFilterInOut *outputs = avfilter_inout_alloc();

3、每個濾鏡創建上下文

AVFilterContext *filter1_ctx = avfilter_graph_alloc_filter(filter_graph, filter1, "filter1");

AVFilterContext *filter2_ctx = avfilter_graph_alloc_filter(filter_graph, filter2, "filter2");

4、設置濾鏡參數

snprintf(args, sizeof(args), "video_size=%dx%d:pix_fmt=%d:time_base=%d/%d:pixel_aspect=%d/%d", codecContext->width, codecContext->height, codecContext->pix_fmt, codecContext->time_base.num, codecContext->time_base.den, codecContext->sample_aspect_ratio.num, codecContext->sample_aspect_ratio.den);

5、添加輸入濾鏡

avfilter_graph_create_filter(&buffersrc_ctx, buffersrc, "input", args, nullptr, filter_graph);

6、添加輸出濾鏡

avfilter_graph_create_filter(&buffersink_ctx, buffersink, "output", nullptr, nullptr, filter_graph);

7、將濾鏡的輸入和輸出與對應的濾鏡上下文關聯起來

inputs->name = av_strdup("input");

inputs->filter_ctx = filter1_ctx;

inputs->pad_idx = 0;

inputs->next = NULL;

outputs->name = av_strdup("output");

outputs->filter_ctx = filter2_ctx;

outputs->pad_idx = 0;

outputs->next = NULL;

8、解析濾鏡描述

avfilter_graph_parse_ptr(filter_graph, filter_descr, &inputs, &outputs, nullptr);

9、連接濾鏡鏈接

avfilter_graph_config(filter_graph, nullptr);

10、清理資源

avfilter_inout_free(&inputs);

avfilter_inout_free(&outputs);

avfilter_graph_free(&filter_graph);

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

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

相關文章

Yolov10訓練,轉化onnx,推理

yolov10對于大目標的效果好,小目標不好 一、如果你訓練過yolov5,yolov8,的話那么你可以直接用之前的環境就行 目錄 一、如果你訓練過yolov5,yolov8,的話那么你可以直接用之前的環境就行 二、配置好后就可以配置文件…

android webview 遠程調試

打開遠程調試選項 MainActivity super.onCreate(savedInstanceState);// enable Cordova apps to be started in the backgroundBundle extras getIntent().getExtras();if (extras ! null && extras.getBoolean("cdvStartInBackground", false)) {moveT…

前端JS特效第24集:jquery css3實現瀑布流照片墻特效

jquery css3實現瀑布流照片墻特效&#xff0c;先來看看效果&#xff1a; 部分核心的代碼如下(全部代碼在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8" /> <title>jquerycss3實現瀑…

Nginx:負載均衡小專題

運維專題 Nginx&#xff1a;負載均衡小專題 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/…

在Conda環境中高效使用Kubernetes:跨平臺容器化實踐指南

摘要 Conda 是一個流行的跨平臺包和環境管理器&#xff0c;廣泛用于Python社區。而 Kubernetes 是一個開源的容器編排系統&#xff0c;用于自動化部署、擴展和管理容器化應用程序。本文將探討如何在 Conda 環境中使用 Kubernetes&#xff0c;包括設置 Conda 環境、容器化應用程…

【專項刷題】— 位運算

常見類型介紹&#xff1a; & &#xff1a;有 0 就是 0 | &#xff1a;有 1 就是 1 ^ &#xff1a;相同為 0 &#xff0c;相異為 1 或者 無進位相加給定一個數確定它的二進制位的第x個數是0還是1&#xff1a;將一個數的二進制的第x位改成1&#xff1a;將一個數的二進制的第x…

Windows10/11家庭版開啟Hyper-V虛擬機功能詳解

Hyper-V是微軟的一款虛擬機軟件&#xff0c;可以使我們在一臺Windows PC上&#xff0c;在虛擬環境下同時運行多個互相之間完全隔離的操作系統&#xff0c;這就實現了在Windows環境下運行Linux以及其他OS的可能性。和第三方虛擬機軟件&#xff0c;如VMware等相比&#xff0c;Hyp…

Linux應用編程IO基礎

Linux應用編程基本IO操作 一、main 函數1、main 函數寫法之無傳參2、main 函數寫法之有傳參 二、open 打開文件三、write 寫文件四、read 讀文件五、close 關閉文件六、 lseek七、 返回錯誤處理與 errno7.1 strerror 函數7.2 perror 函數 八、 exit、_exit、_Exit8.1_exit()和_…

零基礎自學爬蟲技術該從哪里入手?

零基礎學習Python并不一定是困難的&#xff0c;這主要取決于個人的學習方法、投入的時間以及學習目標的設定。Python是一門相對容易入門的編程語言&#xff0c;它有著簡潔的語法、豐富的庫和廣泛的應用領域&#xff08;如數據分析、Web開發、人工智能等&#xff09;&#xff0c…

大模型知識問答: 文本分塊要點總結

節前&#xff0c;我們組織了一場算法崗技術&面試討論會&#xff0c;邀請了一些互聯網大廠朋友、今年參加社招和校招面試的同學。 針對大模型技術趨勢、算法項目落地經驗分享、新手如何入門算法崗、該如何準備面試攻略、面試常考點等熱門話題進行了深入的討論。 總結鏈接如…

C++ 信號量和鎖的區別

網上關于信號量和鎖的區別&#xff0c;寫的比較官方晦澀難懂&#xff0c;對于這個知識點吸收難&#xff0c;通過示例&#xff0c;我們看到信號量&#xff0c;可以控制同一時刻的線程數量&#xff0c;就算同時開啟很多線程&#xff0c;依然可以的達到線程數可控 #include <i…

初識c++(命名空間,缺省參數,函數重載)

一、命名空間 1、namespace的意義 在C/C中&#xff0c;變量、函數和后面要學到的類都是大量存在的&#xff0c;這些變量、函數和類的名稱將都存在于全 局作用域中&#xff0c;可能會導致很多沖突。使用命名空間的目的是對標識符的名稱進行本地化&#xff0c;以避免命名 沖突…

GEE代碼實例教程詳解:MODIS土地覆蓋分類與面積計算

簡介 在本篇博客中&#xff0c;我們將使用Google Earth Engine (GEE) 對MODIS土地覆蓋數據進行分析。通過MODIS/061/MCD12Q1數據集&#xff0c;我們可以識別不同的土地覆蓋類型&#xff0c;并計算每種類型的總面積。 背景知識 MODIS MCD12Q1數據集 MODIS/061/MCD12Q1是NASA…

每天一個數據分析題(四百十五)- 線性回歸模型

線性回歸模型中誤差項的數學期望為 A. 0 B. 1 C. 2 D. 3 數據分析認證考試介紹&#xff1a;點擊進入 題目來源于CDA模擬題庫 點擊此處獲取答案 數據分析專項練習題庫 內容涵蓋Python&#xff0c;SQL&#xff0c;統計學&#xff0c;數據分析理論&#xff0c;深度學習&am…

世界商用飛機機型大全-使用Java抓取FlightAware后的答案

目錄 前言 一、數據說明 1、實時航班飛機機型數據 2、網頁結構分析 二、使用Java進行信息抓取 1、定義頁面PageVO對象 2、爬取屬性定義 3、啟動信息抓取組件 三、成果分析 1、商業飛行的飛機機型的種類 2、飛機種類排名前十名 3、航班數排名后十名 4、看中國國產大飛…

【網絡安全】一文帶你了解什么是【網絡劫持】

網絡劫持&#xff08;Network Hijacking&#xff09;是一種網絡攻擊&#xff0c;攻擊者通過非法手段劫持網絡通信&#xff0c;導致合法用戶的數據流被攔截、篡改或重定向到攻擊者控制的系統。這種攻擊可以在各種網絡層面上進行&#xff0c;包括域名系統&#xff08;DNS&#xf…

你真的會信息收集嘛,4k字滲透測試信息收集10大技巧

前言 在滲透測試中&#xff0c;信息收集是非常關鍵的一步&#xff0c;它為后續的漏洞發現和利用提供了重要的基礎。以下是非常詳細的信息收集方式&#xff1a; 一、被動信息收集 被動信息收集是指在不與目標系統直接交互的情況下&#xff0c;通過公開渠道獲取目標系統的相關…

基于51單片機的四路搶答器Protues仿真設計

一、設計背景 近年來隨著科技的飛速發展&#xff0c;單片機的應用正在不斷的走向深入。本文闡述了基于51單片機的八路搶答器設計。本設計中&#xff0c;51單片機充當了核心控制器的角色&#xff0c;通過IO口與各個功能模塊相連接。按鍵模塊負責檢測參與者的搶答動作&#xff0c…

線程交互現象

線程交互現象 小明對自家的狗子有個規定,就是在狗狗還沒吃完的時候,可以繼續給他加飯 不好的解決方式 狗狗感覺一千年沒吃飯了,狼吞虎咽起來,最后飯只剩下最后一點點,吃飯線程中使用while循環判斷是否是1,如果是1那么就一直循環,知道加飯又重新回到了起點,這雖然是狗狗…

GEE代碼實例教程詳解:湖泊面積分析

GEE代碼實例教程詳解&#xff1a;湖泊面積分析 完整代碼 // 定義研究區域的坐標點 var coordinates [[42.000552219688586, 38.18969302118053],[43.868228000938586, 38.18969302118053],[43.868228000938586, 39.209978258633186],[42.000552219688586, 39.20997825863318…