色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FFmpeg的基本原理、使用方法及開發(fā)方法

LiveVideoStack ? 來源:未知 ? 作者:李倩 ? 2018-08-30 15:22 ? 次閱讀

本文來自O(shè)nVideo視頻創(chuàng)作云平臺聯(lián)合創(chuàng)始人劉歧在LiveVideoStackCon的講師熱身分享,劉歧分享了FFmpeg的基本原理、使用方法及開發(fā)方法。在10月19-20日的LiveVideoStackCon 2018上,劉歧還將分享如何通過FFmpeg實現(xiàn)視頻版權(quán)保護的方法。

大家好我是劉歧,目前和幾個朋友一起創(chuàng)辦了視頻云創(chuàng)作平臺OnVideo,主要負責(zé)做一些新功能預(yù)研和整體方向把控。

今天主要從四個方面來介紹一下FFmpeg的濾鏡深度應(yīng)用:

1. Filter基本原理

2. Filter使用方法

3. Filter開發(fā)基礎(chǔ)

4. Filter開發(fā)

一. Filter基本原理

基本原理的理解可以從以下六點出發(fā):

線性屬性:濾鏡是一個線性的屬性,是一步接著一步的往下走的,當(dāng)然也可以有多線程的,但是多線程的實現(xiàn)不是特別好,一般的實現(xiàn)都是通過單線程來線性處理的。

輸入輸出標簽:濾鏡都有輸入和輸出的標簽。

濾鏡名

濾鏡參數(shù):當(dāng)我們在使用某一類濾鏡時,需要知道對應(yīng)的參數(shù)大小,如位置,寬高等。

內(nèi)置變量:在使用濾鏡時,可以用到它的很多內(nèi)置變量,如幀率,PTS等,這些變量可以在命令行中使用,在調(diào)用API時也會用到。

壓縮前、解壓后的YUV/RGB/PCM數(shù)據(jù):對數(shù)據(jù)進行濾鏡處理時使用的都是原始數(shù)據(jù),也就是未壓縮的數(shù)據(jù)。

線性處理圖解

如上圖所示,從濾鏡線性處理圖中可以看出,對每一個的濾鏡處理過程必須要有輸入和輸出,比如在最后濾鏡8的位置沒有輸出1來承接它的結(jié)果,則會報錯。另外,如從濾鏡1到濾鏡2的過程,濾鏡1的輸出Out可以作為濾鏡2的輸入In,從濾鏡2再往后,濾鏡2的輸出Out可以分為兩部分,分別作為其它濾鏡處理的輸入。

原始數(shù)據(jù)處理

濾鏡的處理都是基于原始數(shù)據(jù)來進行的,比如視頻圖像的每一幀,當(dāng)然也包括音頻。如上圖所示,每一幀可以有前后的多個層,一般情況下是兩層,當(dāng)有多層時,如Frame1是三層,則可以先處理前兩層,處理之后合并成一層,再跟另一層一起去做處理。當(dāng)處理完Frame1后送到編碼器進行編碼,再依次處理Frame2、Frame3、Frame4,處理完后均送到編碼器進行壓縮編碼為另一個格式,比如H.264。

二. Filter使用方法

1. 常用濾鏡

常用的濾鏡中重點的是:scale、trim、overlay、yadif、rotate、movie

比如常用的scale 可以用來做縮放,trim可以做比較精確的幀級的剪切,overlay可以來實現(xiàn)視頻混流,畫中畫或多畫面等疊加處理,rotate來做旋轉(zhuǎn),movie可以加載第三方的視頻等等,yadif可以在攝像機上做隔行掃描,在PC端的播放器可以做去交錯。另外,還有delogo、crop、colorkey、chromakey、zoompan; delogo可以用來模糊化某一區(qū)域,crop用于圖像區(qū)域剪切,colorkey和chromakey是用于摳圖的,chromakey以YUV輸入為主,colorkey以RGB輸入為主,zoompan可以將圖像放大。

2. 命令行

ffmpeg -filters

通過這一命令,可以列出所有的濾鏡,但需要弄清楚每一個濾鏡的作用,比如上圖的adelay,它的作用是音頻轉(zhuǎn)音頻,延緩一個或更多的音頻通道。在濾鏡參數(shù)里面還包括timeline support、slice threading、command support,等在后面也會有介紹。

ffmpeg -h filters=rotate

