日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

FFplay文档解读-39-视频过滤器十四

發布時間:2023/12/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FFplay文档解读-39-视频过滤器十四 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

29.130 prewitt

應用prewitt運算符輸入視頻流。

過濾器接受以下選項:

planes

設置要處理的平面,將復制未處理的平面。 默認值為0xf,將處理所有平面。

scale

設定值將與過濾結果相乘。

delta

設置將添加到篩選結果的值。

29.131 program_opencl

使用OpenCL程序過濾視頻。

source

OpenCL程序源文件。

kernel

程序中的內核名稱。

inputs

過濾器的輸入數量。 默認為1。

size, s

輸出幀的大小。 默認值與第一個輸入相同。

程序源文件必須包含具有給定名稱的內核函數,該函數將針對輸出的每個平面運行一次。 平面上的每次運行都會作為單獨的2D全局NDRange排隊,每個像素都會生成一個工作項。 因此,每個工作項的全局ID偏移量是目標圖像中像素的坐標。

?學習地址:音視頻新手快速入門必備系列-FFmpeg+SDL播放器開發實現-學習視頻教程-騰訊課堂
【文章福利】免費領取更多音視頻學習資料包、大廠面試題、技術視頻和學習路線圖,資料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以點擊1079654574加群領取哦~

??

內核函數需要采用以下參數:

  • 目標圖像,__ write_only image2d_t。

??這個圖像將成為輸出; 內核應該寫出所有內容。

  • 幀索引,unsigned int。

??這是一個從零開始的計數器,每幀增加一個。

  • 源圖像,__ read_only image2d_t。

??這些是每個輸入的最新圖像。 內核可以從它們讀取以生成輸出,但是它們無法寫入。

示例程序如下:

  • 將輸入復制到輸出(輸出必須與輸入的大小相同)。

    __kernel void copy(__write_only image2d_t destination,unsigned int index,__read_only image2d_t source){const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;int2 location = (int2)(get_global_id(0), get_global_id(1));float4 value = read_imagef(source, sampler, location);write_imagef(destination, location, value);}
  • 應用簡單的轉換,使用索引計數器增加一個量的輸入。 采樣器對像素值進行線性插值,輸出的尺寸不必與輸入相同。

    __kernel void rotate_image(__write_only image2d_t dst,unsigned int index,__read_only image2d_t src){const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |CLK_FILTER_LINEAR);float angle = (float)index / 100.0f;float2 dst_dim = convert_float2(get_image_dim(dst));float2 src_dim = convert_float2(get_image_dim(src));float2 dst_cen = dst_dim / 2.0f;float2 src_cen = src_dim / 2.0f;int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));float2 dst_pos = convert_float2(dst_loc) - dst_cen;float2 src_pos = {cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,sin(angle) * dst_pos.x + cos(angle) * dst_pos.y};src_pos = src_pos * src_dim / dst_dim;float2 src_loc = src_pos + src_cen;if (src_loc.x < 0.0f || src_loc.y < 0.0f ||src_loc.x > src_dim.x || src_loc.y > src_dim.y)write_imagef(dst, dst_loc, 0.5f);elsewrite_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));}
  • 將兩個輸入混合在一起,每個輸入的使用量隨索引計數器而變化。

    __kernel void blend_images(__write_only image2d_t dst,unsigned int index,__read_only image2d_t src1,__read_only image2d_t src2){const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |CLK_FILTER_LINEAR);float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);float4 val1 = read_imagef(src1, sampler, src1_loc);float4 val2 = read_imagef(src2, sampler, src2_loc);write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));}

29.132 pseudocolor

用偽彩色改變視頻中的幀顏色。

此過濾器接受以下選項:

c0

設置像素第一組件表達式。

c1

設置像素第二組件表達式。

c2

設置像素第三組件表達式。

c3

設置像素第四個組件表達式,對應于alpha組件。

i

設置組件以用作改變顏色的基礎。

它們中的每一個都指定用于計算相應像素分量值的查找表的表達式。

表達式可以包含以下常量和函數:

w h

輸入的寬度和高度。

val

像素組件的輸入值。

ymin,umin,vmin,amin

允許的最小組件值。

