motion vectors中文翻譯,motion vectors是什么意思,motion vectors發(fā)音、用法及例句
- 內容導航:
- 1、motion vectors
- 2、FFmpeg工具
1、motion vectors
motion vectors發(fā)音
英: 美:
motion vectors中文意思翻譯
常用釋義:運動(dòng)矢量
運動(dòng)矢量
motion vectors雙語(yǔ)使用場(chǎng)景
1、For the correctness of the motion vectors, the motion vectors are revised by median filtering.───為了保證用于運動(dòng)補償的運動(dòng)矢量的準確性,本文采用中值濾波算法校正運動(dòng)矢量。
2、proposes a robust video watermarking scheme based on motion vectors.───提出一種基于運動(dòng)矢量的魯棒視頻水印方案。
3、The cyclonic circulation associated with Sam is well depicted by the storm motion vectors. Fig.───從圖中風(fēng)暴運動(dòng)向量清楚看到與森姆相關(guān)的氣旋式環(huán)流。
4、a hybrid video watermarking scheme based on motion vectors and DCT coefficients is proposed.───一種基于運動(dòng)矢量域與DCT域的混合視頻水印方案。
5、based on reference motion vectors to carry out prediction for current motion vector to be predicted.───根據參考運動(dòng)矢量對當前待預測運動(dòng)矢量進(jìn)行預測。
6、Then, motion vectors samples associated with background macroblocks are selected to estimate motion model parameters.───基于分割的結果,采用背景宏塊的運動(dòng)矢量進(jìn)行全局運動(dòng)參數估計。
7、Thirdly, the search center is selected among the reference motion vector and spatial neighboring motion vectors.───接著(zhù)從參考運動(dòng)矢量以及空間相鄰運動(dòng)矢量中選取搜索中心;
8、As real motion has arbitrary precision, allowing motion vectors to have half-pixel resolution can greatly improve the prediction accuracy.───實(shí)際對象的運動(dòng)精度可以是任意小的,允許運動(dòng)矢量具有半像素精度,可以有效地提高運動(dòng)預測準確度。
9、The median of the said three predicted motion vectors is as predicted motion vector of current block.───將上述三個(gè)預測運動(dòng)矢量中的中值作為當前塊的預測運動(dòng)矢量。
motion vectors相似詞語(yǔ)短語(yǔ)
1、equipollent vectors───等效矢量
2、vectors calculator───矢量計算器
3、motion───vt.運動(dòng);向…打手勢;n.動(dòng)作;移動(dòng);手勢;請求;意向;議案;vi.運動(dòng);打手勢
4、coplanar vectors───共面向量
5、vectors lab───向量實(shí)驗室
6、vectors physics───矢量物理學(xué)
7、subtracting vectors───減去向量
8、vectors c++───向量c++
9、vectors───v.推動(dòng)…前進(jìn);指引(vector的第三人稱(chēng)單數);n.[數]向量(vector的復數);航向;航線(xiàn);彈道,軌道;帶菌者
2、FFmpeg工具
ffmpeg在做音視頻編解碼時(shí)非常方便,所以很多場(chǎng)景下轉碼使用的是ffmpeg,通過(guò)ffmpeg –-help可以看到ffmpeg常見(jiàn)的命令大概分為六部分:
命令格式如下:
下面羅列一些ffmpeg常用的信息查詢(xún)命令:
1、查詢(xún)版本信息
2、ffmpeg查詢(xún)是否支持對應的視頻文件格式
使用ffmpeg轉嗎,有時(shí)候可能會(huì )遇到無(wú)法解析的視頻文件或者無(wú)法生成視頻文件,報錯提示不支持生成對應的視頻文件,這時(shí)候就需要查看當前使用的ffmpeg是否支持對應的視頻文件格式,需要使用ffmpeg -formats參數來(lái)查看:
根據上面輸出的信息可以看到,輸出的內容分為3個(gè)部分,具體如下。
輸出信息中包含了三部分內容,具體如下。
輸出信息的內容分為四列,具體如下。
從輸出的幫助信息中可以看到,FLV的muxer的信息包含兩大部分,具體如下。
從輸出的幫助信息可以看到,FLV的demuxer的信息包含兩大部分:
從幫助信息可以看到,H.264(AVC)的編碼參數包含兩大部分,具體如下。
從幫助信息可以看到,H.264(AVC)的解碼參數查看包括兩大部分,具體如下:
從幫助信息可以看到,colorkey濾鏡查看信息包含兩大部分,具體如下。
ffmpeg的封裝轉換(轉封裝)功能包含在A(yíng)VFormat模塊中,通過(guò)libavformat庫進(jìn)行Mux和Demux操作;多媒體文件的格式有很多種,這些格式中的很多參數在Mux與Demux的操作參數中是公用的,下面來(lái)詳細介紹一下這些公用的參數。
通過(guò)查看ffmpeg --help full信息,找到AVFormatContext參數部分,該參數下的所有參數均為封裝轉換可使用的參數。下表列出了ffmpeg AVFormatContext的主要參數及說(shuō)明。
這些都是通用的封裝、解封裝操作時(shí)使用的參數,后續章節中介紹轉封裝操作、解封裝操作、封裝操作時(shí),上述參數可以與對應的命令行參數搭配使用。
ffmpeg編解碼部分的功能主要是通過(guò)模塊AVCodec來(lái)完成的,通過(guò)libavcodec庫進(jìn)行Encode與Decode操作。多媒體編碼格式的種類(lèi)有很多,但是還是有很多通用的基本操作參數設置,下面來(lái)詳細介紹這些公用的參數。
通過(guò)命令ffmpeg --help full可以看到AVCodecContext參數列表信息。該選項下面的所有參數均為編解碼可以使用的參數。
ffmpeg還有一些更細化的參數,本節中并未詳細提及,可以根據本節中提到的查看方法查看ffmpeg的幫助文件以查看更多的內容,本節中介紹的是重點(diǎn)及常用的通用參數,后續章節中介紹編碼操作時(shí),上述參數可以配合對應的例子使用。
ffmpeg工具的主要用途為編碼、解碼、轉碼以及媒體格式轉換,ffmpeg常用于進(jìn)行轉碼操作,使用ffmpeg轉碼的主要原理如圖
通過(guò)之前介紹的參數,可以設置轉碼的相關(guān)參數,如果轉碼操作頻涉及封裝的改變,則可以通過(guò)設置AVCodec與AVFormat的操作參數進(jìn)行封裝與編碼的改變,下面示例:
從輸出信息中可以看到,以上輸出的參數中使用了前面介紹過(guò)的參數,具體如下。
在 FFmpeg套件中,除了ffmpeg作為多媒體處理工具之外,還有ffprobe多媒體信息查看工具,ffprobe主要用來(lái)查看多媒體文件的信息,下面就來(lái)看一下ffprobe中常見(jiàn)的基本命令。
usage: ffprobe [OPTIONS] [INPUT_FILE] the other
ffprobe常用的參數比較多,可以通過(guò)ffprobe --help來(lái)查看詳細的幫助信息。
這些輸出的幫助信息既是ffprobe常用的操作參數,也是ffrpobe的基礎參數。例如查看log,查看每一個(gè)音頻數據包信息或者視頻數據包信息,查看節目信息,查看流信息,查看每一個(gè)流有多少幀以及每一個(gè)流有多少個(gè)音視頻包,查看視頻像素點(diǎn)的格式等。下面就來(lái)根據以上的輸出參數重點(diǎn)列舉幾個(gè)例子。
1)使用下面的命令,查看多媒體數據包信息:
通過(guò)show_packets查看的多媒體數據包信息使用PACKET標簽括起來(lái),其中包含的信息主要如下:
2)除了以上字段和信息之外,還可以通過(guò)如下的組合參數來(lái)查看包中的具體數據:
和上面的比起來(lái)多了一個(gè)data字段,具體如下
[PACKET]
codec_type=video
stream_index=0
pts=379904
pts_time=24.733333
dts=379904
dts_time=24.733333
duration=512
duration_time=0.033333
size=2010
pos=3272564
flags=__
data=
00000000: 0000 07d6 419a cc21 3ffa 5800 0031 9893 ....A..!?.X..1..
00000010: d7e7 0641 039b 27c5 e0f8 5175 1abc 0e4f ...A..'...Qu...O
00000020: d710 f401 3224 0093 a2e5 c07e 9c30 0003 ....2$.....~.0..
略過(guò)一大段數據
00000770: 1ebe 840a 5ac2 4f9a 614c 5697 8eab fef8 ....Z.O.aLV.....
00000780: 0b59 9647 cc6d 8a4b f8c0 89e8 798e f569 .Y.G.m.K....y..I
00000790: 2aca ec22 e1f5 d2e5 31b1 010e 7725 e127 *.."....1...w%.'
000007a0: c5f4 7051 f07b 8449 649f 3fab 6a3d 3913 ..pQ.{.Id.?.j=9.
000007b0: d9e4 bdd6 0f22 fa77 2b32 35f5 f4f7 5393 .....".w+25...S.
000007c0: 1c9d fe72 1550 ba41 c774 5031 96d5 aef5 ...r.P.A.tP1....
000007d0: f1b9 77a7 ad54 0800 010f ..w..T....
[/PACKET]
從輸出的內容中可以看到多媒體包中包含的數據,那么我們可以根據上述輸出內容中的pos,也就是文件偏移位置來(lái)查看,pos的值為3272564,將其轉換為十六進(jìn)制位置為0x31EF74,這就是這個(gè)包在flv文件中的偏移量,可以使用Linux下的xxd 1.mp4命令進(jìn)行查看:
0031ef70: 0000 000e 0000 07d6 419a cc21 3ffa 5800 ........A..!?.X.
0031ef80: 0031 9893 d7e7 0641 039b 27c5 e0f8 5175 .1.....A..'...Qu
0031ef90: 1abc 0e4f d710 f401 3224 0093 a2e5 c07e
0031efa0: 9c30 0003 389a 06b7 f211 fb06 362c 95a9 .0..8.......6,..
0031efb0: 0020 8f32 e280 6773 015e 78d2 87a3 e114 . .2..gs.^x.....
0031efc0: f3b3 9d2d ffd7 b202 2233 923f 3d42 bc7f ...-...."3.?=B..
可以看到從0x31EF74開(kāi)始的數據和上面一致:0000 07d6 419a cc21 3ffa 5800。
通過(guò)ffprobe讀取packets來(lái)進(jìn)行對應的數據分析,使用show_packets與show_data配合可以進(jìn)行更加精確的分析。
3)除了packets與data之外,ffprobe還可以分析多媒體的封裝格式,其使用FORMAT標簽括起來(lái)顯示:
[FORMAT]
filename=1.mp4
nb_streams=2
nb_programs=0
format_name=mov,mp4,m4a,3gp,3g2,mj2
format_long_name=QuickTime / MOV
start_time=0.000000
duration=25.704000
size=3307949
bit_rate=1029551
probe_score=100
TAG:major_brand=isom
TAG:minor_version=512
TAG:compatible_brands=isomiso2avc1mp41
TAG:encoder=Lavf55.33.100
[/FORMAT]
下面是對輸出信息關(guān)鍵字段的說(shuō)明:
4)使用下面的命令可以查看視頻文件的幀信息,輸出的幀信息將使用FRAME標簽括起來(lái):
[FRAME]
media_type=video
stream_index=0
key_frame=1
pts=0
pts_time=0.000000
pkt_dts=0
pkt_dts_time=0.000000
best_effort_timestamp=0
best_effort_timestamp_time=0.000000
pkt_duration=512
pkt_duration_time=0.033333
pkt_pos=22995
pkt_size=1888
width=720
height=1280
pix_fmt=yuv420p
sample_aspect_ratio=N/A
pict_type=I
coded_picture_number=0
display_picture_number=0
interlaced_frame=0
top_field_first=0
repeat_pict=0
color_range=tv
color_space=bt709
color_primaries=bt709
color_transfer=bt709
chroma_location=left
[/FRAME]
通過(guò)-show-frames參數可以查看每一幀的信息,下面就來(lái)介紹一下其中重要的信息,
在Windows下常用的Elecard StreamEye工具中打開(kāi)查看MP4時(shí),會(huì )很直觀(guān)地看到幀類(lèi)型顯示,用ffprobe的pict_type同樣可以看到視頻的幀是I幀,P幀或者B幀;每一幀的大小同樣也可以通過(guò)ffprobe的pkt_size查看到。
5)通過(guò)-show_streams參數可以查看到多媒體文件中的流信息,流的信息將使用STREAM標簽括起來(lái):
[STREAM]
index=0
codec_name=h264
codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
profile=Main
codec_type=video
codec_tag_string=avc1
codec_tag=0x31637661
width=720
height=1280
coded_width=720
coded_height=1280
closed_captions=0
film_grain=0
has_b_frames=0
sample_aspect_ratio=N/A
display_aspect_ratio=N/A
pix_fmt=yuv420p
level=42
color_range=tv
color_space=bt709
color_transfer=bt709
color_primaries=bt709
chroma_location=left
field_order=progressive
refs=1
is_avc=true
nal_length_size=4
id=0x1
r_frame_rate=30/1
avg_frame_rate=30/1
time_base=1/15360
start_pts=0
start_time=0.000000
duration_ts=388608
duration=25.300000
bit_rate=964695
max_bit_rate=N/A
bits_per_raw_sample=8
nb_frames=759
nb_read_frames=N/A
nb_read_packets=N/A
extradata_size=39
DISPOSITION:default=1
DISPOSITION:dub=0
DISPOSITION:original=0
DISPOSITION:comment=0
DISPOSITION:lyrics=0
DISPOSITION:karaoke=0
DISPOSITION:forced=0
DISPOSITION:hearing_impaired=0
DISPOSITION:visual_impaired=0
DISPOSITION:clean_effects=0
DISPOSITION:attached_pic=0
DISPOSITION:timed_thumbnails=0
DISPOSITION:captions=0
DISPOSITION:descriptions=0
DISPOSITION:metadata=0
DISPOSITION:dependent=0
DISPOSITION:still_image=0
TAG:language=und
TAG:handler_name=VideoHandler
TAG:vendor_id=[0][0][0][0]
[/STREAM]
如以上輸出內容所示,從中可以看到流的信息,具體屬性及說(shuō)明如下表
fprobe 使用前面的參數可以獲得key-value格式的顯示方式,但是閱讀起來(lái)因為習慣不同,可能有的人會(huì )認為方便,有的人認為不方便;如果要進(jìn)行格式化的顯示,這樣就需要用到ffprobe -print_format 或者 ffprobe -of 參數來(lái)進(jìn)行相應的格式輸出,而-print_format 支持多種格式輸出,包括XML,INI,JSON,CSV,FLAT等。下面列舉幾種常見(jiàn)的格式輸出的例子
<?xml version="1.0" encoding="UTF-8"?>
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.mp4':
Metadata:
major_brand : isom
minor_version : 512
compatible_brands: isomiso2avc1mp41
encoder : Lavf55.33.100
Duration: 00:00:25.70, start: 0.000000, bitrate: 1029 kb/s
Stream #0:0 0x1 : Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 720x1280, 964 kb/s, 30 fps, 30 tbr, 15360 tbn (default)
Metadata:
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1 0x2 : Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 72 kb/s (default)
Metadata:
handler_name : SoundHandler
vendor_id : [0][0][0][0]
從輸出的內容可以看到,輸出的內容格式為XML格式,如果原有的業(yè)務(wù)本身就可以解析XML格式,那么就不需要更改解析引擎,直接將輸出內容輸出為XML格式即可,解析引擎解析Packet信息是會(huì )更方便。
輸出INI格式:
輸出FLAT格式:
輸出JSON格式:
輸出CSV格式:
通過(guò)各種格式的輸出,可以使用對應的繪圖方式繪制出可視化圖形。
CSV格式輸出后可以使用Excel打開(kāi)表格形式
可以在命令行中自行輸出,輸出的frame信息全部為視頻相關(guān)的信息。
使用ffprobe還可以查看很多信息,我們可以通過(guò)本節介紹的help方法查看更多更詳細的信息
在FFmpeg中通常使用ffplay作為播放器,其實(shí)ffplay同樣也可作為很多音視頻的圖形化分析工具,通過(guò)ffplay可以看到視頻圖像的運動(dòng)估計方向、音頻數據的波形等,以下將介紹更多參數并舉例說(shuō)明。
1)ffplay常用參數
ffplay不僅僅是播放器,同時(shí)也是測試ffmpeg的codec引擎、format引擎,以及filter引擎的工具,并且還可以進(jìn)行可視化的媒體參數分析。其可以通過(guò)ffplay --help進(jìn)行查看:
Simple media player
usage: ffplay [options] input_file
Main options:
-L show license
-h topic show help
-? topic show help
-help topic show help
--help topic show help
-version show version
-buildconf show build configuration
-formats show available formats
-muxers show available muxers
-demuxers show available demuxers
-devices show available devices
-codecs show available codecs
-decoders show available decoders
-encoders show available encoders
-bsfs show available bit stream filters
-protocols show available protocols
-filters show available filters
-pix_fmts show available pixel formats
-layouts show standard channel layouts
-sample_fmts show available audio sample formats
-dispositions show available stream dispositions
-colors show available color names
-loglevel loglevel set logging level
-v loglevel set logging level
-report generate a report
-max_alloc bytes set maximum size of a single allocated block
-sources device list sources of the input device
-sinks device list sinks of the output device
-x width force displayed width
-y height force displayed height
-s size set frame size (WxH or abbreviation)
-fs force full screen
-an disable audio
-vn disable video
-sn disable subtitling
-ss pos seek to a given position in seconds
-t duration play "duration" seconds of audio/video
-bytes val seek by bytes 0=off 1=on -1=auto
-seek_interval seconds set seek interval for left/right keys, in seconds
-nodisp disable graphical display
-noborder borderless window
-alwaysontop window always on top
-volume volume set startup volume 0=min 100=max
-f fmt force format
-window_title window title set window title
-af filter_graph set audio filters
-showmode mode select show mode (0 = video, 1 = waves, 2 = RDFT)
-i input_file read specified file
-codec decoder_name force decoder
-autorotate automatically rotate video
這只是Main options里面的部分,另外還有Advanced options,AVCodecContext AVOptions等等很多內容。就上述幫助信息的輸出所示,有些是前面已經(jīng)介紹過(guò)的參數,這里就不再一一贅述,一些未介紹的參數說(shuō)明見(jiàn)下表
常見(jiàn)參數可以手動(dòng)進(jìn)行嘗試,下面列舉幾個(gè)示例。
*如果希望從視頻的第5秒開(kāi)始播放,播放5秒鐘的文件,則可以使用如下命令
*如果希望視頻播放時(shí)播放器的窗口顯示標題為自定義標題,則可以使用如下命令
*如果希望使用ffplay打開(kāi)網(wǎng)絡(luò )直播流,則可以使用如下命令:
可以看出ffplay可以支持的協(xié)議有多種,ramp,rtmp,http等等都支持。
顯示如下窗口內容
下面將這些參數與前面介紹過(guò)的一些參數進(jìn)行組合,舉幾個(gè)例子。
1⃣️從10秒播放一個(gè)視頻,播放時(shí)長(cháng)為5秒,播放完畢后自動(dòng)退出ffplay,播放器的窗口標題為“Hello World”,為了確認播放時(shí)長(cháng)正確,可以通過(guò)系統命令time查看命令運行時(shí)長(cháng):
可以看到輸出結果如下:
ffplay -window_title "Hello World" -ss 10 -t 5 -autoexit 1.mp4 0.94s user 0.52s system 22% cpu 6.502 total
2⃣️如果強制使用H.264解碼器解碼MPEG4的視頻,將會(huì )報錯
我們這個(gè)視頻是h264編碼,所以可以正常播放。
查看視頻編碼可以使用
查看ffmpeg支持的解碼格式
下面這個(gè)方式解碼就會(huì )報錯
前面舉過(guò)的例子中,我們看到的比較多的是單節目的流,多節目的流,常用于廣電行業(yè)的視頻。當視頻中出現多個(gè)Program時(shí),播放Program與常規的播放方式有所不同,需要指定對應的流,可以通過(guò)vst,ast,sst參數來(lái)指定,例如希望播放Program 13中的音視頻流,視頻編號為4,音頻編號為5,則可以通過(guò)如下命令進(jìn)行制定:
有條件的朋友可以自己找視頻來(lái)查看。
3⃣️如果使用ffplay播放視頻時(shí)希望加載字幕文件,則可以通過(guò)加載ASS或者SRT字幕文件來(lái)解決,下面列舉一個(gè)加載SRT字幕的例子,首先編輯SRT字幕文件,內容如下:
1
00:00:01.000 --> 00:00:05.000
這是我 我是誰(shuí)
2
00:00:05.001 --> 00:00:10.000
我愛(ài)中國
3
00:00:10.001 --> 00:00:15.000
為人民服務(wù)
4
00:00:18.001 --> 00:00:20.000
**早日結束,國泰民安!
然后通過(guò)filter將字幕文件加載到播放數據中,使用命令如下:
播放的效果如下:
可以看出,視頻中已經(jīng)將SRT格式的文字字幕加入到視頻中并展現了出來(lái)。
2)ffplay的數據可視化分析應用
使用ffplay除了可以播放視頻流媒體文件之外,還可以作為可視化的視頻流媒體分析工具,例如播放音頻文件時(shí),如果不確定文件的聲音是否正常,則可以直接使用ffplay播放音頻文件,播放的時(shí)候其將會(huì )把解碼后的音頻數據以音頻波形的形式顯示出來(lái),
命令行執行后的效果如下:
從圖中可以看到,音頻播放時(shí)的波形可以通過(guò)振幅顯示出來(lái),可以用來(lái)查看音頻的播放情況。
當播放視頻時(shí)想要體驗解碼器是如何解碼每個(gè)宏塊的,可以使用如下命令
新版FFmpeg此方法已經(jīng)不再支持啦,可參考
https://trac.ffmpeg.org/wiki/Debug/MacroblocksAndMotionVectors
我們可以使用ffmpeg或者ffplay來(lái)分析視頻文件中的運動(dòng)向量。ffmpeg的早期版本(2017年10月之前)也允許分析宏塊,但此選項已被刪除。
'codecview'過(guò)濾器可用于將運動(dòng)向量顯示為每個(gè)宏塊的小箭頭。它采用一個(gè)叫mv的選項,它指定了要繪制的運動(dòng)向量的類(lèi)型:
你可以使用如下的命令
第一條命令是直接用ffplay顯示視頻。
第二條命令是把生成的帶有運動(dòng)向量的視頻保存到output.mp4中。
顯示效果如下:
版權聲明: 本站僅提供信息存儲空間服務(wù),旨在傳遞更多信息,不擁有所有權,不承擔相關(guān)法律責任,不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責。如因作品內容、版權和其它問(wèn)題需要同本網(wǎng)聯(lián)系的,請發(fā)送郵件至 舉報,一經(jīng)查實(shí),本站將立刻刪除。