當(dāng)某個濾鏡不知道它里面都有什么參數(shù)或者參數(shù)怎么用時,那么可以通過上面這條help命令去查看濾鏡的內(nèi)容。比如在上圖,查看旋轉(zhuǎn)(rotate)濾鏡,可以看出它支持slice threading,而在最下面可以看到還支持timeline操作,并且輸入和輸出都是Video格式,再下面就是rotate的一些參數(shù),值得注意的是,在FFmpeg里面,尤其濾鏡這部分,為了讓大家在輸入?yún)?shù)時候更簡單,它會把很長的參數(shù)提供一個簡化的名稱。

命令行的使用開頭都是:filter_complex,然后再在后面接一些字符串,如下:

下面列出幾個例子的命令行使用:

1. 跑馬燈

[0:v][1:v]overlay=x='if(gte(t,0),-w+(mod(n,W+w))+5,NAN)':y=0[out]

應(yīng)用場景如新聞播放時畫面下方的小欄預(yù)告,從右跑到左。

2. 圖像旋轉(zhuǎn)

[1:v]rotate=a=60*PI/180:ow=180:oh=180[v1];[0:v][v1]overlay=x=-20:y=-20[o]

3.delogo(模糊化某一區(qū)域)

delogo=x=72:y=32:w=168:h=86:band=1:show=1

下圖為以上三條命令行處理后的展示效果:

在FFmpeg的ffplay里可以通過dumpgraph對濾鏡的處理過程增加更深的了解,可以看看下面這個例子:

./ffplay-dumpgraph1-flavfi"movie=a.flv[l];movie=logo.png[r];[l][r]overlay=x=0:y=0"

在濾鏡處理的過程中是先加載第一個電影,然后再加載一張PNG圖片,為了疊加處理比較方便會先將它們轉(zhuǎn)換成YUV,再進行疊加運算,最后輸出到一個buffersink中。

3. API

濾鏡Filter的API結(jié)構(gòu)包括:

AVFilterContext:濾鏡的上下文

AVFilterInOut:濾鏡的輸入、輸出

AVFilterGraph:濾鏡的圖結(jié)構(gòu)

AVFilter:濾鏡的具體處理類

AVFilterPad:包括輸入的Pad和輸出的Pad

調(diào)用API的分為兩個大的步驟:

第一步,濾鏡的初始化

初始化部分首先要確定In的Buffer和Out的Buffersink,接下來就是創(chuàng)建一個濾鏡的Graph,再就是做一個濾鏡的解析,最后就是通用配置。

第二步,濾鏡處理

濾鏡處理過程是先解碼,解碼之后將幀加入到Buffer,再調(diào)用濾鏡處理模塊,處理之后輸出到Buffersink。

濾鏡API的使用方法跟之前命令行的使用方法是一樣的,只是略微有一點差別。如果我們不會使用多輸入多輸出的方式,對于API的使用實際上它的輸入也可以用字符串處理的方式,就是命令行里邊的處理方式,如以下官方demo的代碼:

跑馬燈

[0:v][1:v]overlay=x='if(gte(t,0),-w+(mod(n,W+w))+5,NAN)':y=0[out]

圖像旋轉(zhuǎn)

[1:v]rotate=a=60*PI/180:ow=180:oh=180[v1];[0:v][v1]overlay=x=-20:y=-20[o]

Delogo(模糊化某一區(qū)域)

delogo=x=72:y=32:w=168:h=86:band=1:show=1

從上面的介紹可以看出,命令行與API實質(zhì)上并沒有太大的區(qū)別。

三. Filter開發(fā)基礎(chǔ)

1. Module結(jié)構(gòu)

在上面的Module結(jié)構(gòu)里面,可以很清晰的看出步驟流程,先要在濾鏡的類里面注冊它所對應(yīng)的所有信息,如濾鏡名,上下文等等;下一步就是對Input和Output的處理,對幀的濾鏡處理正常都是在一個Input里面處理的;

再就是要看濾鏡是否支持Timeline,比如做一些動態(tài)的變量,跑馬燈之類的,也要有時間線的概念。在這個里面也有一些對應(yīng)的內(nèi)置函數(shù),可以把他們理解為一些數(shù)字運算的接口。以及下面還有一些變量名的定義。

2. 加入到FFmpeg中

添加濾鏡的時候,主要是往下面兩個里面添加:

四. Filter開發(fā)

在這一部分,為大家做了FFMPEG添加新濾鏡的過程的錄像,錄像地址為http://bbs.chinaffmpeg.com/add_filter.mp4,有興趣的同學(xué)可以看一下