ymax,umax,vmax,amax

允許的最大組件值。

所有表達式默認為val。

29.132.1 示例

  • 將太高的亮度值更改為漸變:

    pseudocolor="'if(between(val,ymax,amax),lerp(ymin,ymax,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(umax,umin,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(vmin,vmax,(val-ymax)/(amax-ymax)),-1):-1'"

29.133 psnr

獲取兩個輸入視頻之間的平均,最大和最小PSNR(峰值信噪比)。

此過濾器輸入兩個輸入視頻,第一個輸入被視為"main"源,并且不變地傳遞到輸出。 第二輸入用作用于計算PSNR的"reference"視頻。

兩個視頻輸入必須具有相同的分辨率和像素格式才能使此濾鏡正常工作。 此外,它假設兩個輸入具有相同的幀數,逐個進行比較。

通過測井系統打印獲得的平均PSNR。

濾波器存儲每幀的累積MSE(均方誤差),并且在處理結束時,它在所有幀上均等地平均,并且應用以下公式來獲得PSNR:

PSNR = 10*log10(MAX^2/MSE)

其中MAX是圖像每個分量的最大值的平均值。

接下來的參數的描述如下。

stats_file,f

如果指定,則過濾器將使用指定的文件來保存每個幀的PSNR。當filename等于-時,數據被發送到標準輸出。

stats_version

指定要使用的stats文件格式的版本。每種格式的詳細信息如下。默認值為1。

stats_add_max

確定是否將最大值輸出到統計日志。默認值為0。需要stats_version> = 2。如果設置且stats_version <2,則過濾器將返回錯誤。

此過濾器還支持framesync選項。

如果選擇了stats_file,則打印的文件包含表單鍵的鍵/值對序列:每個比較的幀對的值。

如果指定了stats_version大于1,則標題行位于每幀對統計數據列表之前,其中鍵值對遵循幀格式,并帶有以下參數:

psnr_log_version

日志文件格式的版本。將匹配stats_version。

fields

日志中包含的每幀對參數的逗號分隔列表。

每個所示的每幀對參數的描述如下:

n

輸入幀的序號,從1開始

mse_avg

均方誤差在所有圖像分量上平均的比較幀的逐像素平均差異。

mse_y,mse_u,mse_v,mse_r,mse_g,mse_b,mse_a

均值平方誤差由后綴指定的組件的比較幀的逐像素平均差異。

psnr_y,psnr_u,psnr_v,psnr_r,psnr_g,psnr_b,psnr_a

由后綴指定的組件的比較幀的峰值信噪比。

max_avg,max_y,max_u,max_v

每個通道的最大允許值,以及所有通道的平均值。

例如:

movie = ref_movie.mpg,setpts = PTS-STARTPTS [main]; [main] [ref] psnr =“stats_file = stats.log”[out]

在此示例中,正在處理的輸入文件與參考文件ref_movie.mpg進行比較。每個幀的PSNR存儲在stats.log中。

29.134 pullup

下拉式反轉(反轉電視電影)過濾器,能夠處理混合的硬電視電影,24000/1001 fps漸進和30000/1001 fps漸進內容。

上拉濾波器旨在利用未來的背景來做出決策。 此過濾器在沒有鎖定到要跟隨的模式的意義上是無狀態的,但它反過來期待以下字段以識別匹配并重建漸進幀。

要生成具有均勻幀率的內容,請在上拉后插入fps濾波器,如果輸入幀速率為29.97fps,則使用fps = 24000/1001,對于30fps使用fps = 24,使用(稀有)電視電影25fps輸入。

過濾器接受以下選項:

jl jr jt jb

這些選項分別在圖像的左側,右側,頂部和底部設置要忽略的"junk"量。 左和右以8像素為單位,而頂部和底部以2行為單位。 默認值是每邊8像素。

sb

設置嚴格的休息時間。 將此選項設置為1將減少濾波器生成偶然不匹配幀的機會,但也可能導致在高運動序列期間丟棄過多幀。 相反,將其設置為-1將使過濾器匹配字段更容易。 這可以幫助處理視頻,其中字段之間存在輕微模糊,但是也可能導致輸出中存在交錯幀。 默認值為0。

