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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

FFplay文档解读-46-视频源,视频接收器

發布時間:2024/3/26 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 FFplay文档解读-46-视频源,视频接收器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

30. 視頻源

以下是當前可用視頻源的說明。

30.1 buffer

緩沖視頻幀,并使其可用于過濾器鏈。

該源主要用于編程用途,特別是通過'libavfilter/vsrc_buffer.h'中定義的接口。

它接受以下參數:

video_size

指定緩沖視頻幀的大小(寬度和高度)。有關此選項的語法,請參考(ffmpeg-utils)視頻大小語法。

width

輸入視頻寬度。

height

輸入視頻高度。

pix_fmt

表示緩沖視頻幀的像素格式的字符串。它可以是對應于像素格式的數字或像素格式名稱。

time_base

指定緩沖幀的時間戳假定的時基。

frame_rate

指定視頻流的預期幀速率。

pixel_aspect,sar

輸入視頻的樣本(像素)寬高比。

sws_param

指定用于縮放過濾器的可選參數,當在輸入大小或格式中檢測到輸入更改時,該過濾器將自動插入。

hw_frames_ctx

使用硬件像素格式時,這應該是對描述輸入幀的AVHWFramesContext的引用。

例如:

buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1

將指示源接受大小為320x240且格式為yuv410p的視頻幀,假設時間戳為時基和方形像素(1:1樣本寬高比)的1/24。由于名稱為yuv410p的像素格式對應于數字6(檢查'libavutil / pixfmt.h'中的枚舉AVPixelFormat定義),此示例對應于:

buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1

或者,可以將選項指定為扁平字符串,但不推薦使用此語法:

width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den[:sws_param]

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

30.2 cellauto

創建由基本元胞自動機生成的模式。

元胞自動機的初始狀態可以通過‘filename’和‘pattern’選項來定義。如果未指定此類選項,則會隨機創建初始狀態。

在每個新幀中,視頻中的新行用下一代元胞自動機的結果填充。填充整個幀時的行為由scroll選項定義。

此來源接受以下選項:

filename,f

從指定文件中讀取初始元胞自動機狀態,即起始行。在該文件中,每個非空白字符被視為活動單元格,換行符將終止該行,并且將忽略該文件中的其他字符。

pattern,p

從指定的字符串中讀取初始元胞自動機狀態,即起始行。

字符串中的每個非空白字符都被視為活動單元格,換行符將終止該行,并且字符串中的其他字符將被忽略。

rate,r

設置視頻速率,即每秒生成的幀數。默認值為25。

random_fill_ratio,ratio

設置初始元胞自動機行的隨機填充率。它是浮點數值,范圍從0到1,默認為1/PHI。

指定文件或模式時,將忽略此選項。

random_seed,seed

設置種子以隨機填充初始行,必須是0和UINT32_MAX之間的整數。如果未指定,或者顯式設置為-1,則過濾器將嘗試在盡力而為的基礎上使用良好的隨機種子。

rule

設置元胞自動機規則,它是一個介于0到255之間的數字。默認值為110。

size,s

設置輸出視頻的大小。有關此選項的語法,請參考(ffmpeg-utils)視頻大小語法。

如果指定了'filename'或'pattern',則默認情況下將大小設置為指定初始狀態行的寬度,并將高度設置為width*PHI。

如果設置了'size',則它必須包含指定模式字符串的寬度,并且指定的模式將在較大的行中居中。

如果未指定文件名或模式字符串,則大小值默認為“320x518”(用于隨機生成的初始狀態)。

scroll

如果設置為1,則在輸出中的所有行都已填充時向上滾動輸出。如果設置為0,則在填充底行之后,新生成的行將寫在頂行。默認為1。

start_full,full

如果設置為1,則在輸出第一幀之前完全用生成的行填充輸出。這是默認行為,禁用時將值設置為0。

stitch

如果設置為1,則將左右行邊緣縫合在一起。這是默認行為,禁用時將值設置為0。

30.2.1 示例

  • 從'pattern'讀取初始狀態,并指定大小為200x400的輸出。

    cellauto=f=pattern:s=200x400
  • 生成寬度為200個單元格的隨機初始行,填充率為2/3:

    cellauto=ratio=2/3:s=200x200
  • 創建由規則18生成的模式,該模式由以寬度為100的初始行為中心的單個活動單元開始:

    cellauto=p=@:s=100x400:full=0:rule=18
  • 指定更精細的初始模式:

    cellauto=p='@@ @ @@':s=100x400:full=0:rule=18