首先建立了一個zoomscale的濾鏡文件,建立完這個文件之后,創(chuàng)建對應(yīng)的context,然后把剛才講到的那些接口都寫進來,定義zoomscale公共的類,下面我們實現(xiàn)了一個filter _frame,它會把里面的input給釋放掉,讓它變成一個NULL,此時顯示的前景圖像就會變成一個純綠色的圖像,如果說這里有process commode,那么就可以在做zmq的時候用,如果沒有的話,可以留空。關(guān)鍵是filter_frame,可以當(dāng)作濾鏡處理的一個入口,而get_video_buffer可以把它理解為我們看到的很多demo里面寫到的get_video_buffer,即創(chuàng)建一個幀的對應(yīng)Buffer,將其添加至Makefile之后,繼續(xù)添加一個avfilter。這是FFmpeg4.0之前的版本,在后面新版本里面,采用的是數(shù)組的形式,也就沒有列表那么麻煩,速度會更快一些,添加完之后,可以通過config進行查看配置,每次config完之后,會有整體的一個輸出。添加完成后,進行編譯,之后可以在avfilter庫里直接查看濾鏡是否已經(jīng)加到FFmpeg的應(yīng)用程序里,然后調(diào)用API部分,直接把字符串傳進來就可以使用了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 攝像機
    +關(guān)注

    關(guān)注

    3

    文章

    1617

    瀏覽量

    60243
  • ffmpeg
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    7415

原文標題:劉歧:FFmpeg Filter深度應(yīng)用

