fFFmpeg 命令、案例、測試集中營
ffmpeg [全域性選項] {[輸入檔案選項] -i 輸入檔案} ... {[輸出檔案選項] 輸出檔案} ...
ffmpeg [global_options] {[input_file_options] -i input_file} ... {[output_file_options] output_file} ...
一、FFmpeg拉去RTSP攝像頭視訊流:
ffmpeg -rtsp_transport tcp -i rtsp://admin:[email protected]:554/h264/ch1/main/av_stream -c:a copy -c:v libx264 -f flv rtmp://stream.amaitech.com/live/4001480473625vhost=tinywan.amai8.com
二、FFmpeg命令集舉例
1. 視訊格式轉換
(其實格式轉換說法不太準確,但大家都這麼叫,準確的說,應該是視訊容器轉換) 比如一個avi檔案,想轉為mp4,或者一個mp4想轉為ts。 我目測這個已經能滿足很多人的需求了。
ffmpeg -i input.avi output.mp4
ffmpeg -i input.mp4 output.ts
2.獲取視訊的資訊
ffmpeg -i video.avi 提示資訊:At least one output file must be specified(必須至少指定一個輸出檔案)
3.1提取音訊
比如我有一個“曉鬆奇談”,可是我不想看到他的臉,我只想聽聲音, 地鐵上可以聽,咋辦?
ffmpeg -i 曉鬆奇談.mp4 -acodec copy -vn output.aac
上面的命令,預設mp4的audio codec是aac,如果不是會出錯,咱可以暴力一點,不管什麼音訊,都轉為最常見的aac。
ffmpeg -i 曉鬆奇談.mp4 -acodec aac -vn output.aac
3.2 提取音訊和視訊
我目測有些IT員工,特別是做嵌入式的,比如機頂盒,想debug一下,沒有音訊的情況下,播放一個視訊幾天幾夜會不會crash,這時候你需要一個純視訊檔案,可以這麼幹。
分離視訊流(測試成功)
ffmpeg -i F:\Tinywan\Video\test.mkv -vcodec copy -an F:\Tinywan\Video\output_file_video.mp4
分離音訊流(測試成功)(使用命令列超級快啊):
ffmpeg -i F:\Tinywan\Video\test.mkv -acodec copy -vn F:\Tinywan\Video\output_file_audio.mp3
4. 視訊剪下(測試成功)
經常要測試視訊,但是隻需要測幾秒鐘,可是視訊卻有幾個G,咋辦?切啊!
ffmpeg -ss 00:00:00 -t 00:05:00 -y -i "F:\Tinywan\Video\test.mkv" -vcodec copy -acodec copy F:\Tinywan\Video\cutVideo.mp4
=====================================================解釋如下:============================================================ 上面的這個例子是將test.mkv視訊的前5分鐘,重新生成一個新視訊。 -ss 開始切割時間,如: 00:00:00,表示從0秒開始,格式也可以00:00:0 -t 要切割時長,如: 00:05:00,表示擷取5分鐘長的視訊,格式也可以00:3:00 -y 如果檔案已存在強制替換,覆蓋輸出檔案,即如果 output.wmv 檔案已經存在的話,不經提示就覆蓋掉。
-i 輸入,後面是空格,緊跟著就是輸入視訊檔案; -vcodec copy 和 -acodec copy表示所要使用的視訊和音訊的編碼格式,這裡指定為copy表示原樣拷貝;
5. 視訊截圖
在第三秒的時候截圖
第一種方式:(測試成功)
ffmpeg -i F:\Tinywan\Video\test.mkv -y -f mjpeg -ss 3 -t 1 F:\Tinywan\Video\test1.jpg
第二種方式:(測試成功)
ffmpeg -i F:\Tinywan\Video\test.mkv -y -f image2 -ss 3 -vframes 1 F:\Tinywan\Video\test2.jpg
6. 獲取視訊時長
程式碼:(未測試)請在Linux 下去測試
ffmpeg -i F:\Tinywan\Video\test.mkv 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//
7.將rtmp流,以檔案的形勢儲存到本地(測試成功)
ffmpeg -i "rtmp://tinywan.amai8.com/live123/4008899 live=1" -acodec copy -vcodec copy -f flv -y F:\Tinywan\Video\RTMPtest2test.flv
8.原樣視訊mp4格式轉換成avi格式輸出(測試成功)
ffmpeg -i cutVideo.mp4 -vcodec copy -acodec copy cutVideoCopy.avi
9.設定輸出視訊位元速率為64kbit/s
ffmpeg -i cutVideo.mp4 -b:v 64k -bufsize 64k -y output64.mp4 //畫面明顯的模糊的不行啊!
10.切換幀率到24fps
ffmpeg -i input.avi -r 24 output.avi
11.匯出圖片
這將每秒依據cutVideo.mp4生成一個圖片命名為foo-001.jpeg ,foo-002.jpeg以此類推,圖片尺寸是1680*1050。
ffmpeg -i cutVideo.mp4 -r 1 -s 1680*1050 -f image2 foo-%03d.jpeg
12.從圖片生成視訊
這裡的語法foo-%03d.jpeg
指明使用3位數字來補充完整檔名,不足3位以0補齊。這類似於C語言的printf函式中的格式,但只接受常規整數作為部分。
ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s 640*320 fooimage2.avi
當匯入一個圖片序列時,-i
也支援shell的萬用字元模式(內建的),這需要同時選擇image2的特性選項-pattern_type glob
:例如下面就利用了所有匹配foo-*.jpeg
的圖片序列建立一個視訊:
ffmpeg -f image2 -framerate 1 -i %05d.jpg -s 640*320 -y fooimage2.avi
這裡圖片必須的連續,否則會報錯
5. 位元速率控制
位元速率控制對於線上視訊比較重要。因為線上視訊需要考慮其能提供的頻寬。
那麼,什麼是位元速率?很簡單:
bitrate = file size / duration
比如一個檔案20.8M,時長1分鐘,那麼,位元速率就是:
biterate = 20.8M bit/60s = 20.8*1024*1024*8 bit/60s= 2831Kbps
一般音訊的位元速率只有固定幾種,比如是128Kbps,
那麼,video的就是
video biterate = 2831Kbps -128Kbps = 2703Kbps。
說完背景了。好了,來說ffmpeg如何控制碼率。
ffmpg控制碼率有3種選擇,-minrate -b:v -maxrate
-b:v主要是控制平均位元速率。
比如一個視訊源的位元速率太高了,有10Mbps,檔案太大,想把檔案弄小一點,但是又不破壞解析度。 ffmpeg -i input.mp4 -b:v 2000k output.mp4
上面把位元速率從原位元速率轉成2Mbps位元速率,這樣其實也間接讓檔案變小了。目測接近一半。
不過,ffmpeg官方wiki比較建議,設定b:v時,同時加上 -bufsize
-bufsize 用於設定位元速率控制緩衝器的大小,設定的好處是,讓整體的位元速率更趨近於希望的值,減少波動。(簡單來說,比如1 2的平均值是1.5, 1.49 1.51 也是1.5, 當然是第二種比較好) ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k output.mp4
-minrate -maxrate就簡單了,線上視訊有時候,希望位元速率波動,不要超過一個閾值,可以設定maxrate。 ffmpeg -i input.mp4 -b:v 2000k -bufsize 2000k -maxrate 2500k output.mp4
6. 視訊編碼格式轉換
比如一個視訊的編碼是MPEG4,想用H264編碼,咋辦? ffmpeg -i input.mp4 -vcodec h264 output.mp4
相反也一樣 ffmpeg -i input.mp4 -vcodec mpeg4 output.mp4
當然了,如果ffmpeg當時編譯時,添加了外部的x265或者X264,那也可以用外部的編碼器來編碼。(不知道什麼是X265,可以Google一下,簡單的說,就是她不包含在ffmpeg的原始碼裡,是獨立的一個開原始碼,用於編碼HEVC,ffmpeg編碼時可以呼叫它。當然了,ffmpeg自己也有編碼器) ffmpeg -i input.mp4 -c:v libx265 output.mp4
ffmpeg -i input.mp4 -c:v libx264 output.mp4
7. 只提取視訊ES資料
這個可能做開發的人會用到,順便提一下吧。 ffmpeg –i input.mp4 –vcodec copy –an –f m4v output.h264
8. 過濾器的使用
這個我在另一篇部落格提到了,這裡貼一下吧。
8.1 將輸入的1920x1080縮小到960x540輸出:
ffmpeg -i input.mp4 -vf scale=960:540 output.mp4
//ps: 如果540不寫,寫成-1,即scale=960:-1, 那也是可以的,ffmpeg會通知縮放濾鏡在輸出時保持原始的寬高比。
8.2 為視訊新增logo
比如,我有這麼一個圖片
想要貼到一個視訊上,那可以用如下命令:
./ffmpeg -i input.mp4 -i iQIYI_logo.png -filter_complex overlay output.mp4
結果如下所示:
要貼到其他地方?看下面:
右上角:
./ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w output.mp4
左下角:
./ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=0:H-h output.mp4
右下角:
./ffmpeg -i input.mp4 -i logo.png -filter_complex overlay=W-w:H-h output.mp4
8.3 去掉視訊的logo
有時候,下載了某個網站的視訊,但是有logo很煩,咋辦?有辦法,用ffmpeg的delogo過濾器。
語法:-vf delogo=x:y:w:h[:t[:show]]
x:y 離左上角的座標
w:h logo的寬和高
t: 矩形邊緣的厚度預設值4
show:若設定為1有一個綠色的矩形,預設值0。
ffmpeg -i input.mp4 -vf delogo=0:0:220:90:100:1 output.mp4
結果如下所示:
其他小眾的用法
1. H264編碼profile & level控制
背景知識
先科普一下profile&level吧,知道的請飄過。(這裡討論最常用的H264)
H.264有四種畫質級別,分別是baseline, extended, main, high:
1、Baseline Profile:基本畫質。支援I/P 幀,只支援無交錯(Progressive)和CAVLC;
2、Extended profile:進階畫質。支援I/P/B/SP/SI 幀,只支援無交錯(Progressive)和CAVLC;(用的少)
3、Main profile:主流畫質。提供I/P/B 幀,支援無交錯(Progressive)和交錯(Interlaced),
也支援CAVLC 和CABAC 的支援;
4、High profile:高階畫質。在main Profile 的基礎上增加了8x8內部預測、自定義量化、 無損視訊編碼和更多的YUV 格式;
H.264 Baseline profile、Extended profile和Main profile都是針對8位樣本資料、4:2:0格式(YUV)的視訊序列。在相同配置情況下,High profile(HP)可以比Main profile(MP)降低10%的位元速率。
根據應用領域的不同,Baseline profile多應用於實時通訊領域,Main profile多應用於流媒體領域,High profile則多應用於廣電和儲存領域。
下圖清楚的給出不同的profile&level的效能區別。
profile
level
ffmpeg如何控制profile&level
舉3個例子吧 ffmpeg -i input.mp4 -profile:v baseline -level 3.0 output.mp4
ffmpeg -i input.mp4 -profile:v main -level 4.2 output.mp4
ffmpeg -i input.mp4 -profile:v high -level 5.1 output.mp4
如果ffmpeg編譯時加了external的libx264,那就這麼寫: ffmpeg -i input.mp4 -c:v libx264 -x264-params "profile=high:level=3.0" output.mp4
從壓縮比例來說,baseline< main < high,對於頻寬比較侷限的線上視訊,可能會選擇high,但有些時候,做個小視訊,希望所有的裝置基本都能解碼(有些低端裝置或早期的裝置只能解碼baseline),那就犧牲檔案大小吧,用baseline。自己取捨吧!
蘋果的裝置對不同profile的支援。
2. 編碼效率和視訊質量的取捨(preset, crf)
除了上面提到的,強行配置biterate,或者強行配置profile/level,還有2個引數可以控制編碼效率。
一個是preset,一個是crf。
preset也挺粗暴,基本原則就是,如果你覺得編碼太快或太慢了,想改改,可以用profile。
preset有如下引數可用:
ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow and placebo.
編碼加快,意味著資訊丟失越嚴重,輸出影象質量越差。
CRF(Constant Rate Factor): 範圍 0-51: 0是編碼毫無丟失資訊, 23 is 預設, 51 是最差的情況。相對合理的區間是18-28.
值越大,壓縮效率越高,但也意味著資訊丟失越嚴重,輸出影象質量越差。
舉個例子吧。 ffmpeg -i input -c:v libx264 -profile:v main -preset:v fast -level 3.1 -x264opts crf=18
(參考自:https://trac.ffmpeg.org/wiki/Encode/H.264)
3. H265 (HEVC)編碼tile&level控制
背景知識
和H264的profile&level一樣,為了應對不同應用的需求,HEVC制定了“層級”(tier) 和“等級”(level)。
tier只有main和high。
level有13級,如下所示:
不多說,直接給出怎麼用。(supposed你用libx265編碼) ffmpeg -i input.mp4 -c:v libx265 -x265-params "profile=high:level=3.0" output.mp4
4.為視訊重新編碼以適合在iPod/iPhone 上播放
ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
說明:
* 源視訊:source_video.avi
* 音訊編碼:aac
* 音訊位率:128kb/s
* 視訊編碼:mpeg4
* 視訊位率:1200kb/s
* 視訊尺寸:320 X 180
* 生成的視訊:final_video.mp4
7.將mkv檔案轉成Mp3
ffmpeg -i F:\Tinywan\Video\test.mkv -vn -ar 44100 -ac 2 -ab 192 -f mp3 F:\Tinywan\Video\son_final.mp3
提示資訊:
[libmp3lame @ 0000000002d702e0] Bitrate 192 is extremely low, maybe you mean 1k The bitrate parameter is set too low. It takes bits/s as argument, not kbits/s
[libmp3lame @ 0000000002d702e0]位元率192非常低,也許你的意思是1k ,位元率引數設定過低。 它需要bits / s作為引數,而不是kbits / s
10.將.avi 轉成gif 動畫(未壓縮)
ffmpeg -i video_origine.avi gif_anime.gif
12.將.avi 轉成.flv
ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv
2.最簡單的抓屏(測試成功):
ffmpeg -f gdigrab -i desktop out.mpg
ffmpeg -f gdigrab -i desktop F:\Tinywan\Video\ImageOut.mpg //mp4格式的輸出怎麼播放不了
分離視訊流(測試成功):
ffmpeg -i F:\Tinywan\Video\test.mkv -vcodec copy -an F:\Tinywan\Video\output_file_video.mp4
分離音訊流(測試成功)(使用命令列超級快啊):
ffmpeg -i F:\Tinywan\Video\test.mkv -acodec copy -vn F:\Tinywan\Video\output_file_audio.mp3
視訊轉碼:
ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264 //轉碼為碼流原始檔案 ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264 //轉碼為碼流原始檔案 ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi //轉碼為封裝檔案 //-bf B幀數目控制,-g 關鍵幀間隔控制,-s 解析度控制
剪下視訊:
引數說明:-r 提取影象的頻率,-ss 開始時間,-t 持續時間
ffmpeg -ss 0:1:30 -t 0:5:00 -i F:\Tinywan\Video\test.mkv -vcodec copy -acodec copy F:\Tinywan\Video\output.mp4
將RTMP流原樣儲存成檔案
./ffmpeg -i rtmp://192.168.1.11:1935/live/teststream -acodec copy -vcodec copy -f flv -y test.flv
.將RTMP流轉碼儲存成檔案
./ffmpeg -i rtmp://192.168.1.11:1935/live/teststream -acodec ... -vcodec ... -f mp4 -y test.mp4
將RTMP流轉碼後再以RTMP流的方式推送到RTMP流伺服器
./ffmpeg -i rtmp://192.168.1.11:1935/live/teststream -acodec ... -vcodec ... -f flv rtmp://10.2.11.111/live/newstream
ffmpeg引數說明:
基本選項:
-formats 輸出所有可用格式
-f fmt 指定格式(音訊或視訊格式)
-i filename 指定輸入檔名,在linux下當然也能指定:0.0(螢幕錄製)或攝像頭
-y 覆蓋已有檔案
-t duration 記錄時長為t
-fs limit_size 設定檔案大小上限
-ss time_off 從指定的時間(s)開始, [-]hh:mm:ss[.xxx]的格式也支援
-itsoffset time_off 設定時間偏移(s),該選項影響所有後面的輸入檔案。該偏移被加到輸入檔案的時戳,定義一個正偏移意味著相應的流被延遲了 offset秒。 [-]hh:mm:ss[.xxx]的格式也支援
-title string 標題
-timestamp time 時間戳
-author string 作者
-copyright string 版權資訊
-comment string 評論
-album string album名
-v verbose 與log相關的
-target type 設定目標檔案型別("vcd", "svcd", "dvd", "dv", "dv50", "pal-vcd", "ntsc-svcd", ...)
-dframes number 設定要記錄的幀數
視訊選項:
-b 指定位元率(bits/s),似乎ffmpeg是自動VBR的,指定了就大概是平均位元率
-bitexact 使用標準位元率
-vb 指定視訊位元率(bits/s)
-vframes number 設定轉換多少楨(frame)的視訊
-r rate 幀速率(fps) (可以改,確認非標準楨率會導致音畫不同步,所以只能設定為15或者29.97)
-s size 指定解析度 (320x240)
-aspect aspect 設定視訊長寬比(4:3,
相關推薦
fFFmpeg 命令、案例、測試集中營
ffmpeg [全域性選項] {[輸入檔案選項] -i 輸入檔案} ... {[輸出檔案選項] 輸出檔案} ...ffmpeg [global_options] {[input_file_options] -i input_file} ... {[output_file_op
地理處理模型、案例、教程、培訓低價發送
壓縮包 應用 time tom 名稱 width cgi 說明 宋體 地理處理模型、案例、教程、培訓低價發送
模型價格
模型名稱價格(元)描述最大值提取50針對柵格數據,例如氣溫,降水,水文分析河網提取50針對DEM數據空文件刪除100刪除某一文件夾或數據庫裏的記錄個數
關於LVS的部署、案例、以及常見問題分析
一、LVS的部署LVS現在已經整合在linux核心模組中,但整個LVS環境又分為核心層和使用者層,核心層負責核心演算法的實現,使用者層需要安裝ipvsadm工具,通過命令列將管理員需要的工作模式與實現演算法傳遞給核心來實現。LVS的核心名稱為ip_vs,命令列工具在Cento
Zabbix(二):自定義腳本、遠程命令、報警升級測試實例
zabbix1.自定義腳本Zabbix中有統一的報警腳本存放路徑,即:/usr/lib/zabbix/alertscripts。[root@zrs1 ~]# cd /usr/lib/zabbix/alertscripts/
[root@zrs1 alertscripts]# vim mailalert.sh
編譯spark原始碼的方法,及編譯、案例測試問題總結
一、編譯spark方法
1.編譯環境 首先,需要安裝jdk、maven,相關安裝教程請參考:http://blog.csdn.net/u012829611/article/details/77651855 http://blog.csdn.net/u012829611/artic
【mpich2】圖文教程:mpich2的安裝、配置、測試、vs配置、命令列測試(沒有使用)
轉載請註明出處,原文連結:https://blog.csdn.net/u013642500/article/details/83549093
【安裝mpich2】
1、開啟“mpich2-1.4.1p1-win-ia32.msi。
2、點選“Next”。
3、點選“N
JMeter全程實戰、效能測試實戰、分散式效能測試、真實案例分析
測試需求描述
1、 本次測試的介面為http服務端介面
2、 介面的主要分成兩類,一類提供給查詢功能介面,一類提供儲存資料功能介面,這裡我們舉例2個儲存資料的介面,因為這兩個介面有關聯
性,比較有代表性;
儲存信用卡賬戶資訊介面:
傳入引數:
args={
"clientNo":"43434
JMeter全程實戰、性能測試實戰、分布式性能測試、真實案例分析
信息 結束 例如 日誌 賬戶 信用卡 每次 計算 權限 測試需求描述
1、 本次測試的接口為http服務端接口
2、 接口的主要分成兩類,一類提供給查詢功能接口,一類提供保存數據功能接口,這裏我們舉例2個保存數據的接口,因為這兩個接口有關聯
性,比較有代表性;
保存信用卡
ab網站壓力測試命令的引數、輸出結果的中文註解
ab命令原理 Apache的ab命令模擬多執行緒併發請求,測試伺服器負載壓力,也可以測試nginx、lighthttp、IIS等其它Web伺服器的壓力。
ab命令對發出負載的計算機要求很低,既不會佔用很多CPU,也不會佔用太多的記憶體,但卻會給目標伺服器造成巨大的負載
計算機的應用(2)——使用ping、arp、ipconfig等網路測試命令
使用ping、ARP -a,ipconfig等網路測試命令
點選開始—>執行—>輸入:CMD,點選確定,開啟DOS命令視窗。
###(1)ipconfig命令
####輸入ipconfig /all ,可以看到本機的IP地址、MAC地址。
①檢視物理
大資料_Shuffle、MapReduce程式設計案例(資料去重、多表查詢、倒排索引、使用單元測試)
一、什麼是Shuffle(洗牌) ----> MapReduce核心
1、序列化
2、排序
3、分割槽
4、合併
二、MapReduce程式設計案例 ------> 掌握方法:如何開發一個程式
1、資料
計算機基礎(1)— 學習使用PING、ARP 、ipconfig等網路測試命令並檢視計算機MAC、IP地址
學習使用PING、ARP 、ipconfig等網路測試命令
快捷鍵【window+R】或者點選【開始】—>【執行】,開啟執行【cmd】,進入dos命令視窗
ping (Packet Internet Groper),因特網包探索器,用於
軟體測試人員必備Linux命令(初、中、高階)
有些技能可以事半功倍,有些命運掌握在我們手中。熟練的掌握和使用這些命令可以提高工作效率,並且結合這些命令對測試過程中遇到的問題進行一些初步的定位。
1 目錄與檔案操作
1.1 ls(初級)
使用許可權:所有人
功能 : 顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄)。
引數 :
-a
解決CentOS 7安裝後沒有killall、ifconfig、命令補全
centos7從centos6 轉到centos7發現少了很多常用命令,下面就常見的幾個做一個說明解決辦法沒有killall命令:yum install -y psmisc沒有ifconfig命令:yum install -y net-tools沒有命令補全: yum install -y bash-com
使用Jmeter進行http接口做功能、性能測試
時延 ive clas stat 時長 菜單 sample ati ron 在測試移動APP時,會有很多接口需要做測試,我在這裏介紹一下對HTTP接口做功能、性能的測試。首先我們會從開發人員拿到接口數據。
一、測試需求描述
1、 本次測試的接口為h
jquery中獲取相鄰元素相關的命令:next()、prev()和siblings()
cnblogs lin Language javascrip prev round blog scrip color jquery裏我們要獲取某個元素的相鄰元素時,可以用到的命令有三個:
next():用來獲取下一個同輩元素。
prev():用來獲取上一個同輩元素。
sib
linux命令的排列、替換與別名
data- 定義 div nbsp 命令 空格 con 接下來 是否
命令的排列;
1、使用“;”
命令語法: 命令1;命令2
當運行該命令時,無論命令1是否出錯。接下來就運行命令2
2、使用“&&”
命令語法:命令1&&命令2
當運行該
[linux][mysql] 命令更改表結構:添加、刪除、修改字段、調整字段順序
.com col inf size type unsigned rim alter name 原文出處:http://www.phpernote.com/MySQL/1120.html
1 常用的通過mysql命令來更改表結構的一些sql語句,包括添加、刪除、修改字
linux下wget命令,支持斷點續傳,ftp、http、https等協議
strong 工作 等待 命名 wget命令 source cmd itl 操作 轉載的地址:http:[email protected]/* *//blog/static/32097310201171833420905/
今天操作遠端機器的時候發現少一個安裝
單元測試、集成測試、系統測試和驗收測試的聯系和區別
是否 功能 條件 黑盒測試 模塊 期望值 設計 tex 代碼 根據不同的測試階段,測試可以分為單元測試、集成測試、系統測試和驗收測試體現了測試由小到大、又內至外、循序漸進的測試過程和分而治之的思想。
單元測試的粒度最小,一般由開發小組采用白盒方式來測試,主要測試單元是