mp

設置要使用的度量標準平面。 它接受以下值:

值解釋
l使用luma plane
u使用chroma blue plane
v使用chroma red plane

可以將此選項設置為使用色度平面而不是默認亮度平面來進行濾波器的計算。 這可以提高非常干凈的源材料的準確度,但更有可能降低精度,尤其是在存在色度噪聲(彩虹效應)或任何灰度視頻的情況下。 將'mp'設置為色度平面的主要目的是減少CPU負載并使上拉在慢速機器上實時可用。

為獲得最佳結果(輸出文件中沒有重復的幀),必須更改輸出幀速率。 例如,要反轉電視電影NTSC輸入:

ffmpeg -i input -vf pullup -r 24000/1001 ...

29.135 qp

更改視頻量化參數(QP)。

過濾器接受以下選項:

qp

設置量化參數的表達式。

表達式通過eval API進行評估,并且可以包含以下常量:

known

如果index不是129則為1,否則為0。

qp

順序索引從-129到128。

29.135.1 示例

  • 一些方程如下:

    qp=2+2sin(PIqp)

29.136 random

將幀內部緩存中的視頻幀刷新為隨機順序。 沒有幀被丟棄。 靈感來自frei0r神經過濾器。

frames

設置內部緩存幀數的大小,范圍為2到512。默認值為30。

seed

為隨機數生成器設置種子,必須是0到UINT32_MAX之間的整數。 如果未指定,或者顯式設置為小于0,則過濾器將嘗試在盡力而為的基礎上使用良好的隨機種子。

29.137 readeia608

從視頻幀的頂行讀取隱藏式字幕(EIA-608)信息。

此過濾器為lavfi.readeia608.X.cc和lavfi.readeia608.X.line添加幀元數據,其中X是具有EIA-608數據的標識行的編號(從0開始)。每個元數據值的描述如下:

lavfi.readeia608.X.cc

這兩個字節存儲為EIA-608數據(以十六進制打印)。

lavfi.readeia608.X.line

識別和讀取EIA-608數據的行號。

此過濾器接受以下選項:

scan_min

設置該行以開始掃描EIA-608數據。默認值為0。

scan_max

將行設置為結束掃描EIA-608數據。默認值為29。

mac

設置同步碼檢測的最小可接受幅度變化。默認值為0.2。允許范圍為[0.001 - 1]。

spw

設置為同步代碼檢測保留的寬度比率。默認值為0.27。允許范圍為[0.01 - 0.7]。

mhd

設置同步代碼檢測的最大峰高差。默認值為0.1。允許范圍是[0.0 - 0.5]。

mpd

設置同步代碼檢測的最大峰值周期差。默認值為0.1。允許范圍是[0.0 - 0.5]。

msd

設置前兩個最大起始碼位差異。默認值為0.02。允許范圍是[0.0 - 0.5]。

bhd

設置與第3個起始碼位相比的位高度的最小比率。默認值為0.75。允許范圍為[0.01 - 1]。

th_w

設置白色閾值。默認值為0.35。允許范圍是[0.1 - 1]。

th_b

設置黑色閾值。默認值為0.15。允許范圍是[0.0 - 0.5]。

chp

啟用檢查奇偶校驗位。如果出現奇偶校驗錯誤,則過濾器將為該字符輸出0x00。默認值為false。

29.137.1 示例

  • 輸出具有顯示時間的csv和識別的EIA-608字幕數據的前兩行。

    ffprobe -f lavfi -i movie=captioned_video.mov,readeia608 -show_entries frame=pkt_pts_time:frame_tags=lavfi.readeia608.0.cc,lavfi.readeia608.1.cc -of csv

29.138 readvitc

從視頻幀的頂行讀取垂直間隔時間碼(VITC)信息。

如果檢測到有效時間碼,則過濾器將幀元數據密鑰lavfi.readvitc.tc_str與時間碼值相加。 根據是否已找到時間碼數據,將進一步的元數據鍵lavfi.readvitc.found設置為0/1。

此過濾器接受以下選項:

scan_max

設置要掃描VITC數據的最大行數。 如果該值設置為-1,則掃描完整的視頻幀。 默認值為45。