文章出處:【微信號:livevideostack,微信公眾號:LiveVideoStack】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    CT的基本原理方法

    CT的基本原理方法人體內(nèi)不同組織對射線的吸收率是不同的,這也是 CT 技術(shù)的基本原理。如下圖所示:圖(1)左側(cè)代表一未知灰度的區(qū)域,每小塊灰度值相同,分別以μ 標記,如圖所示做兩次投影(同一
    發(fā)表于 06-14 15:56

    電源噪聲濾波器的基本原理與應(yīng)用方法

     電源噪聲濾波器的基本原理與應(yīng)用方法 隨著現(xiàn)代科學(xué)技術(shù)的飛速發(fā)展,電子、電力電子、電氣設(shè)備應(yīng)用越來越廣泛,它們在運行中產(chǎn)生的高密度、寬頻譜的電磁信號充滿整個空間,形成復(fù)雜的電磁環(huán)境
    發(fā)表于 10-12 11:53

    電源噪聲濾波器的基本原理與應(yīng)用方法

    電源噪聲濾波器的基本原理與應(yīng)用方法
    發(fā)表于 08-09 15:06

    電源噪聲濾波器的基本原理與應(yīng)用方法

    電源噪聲濾波器的基本原理與應(yīng)用方法PCB打樣找華強 http://www.hqpcb.com 樣板2天出貨
    發(fā)表于 02-01 16:24

    JTAG口的基本原理是什么?四核芯片S698PM的連接方法和注意事項是什么?

    本應(yīng)用手冊主要講解JTAG口的基本原理及與歐比特最新四核芯片S698PM的連接方法和注意事項;目的方便用戶盡快地熟悉和掌握S698PM開發(fā)系統(tǒng)的JTAG調(diào)試環(huán)境。
    發(fā)表于 04-19 10:48

    FPGA基本原理及設(shè)計思想和驗證方法看完你就懂了

    FPGA基本原理及設(shè)計思想和驗證方法看完你就懂了
    發(fā)表于 09-18 07:08

    EXTI的使用方法基本原理

    介紹EXTI的使用方法基本原理并且包括實驗通過按鍵中斷控制led燈的亮滅
    發(fā)表于 12-06 07:57

    12864點陣型液晶顯示屏的基本原理使用方法(很詳細)

    適合初學(xué)者的液晶顯示基本原理使用方法
    發(fā)表于 04-17 16:06 ?4次下載

    電磁鐵基本原理與應(yīng)用設(shè)計計算方法

    電磁鐵基本原理與應(yīng)用設(shè)計計算方法
    發(fā)表于 09-15 09:51 ?58次下載
    電磁鐵<b class='flag-5'>基本原理</b>與應(yīng)用設(shè)計計算<b class='flag-5'>方法</b>

    LCD12864顯示屏的基本原理使用方法和取模軟件等資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是LCD12864顯示屏的基本原理使用方法和取模軟件等資料免費下載還包括了:怎么將一個圖片轉(zhuǎn)化為,LCD12864圖片數(shù)據(jù)收集
    發(fā)表于 12-10 08:00 ?45次下載
    LCD12864顯示屏的<b class='flag-5'>基本原理</b>與<b class='flag-5'>使用方法</b>和取模軟件等資料免費下載

    LLC基本原理及設(shè)計方法

    LLC基本原理及設(shè)計方法
    發(fā)表于 06-25 10:05 ?7次下載

    熔體流動速率測試儀:基本原理使用方法及應(yīng)用價值

    引言熔體流動速率測試儀是一種用于測定熱塑性材料熔體流動性質(zhì)的儀器。它在塑料、橡膠、合成纖維等高分子材料領(lǐng)域中具有廣泛的應(yīng)用價值。本文將詳細介紹熔體流動速率測試儀的基本原理使用方法及其優(yōu)缺點,并探討
    的頭像 發(fā)表于 06-27 13:38 ?1056次閱讀
    熔體流動速率測試儀:<b class='flag-5'>基本原理</b>、<b class='flag-5'>使用方法</b>及應(yīng)用價值

    水平垂直燃燒試驗機:基本原理使用方法及應(yīng)用價值

    引言水平垂直燃燒試驗機是一種用于測試材料燃燒性能的實驗設(shè)備,常用于評估材料在水平和垂直方向上的燃燒特性。本文將詳細介紹水平垂直燃燒試驗機的基本原理使用方法及其優(yōu)缺點,并探討其在實際應(yīng)用場景中
    的頭像 發(fā)表于 06-27 17:10 ?1939次閱讀
    水平垂直燃燒試驗機:<b class='flag-5'>基本原理</b>、<b class='flag-5'>使用方法</b>及應(yīng)用價值

    炭黑含量測試儀:基本原理使用方法及應(yīng)用場景

    炭黑含量測試儀是一種用于測量材料中炭黑含量的儀器。本文將介紹炭黑含量測試儀的基本原理使用方法及其優(yōu)缺點,并結(jié)合實際應(yīng)用場景闡述其重要性和應(yīng)用價值。上海和晟HS-TH-3500炭黑含量測試儀基本原理
    的頭像 發(fā)表于 07-24 11:14 ?952次閱讀
    炭黑含量測試儀:<b class='flag-5'>基本原理</b>、<b class='flag-5'>使用方法</b>及應(yīng)用場景

    臭氧老化試驗箱:基本原理、技術(shù)參數(shù)、使用方法及注意事項

    使用方法及注意事項。上海和晟HS-CY-225臭氧老化試驗箱臭氧老化試驗箱的基本原理是利用臭氧的氧化作用,模擬材料在實際使用過程中所受到的臭氧濃度和溫度等環(huán)境因素,以
    的頭像 發(fā)表于 08-22 10:16 ?1221次閱讀
    臭氧老化試驗箱:<b class='flag-5'>基本原理</b>、技術(shù)參數(shù)、<b class='flag-5'>使用方法</b>及注意事項
    主站蜘蛛池模板: 国产性夜夜春夜夜爽1A片 | 97色伦图片7778久久 | 蜜桃精品成人影片 | 宅男午夜大片又黄又爽大片 | 久久久久99精品成人片三人毛片 | 久久久久国产精品美女毛片 | 久青草国产在线视频亚瑟影视 | 九色PORNY丨视频入口 | 欧美亚洲日韩欧洲不卡 | 久爱在线中文在观看 | 亚洲AV无码乱码国产精品品麻豆 | 在线免费观看国产 | 肉动漫h黄动漫日本免费观看 | 99精品网站 | 麻豆AV蜜桃AV久久 | 蜜桃婷婷狠狠久久综合9色 蜜桃视频一区二区 | 国产内射AV徐夜夜 | 色精品极品国产在线视频 | 九九久久久2 | 我和黑帮老大第365天第2季在线 | 亚洲精品午夜VA久久成人 | 午夜爽喷水无码成人18禁三级 | 无码AV熟妇素人内射V在线 | 55夜色66夜亚洲精品播放 | 理论片87福利理论电影 | 国产ts调教 | 啊好深啊别拔就射在里面 | 国产成人精品电影 | 国产在线AV一区二区香蕉 | 无码AV免费精品一区二区三区 | 亚洲.欧美.中文字幕在线观看 | 公和我做好爽添厨房中文字幕 | 成人短片迅雷下载 | 日本久久和电影 | 97视频在线观看免费视频 | 玉林天天论坛 | 亚洲精品一区三区三区在线观看 | 色欲AV亚洲午夜精品无码 | 99成人在线视频 | 一本到2v不卡区 | 国产婷婷午夜精品无码A片 国产婷婷色综合AV蜜臀AV |