30.3 coreimagesrc

在OSX上使用Apple的CoreImage API在GPU上生成的視頻源。

此視頻源是coreimage視頻濾鏡的專用版本。 在應用的過濾鏈的開頭使用核心圖像生成器來生成內容。

coreimagesrc視頻源接受以下選項:

list_generators

列出所有可用的發電機及其各自的選項,以及可能的最小值和最大值以及默認值。

??list_generators=true

size, s

指定源視頻的大小。 有關此選項的語法,請查閱(ffmpeg-utils)視頻大小語法。 默認值為320x240。

rate, r

指定源視頻的幀速率,作為每秒生成的幀數。 它必須是frame_rate_num/frame_rate_den格式的字符串,整數,浮點數或有效視頻幀速率縮寫。 默認值為25。

sar

設置源視頻的樣本寬高比。

duration, d

設置源視頻的持續時間。 請參閱(ffmpeg-utils)接受語法的持續時間語法。

如果未指定,或者表達的持續時間為負,則視頻應該永久生成。

此外,還接受coreimage視頻過濾器的所有選項。 完整的過濾鏈可用于進一步處理生成的輸入而無需CPU-HOST傳輸。 有關詳細信息,請參閱coreimage文檔和示例。

30.3.1 示例

  • 使用CIQRCodeGenerator為FFmpeg主頁創建QR代碼,作為Apple標準bash shell的完整和轉義命令行:

    ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.pn

此示例等同于coreimage的QRCode示例,而不需要nullsrc視頻源。

30.4 mandelbrot

生成Mandelbrot集分形,并逐漸縮放到start_x和start_y指定的點。

此來源接受以下選項:

end_pts

設置終端pts值。 默認值為400。

end_scale

設置終端比例值。 必須是浮點值。 默認值為0.3。

inner

設置內部著色模式,即用于繪制Mandelbrot分形內部區域的算法。

它應采用以下值之一:

值解釋
black設置黑色模式
convergence顯示時間直到收斂
mincol根據最接近迭代原點的點設置顏色
period設置期間模式

默認值是:mincol。

bailout

設置bailout價值。 默認值為10.0。

maxiter

設置渲染算法執行的最大迭代次數。 默認值為7189。

outer

設置外部著色模式。 它應采用以下值之一:

值解釋
iteration_count設置迭代cound模式
normalized_iteration_count設置規范化迭代計數模式

默認值是:normalized_iteration_count。

rate,r

設置幀速率,表示為每秒幀數。 默認值為25。

size,s

設置框架大小。 有關此選項的語法,請查閱(ffmpeg-utils)視頻大小語法。 默認值為640x480。

start_scale

設置初始比例值。 默認值為3.0。

start_x

設置初始x位置。 必須是介于-100和100之間的浮點值。默認值為-0.743643887037158704752191506114774。

start_y

設置初始y位置。 必須是介于-100和100之間的浮點值。默認值為-0.131825904205311970493132056385139。

30.5 mptestsrc

生成由MPlayer測試過濾器生成的各種測試模式。

生成的視頻的大小是固定的,為256x256。 此源特別適用于測試編碼功能。

此來源接受以下選項:

rate,r

指定源視頻的幀速率,作為每秒生成的幀數。 它必須是frame_rate_num/frame_rate_den格式的字符串,整數,浮點數或有效視頻幀速率縮寫。 默認值為25。

duration, d

設置源視頻的持續時間。 請參閱(ffmpeg-utils)接受語法的持續時間語法。

如果未指定,或者表達的持續時間為負,則視頻應該永久生成。

test,t

設置要執行的測試的編號或名稱。 支持的測試是:

dc_luma
dc_chroma
freq_luma
freq_chroma
amp_luma
amp_chroma
cbp
mv
ring1
ring2
all

默認值為all,它將循環顯示所有測試的列表。

下面是一些例子:

mptestsrc=t=dc_luma

將生成dc_luma測試模式。

30.6 frei0r_src

提供frei0r源。

要啟用此過濾器的編譯,需要安裝frei0r標頭并使用--enable-frei0r配置FFmpeg。

此源接受以下參數:

size

要生成的視頻大小。 有關此選項的語法,請查閱(ffmpeg-utils)視頻大小語法。

framerate

生成視頻的幀率。 它可以是num/den形式的字符串或幀速率縮寫。

filter_name

要加載的frei0r源的名稱。 有關frei0r以及如何設置參數的更多信息,請閱讀視頻過濾器文檔中的frei0r部分。