thr_b

設置黑色的亮度閾值。 接受[0.0,1.0]范圍內的浮點數,默認值為0.2。 該值必須等于或小于thr_w。

thr_w

設置白色的亮度閾值。 接受[0.0,1.0]范圍內的浮點數,默認值為0.6。 該值必須等于或大于thr_b。

29.138.1 示例

  • 檢測VITC數據并將其繪制到視頻幀上; 如果沒有檢測到有效的VITC,請繪制--:--:--:--作為占位符:

    ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'

29.139 remap

使用2nd:Xmap和3rd:Ymap輸入視頻流重新映射像素。

將從源(x,y)位置拾取位置(X,Y)處的目標像素,其中x = Xmap(X,Y)并且y = Ymap(X,Y)。 如果映射值超出范圍,則像素的零值將用于目標像素。

Xmap和Ymap輸入視頻流必須具有相同的尺寸。 輸出視頻流將具有Xmap / Ymap視頻流尺寸。 Xmap和Ymap輸入視頻流是16bit深度,單通道。

總結

以上是生活随笔為你收集整理的FFplay文档解读-39-视频过滤器十四的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品综合视频 | 亚洲第一天堂av | 在线视频 中文字幕 | 在线爱情大片免费观看大全 | 欧美做爰啪啪xxxⅹ性 | 欧美激情xxxxx | 小明天天看 | 亚洲咪咪 | av资源网在线观看 | 亚洲av无码一区二区三区四区 | jlzzjlzz亚洲女人18 | 天堂中文字幕在线 | 久久资源av | 国产av电影一区二区三区 | 图片区 小说区 区 亚洲五月 | 久久久亚洲av波多野结衣 | 欧美精品第一区 | 福利小视频在线播放 | 成人午夜影视在线观看 | 特黄特色免费视频 | 东京av在线| 婷婷日 | 91成人一区 | 久久综合高清 | 久久这里只有精品首页 | 亚洲综合激情五月久久 | 一本加勒比波多野结衣 | 蝌蚪久久 | 天天色天天色 | av地址在线| www黄色网| 国产精品xxx视频 | 国产精品va在线 | 亚洲欧洲一区二区三区 | 日韩成人性视频 | 国产精品夜夜嗨 | 黄色的网站在线观看 | 国产一区二区在线精品 | 国产黄免费 | 亚洲一区二区精华 | 亚洲精品国产精 | 女女调教被c哭捆绑喷水百合 | 日韩深夜视频 | 性高潮久久久久久久久 | 国产欧美一区二区三区免费看 | 91蝌蚪在线观看 | 人体内射精一区二区三区 | 久操福利 | 精品色综合 | 天天爽夜夜 | 亚洲专区av | 91看片网站 | 欧美自拍色图 | 秋霞av网 | 中文字幕永久在线视频 | 日韩精品福利在线 | 国产98在线 | 国产高清免费观看 | 成人精品自拍 | 免费草逼视频 | 国产精品无码av在线有声小说 | 少妇高潮av久久久久久 | 午夜激情小视频 | 一区二区三区四区国产精品 | 午夜福利视频合集1000 | 日本性爱视频在线观看 | 亚洲激情专区 | 欧洲日韩一区二区三区 | 亚洲国产成人av | 黄色一级视频 | 欧美人日b| 午夜一区二区视频 | 精品成人在线 | 午夜成人免费影院 | 色婷婷婷婷 | 亚洲国产无码久久 | 深爱婷婷 | 国产91免费视频 | 91免费看网站 | 欧美在线视频一区二区三区 | 999午夜 | 69视频在线观看免费 | 色欧美片视频在线观看 | 视频在线一区二区 | 久久视频精品 | 麻豆疯狂做受xxxx高潮视频 | 欧美91在线| 久久不卡视频 | 中国黄色大片 | 91国产丝袜播放在线 | 淫五月天 | 色欲亚洲Av无码精品天堂 | av黄色免费网站 | 久久久久久久久久久久久久国产 | 国产三级国产精品 | 337p粉嫩大胆色噜噜狠狠图片 | 97夜夜 | 亚洲AV不卡无码一区二区三区 | 91av日本|