filter_params

傳遞給frei0r源的'|'分隔參數列表。

例如,要生成大小為200x200且幀速率為10的frei0r partik0l源,它覆蓋在覆蓋濾波器主輸入上:

frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay

30.7 life

生成life模式。

這個來源是基于John Conway生活游戲的概括。

源輸入表示生命網格,每個像素表示可以處于兩種可能狀態之一(alive或dead)的單元格。每個細胞與其八個鄰居相互作用,這八個neighbours是水平,垂直或對角相鄰的cells。

在每次交互時,網格根據所采用的規則進化,該規則指定將使細胞保持活著或出生的相鄰活細胞的數量。 'rule'選項允許指定要采用的規則。

此來源接受以下選項:

filename,f

設置從中讀取初始網格狀態的文件。在文件中,每個非空白字符都被視為活動單元格,而換行符用于分隔每行的結尾。

如果未指定此選項,則會隨機生成初始網格。

rate,r

設置視頻速率,即每秒生成的幀數。默認值為25。

random_fill_ratio,ratio

設置初始隨機網格的隨機填充率。它是浮點數值,范圍從0到1,默認為1/PHI。指定文件時會被忽略。

random_seed,seed

設置填充初始隨機網格的種子,必須是0到UINT32_MAX之間的整數。如果未指定,或者顯式設置為-1,則過濾器將嘗試在盡力而為的基礎上使用良好的隨機種子。

rule

設定life規則。

可以使用SNS/BNB類型的代碼指定規則,其中NS和NB是0-8范圍內的數字序列,NS指定使活細胞保持活動的活動相鄰小區的數量,以及NB使死細胞變為活著(即"born")的活著的鄰居細胞的數量。 s和b可分別代替S和B。

或者,規則可以由18位整數指定。如果9個高階位對于每個相鄰的活細胞數是活著的,則使用9個高階位來編碼下一個細胞狀態,低階位指定用于“生成”新細胞的規則。高階比特編碼更多數量的相鄰小區。例如,數字6153 =(12 << 9)+9指定保持活動規則12和出生規則9,其對應于S23/B03。

默認值是S23/B3,這是Conway最初的生命游戲規則,如果它有2個或3個相鄰的活細胞,它將保持細胞存活,并且如果死者周圍有三個活細胞,它將生成一個新細胞細胞。

size,s

設置輸出視頻的大小。有關此選項的語法,請檢查(ffmpeg-utils)視頻大小語法。

如果指定了'filename',則默認情況下將大小設置為與輸入文件相同的大小。如果設置了size,則它必須包含輸入文件中指定的大小,并且該文件中定義的初始網格將在較大的結果區域中居中。

如果未指定文件名,則大小值默認為320x240(用于隨機生成的初始網格)。

stitch

如果設置為1,則將左右網格邊緣縫合在一起,頂部和底部邊緣也縫合在一起。默認為1。

mold

設定細胞模具速度。如果設置,死細胞將從'death_color'變為'mold_color',步驟為'mold'。 'mold'的值可以是0到255。

life_color

設置生命(或新生)細胞的顏色。

death_color

設置死細胞的顏色。如果設置了mold,這是用于表示死細胞的第一種顏色。

mold_color

設定模具顏色,確定dead和moldy的cells。

有關這3種顏色選項的語法,請查閱(ffmpeg-utils)顏色語法。

30.7.1 Examples

  • 從'pattern'讀取網格,并將其居中放在尺寸為300x300像素的網格上:

    life=f=pattern:s=300x300
  • 生成大小為200x200的隨機網格,填充率為2/3:

    life=ratio=2/3:s=200x200
  • 指定用于演變隨機生成的網格的自定義規則:

    life=rule=S14/B34
  • 使用ffplay進行slow death效果(mold)的完整示例:

    ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16

30.8 allrgb, allyuv, color, haldclutsrc, nullsrc, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2, yuvtestsrc

allrgb源返回所有rgb顏色大小為4096x4096的幀。

allyuv源返回所有yuv顏色的大小為4096x4096的幀。

顏色源提供均勻彩色的輸入。

haldclutsrc源提供Hald CLUT標識。另見haldclut過濾器。

nullsrc源返回未處理的視頻幀。它主要用于分析/調試工具,或作為忽略輸入數據的過濾器的源。

rgbtestsrc源生成一個RGB測試模式,可用于檢測RGB與BGR問題。應該從上到下看到紅色,綠色和藍色條紋。

smptebars源根據SMPTE工程指南EG 1-1990生成彩條圖案。

smptehdbars源根據SMPTE RP 219-2002生成彩條模式。

testsrc源生成測試視頻模式,顯示顏色模式,滾動漸變和時間戳。這主要用于測試目的。

testsrc2源類似于testsrc,但支持更多像素格式而不僅僅是rgb24。這允許將其用作其他測試的輸入,而無需格式轉換。

yuvtestsrc源生成YUV測試模式。你應該從上到下看到y,cb和cr條紋。

來源接受以下參數:

level

指定Hald CLUT的級別,僅在haldclutsrc源中可用。 N級生成N*N*N個N*N*N個像素的圖像,以用作3D查找表的單位矩陣。每個分量以1/(N*N)標度編碼。

color, c

指定源的顏色,僅在顏色源中可用。有關此選項的語法,請查閱(ffmpeg-utils)顏色語法。

size,s

指定源視頻的大小。有關此選項的語法,請檢查(ffmpeg-utils)視頻大小語法。默認值為320x240。

allrgb,allyuv和haldclutsrc過濾器不提供此選項。

rate,r

指定源視頻的幀速率,作為每秒生成的幀數。它必須是frame_rate_num/frame_rate_den格式的字符串,整數,浮點數或有效視頻幀速率縮寫。默認值為25。

duration, d

設置源視頻的持續時間。請參閱(ffmpeg-utils)接受語法的持續時間語法。

如果未指定,或者表達的持續時間為負,則視頻應該永久生成。

sar

設置源視頻的樣本寬高比。

alpha

指定背景的alpha(不透明度),僅在testsrc2源中可用。該值必須介于0(完全透明)和255(完全不透明,默認值)之間。

decimals, n

設置要在時間戳中顯示的小數位數,僅在testsrc源中可用。

顯示的時間戳值將對應于原始時間戳值乘以指定值的10的冪。默認值為0。

30.8.1 示例

  • 生成持續時間為5.3秒的視頻,大小為176x144,幀速率為每秒10幀:

    testsrc=duration=5.3:size=qcif:rate=10
  • 下面的圖形描述將生成一個不透明度為0.2的紅色光源,其大小為qcif,幀速率為每秒10幀:

    color=c=red@0.2:s=qcif:r=10
  • 如果要忽略輸入內容,則可以使用nullsrc。 以下命令使用geq過濾器在亮度平面中生成噪聲:

    nullsrc=s=256x256, geq=random(1)*255:128:128

30.8.2 命令行

顏色源支持以下命令:

c, color

設置創建圖像的顏色。 接受相應‘color’選項的相同語法。

30.9 openclsrc

使用OpenCL程序生成視頻。

source

OpenCL程序源文件。

kernel

程序中的內核名稱。

size,s

要生成的幀大小。 必須設置此項。

format

用于生成幀的像素格式。 必須設置此項。

rate,r

每秒生成的幀數。 默認值為25。

有關程序加載的工作方式的詳細信息,請參閱program_opencl過濾器。

示例程序:

  • 通過設置輸出圖像中像素位置的像素值來生成顏色漸變。 (請注意,這適用于所有像素格式,但生成的輸出將不相同。)

    __kernel void ramp(__write_only image2d_t dst,unsigned int index){int2 loc = (int2)(get_global_id(0), get_global_id(1));float4 val;val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));write_imagef(dst, loc, val);}
  • 生成Sierpinski地毯圖案,每幀平移一個像素。

    __kernel void sierpinski_carpet(__write_only image2d_t dst,unsigned int index){int2 loc = (int2)(get_global_id(0), get_global_id(1));float4 value = 0.0f;int x = loc.x + index;int y = loc.y + index;while (x > 0 || y > 0) {if (x % 3 == 1 && y % 3 == 1) {value = 1.0f;break;}x /= 3;y /= 3;}write_imagef(dst, loc, value);}

31.視頻接收器

以下是當前可用視頻接收器的說明。

31.1 buffersink

緩沖視頻幀,并使其可用于過濾器圖形的末尾。

此接收器主要用于程序化使用,特別是通過libavfilter/buffersink.h或選項系統中定義的接口。

它接受一個指向AVBufferSinkContext結構的指針,該結構定義傳入緩沖區的格式,作為opaque參數傳遞給avfilter_init_filter進行初始化。

31.2 nullsink

空視頻接收器:輸入視頻絕對不做任何事情。 它主要用作模板和用于分析/調試工具。

總結

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

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