ffmpeg相關(guān)常用命令及可選參數(shù), 包括ffmpeg.exe、 ffplay.exe显沈、 ffprobe.exe, 程序下載鏈接戳這里, 選擇static即可
ffmpeg
ffmpeg 常用命令
//列出所有設(shè)備
ffmpeg -list_devices true -f dshow -i dummy
//提取h264裸流
ffmpeg -i video.mp4 -codec copy -f h264 video.h264
ffmpeg -i video.mp4 -an -vcodec copy video.h264
//提取aac裸流
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
//桌面采集錄制
ffmpeg -f gdigrab -video_size 1920x1080 -t 10 -r 30 -i desktop -vcodec libx264 x264.mp4
ffmpeg -f gdigrab -video_size 1920x1080 -t 40 -r 30 -i desktop -vcodec h264_qsv x264.mp4
ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -t 40 -r 30 -vcodec libx264 output.mp4
//桌面采集推流
ffmpeg -f gdigrab -i desktop -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://server/live/streamName
//rtsp流轉(zhuǎn)發(fā)推流
ffmpeg -i rtsp://admin:password1@192.168.31.44/h264/ch1/sub/av_stream -vcodec copy -acodec copy -f flv -y rtmp://192.168.31.254/live/output
//桌面+聲卡采集推流 (virtual-audio-capturer需要安裝相關(guān)程序,https://sourceforge.net/projects/screencapturer/files/)
ffmpeg -f dshow -i video="screen-capture-recorder" -f dshow -i audio="virtual-audio-capturer" -pix_fmt yuv420p -vcodec libx264 -acodec aac -s 1280x720 -r 25 -q 10 -ar 44100 -ac 2 -tune zerolatency -preset ultrafast -f flv rtmp://server/live/streamName
//文件源推流
ffmpeg -re -i video.mp4 -c copy -f flv rtmp://server/live/streamName
//直播流錄制
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
//mkv轉(zhuǎn)mp4
ffmpeg -i video.mkv -codec copy video.mp4
//視頻切割
ffmpeg -ss 00:01:00 -t 00:01:03 -y -i video.mp4 -vcodec copy -acodec copy cutting.mp4
//視頻縮放, iw是輸入的寬度, iw/2就是一半;-1 為保持寬高比
ffmpeg -i video.mp4 -vf scale=iw/2:-1 output.mp4
//視頻截取, 從[80,60]的位置開(kāi)始, 截取200x100的視頻
ffmpeg -i video.mp4 -filter:v "crop=80:60:200:100" -c:a copy output-200x100.mp4
//視頻截取, 右下角1/4
ffmpeg -i video.mp4 -filter:v "crop=in_w/2:in_h/2:in_w/2:in_h/2" -c:a copy output-1-4.mp4
//指定時(shí)間截圖
ffmpeg -ss 00:00:30 -i video.mp4 -y -f image2 -vframes 1 image.png
//每隔20S截圖
ffmpeg -i video.mp4 -f image2 -vf fps=fps=1/20 out%d.png
//將視頻轉(zhuǎn)為gif
ffmpeg -i video.mp4 -ss 0:0:30 -t 10 -s 320x240 -pix_fmt rgb24 output.gif
//圖片轉(zhuǎn)換為視頻逢唤,視頻幀率為fps=25拉讯,每張圖片顯示幀率0.5(即每張圖顯示2秒)
ffmpeg -y -r 0.5 -i pic/%d.jpg -vcodec libx264 -vf fps=25 output.mp4
//添加圖片水印,colorkey將圖片中指定顏色變?yōu)橥该?ffmpeg -i video.mp4 -i test.png -filter_complex "[1:v]colorkey=0xFFFFFF:0.6:1.0[ckout];[0:v][ckout]overlay=x=W-w-10:y=0[out]" -map "[out]" -movflags faststart drawimage.mp4
//添加文字水印,simsun.ttc是宋體鳖藕,字體可更換
ffmpeg.exe -i video.mp4 -vf "drawtext=fontfile=simsun.ttc: text='文字水印':x=100:y=100:fontsize=28:fontcolor=red:shadowy=2" drawtext.mp4
//內(nèi)嵌字幕(嵌入視頻中)
ffmpeg -i video.mp4 -vf ass=subtitles.ass output.mp4
//內(nèi)掛字幕(視頻字幕還是分離的魔慷,會(huì)導(dǎo)致進(jìn)度條不能拖動(dòng))
ffmpeg -i video.mp4 -i subtitles.ass -c:s mov_text -c:v copy -c:a copy output.mp4
//加密視頻
ffmpeg -i video.mp4 -vcodec copy -acodec copy -encryption_scheme cenc-aes-ctr -encryption_key 76a6c65c5ea76 2046bd749a2e632ccbb -encryption_kid a7e61c373e219033c21091fa607bf3b8 video_encrypted.mp4
//播放加密視頻
ffplay video_encrypted.mp4 -decryption_key 76a6c65c5ea762046bd749a2e632ccbb
//視頻拼接
ffmpeg -f concat -i filelist.txt -c copy output.mp4
//生成單色測(cè)試視頻
ffmpeg -ss 0 -t 15 -f lavfi -i color=c=0x000000:s=1280x720:r=30 -vcodec libx264 -r:v 30 output.mp4
ffmpeg可選參數(shù)
通用選項(xiàng)
參數(shù) |
說(shuō)明 |
-L |
license |
-h |
幫助 |
-fromats |
顯示可用的格式,編解碼的著恩,協(xié)議的... |
-f |
強(qiáng)迫采用格式fmt |
-i filename |
輸入文件 |
-y |
覆蓋輸出文件 |
-t duration |
設(shè)置紀(jì)錄時(shí)間 hh:mm:ss[.xxx]格式的記錄時(shí)間也支持 |
-ss position |
搜索到指定的時(shí)間 [-]hh:mm:ss[.xxx]的格式也支持 |
-title string |
設(shè)置標(biāo)題 |
-author string |
設(shè)置作者 |
-copyright string |
設(shè)置版權(quán) |
-comment string |
設(shè)置評(píng)論 |
-target type |
設(shè)置目標(biāo)文件類型(vcd,svcd,dvd) 所有的格式選項(xiàng)(比特率院尔,編解碼以及緩沖區(qū)大小)自動(dòng)設(shè)置 |
-hq |
激活高質(zhì)量設(shè)置 |
-itsoffset offset |
置以秒為基準(zhǔn)的時(shí)間偏移喉誊,該選項(xiàng)影響所有后面的輸入文件邀摆,定義一個(gè)正偏移意味著相應(yīng)的流被延遲了 offset秒 |
視頻選項(xiàng)
參數(shù) |
說(shuō)明 |
-b bitrate |
設(shè)置比特率,缺省200kb/s |
-r fps |
設(shè)置幀頻 缺省25 |
-s size |
設(shè)置幀大小 格式為WXH 缺省160X128 |
-aspect aspect |
設(shè)置橫縱比 4:3 16:9 或 1.3333 1.7777 |
-croptop size |
設(shè)置頂部切除帶大小 像素單位 |
-cropbottom size |
同上伍茄,方向不同 |
–cropleft size |
同上栋盹,方向不同 |
–cropright size |
同上,方向不同 |
-padtop size |
設(shè)置頂部補(bǔ)齊的大小 像素單位 |
-padbottom size |
同上敷矫,方向不同 |
–padleft size |
同上例获,方向不同 |
–padright size |
同上,方向不同 |
–padcolor color |
設(shè)置補(bǔ)齊條顏色(hex,6個(gè)16進(jìn)制的數(shù)曹仗,紅:綠:蘭排列榨汤,比如 000000代表黑色) |
-vn |
不做視頻記錄 |
-bt tolerance |
設(shè)置視頻碼率容忍度kbit/s |
-maxrate bitrate |
設(shè)置最大視頻碼率容忍度 |
-minrate bitreate |
設(shè)置最小視頻碼率容忍度 |
-bufsize size |
設(shè)置碼率控制緩沖區(qū)大小 |
-bufsize size |
設(shè)置碼率控制緩沖區(qū)大小 |
-vcodec codec |
強(qiáng)制使用codec編解碼方式。如果用copy表示原始編解碼數(shù)據(jù)必須被拷貝 |
-sameq |
使用同樣視頻質(zhì)量作為源(VBR) |
-pass n |
選擇處理遍數(shù)(1或者2)整葡。兩遍編碼非常有用件余。第一遍生成統(tǒng)計(jì)信息,第二遍生成精確的請(qǐng)求的碼率 |
-passlogfile file |
選擇兩遍的紀(jì)錄文件名為file |
高級(jí)視頻選項(xiàng)
參數(shù) |
說(shuō)明 |
-g gop_size |
設(shè)置圖像組大小 |
-intra |
僅適用幀內(nèi)編碼 |
-qscale q |
使用固定的視頻量化標(biāo)度(VBR) |
-qmin q |
最小視頻量化標(biāo)度(VBR) |
-qmax q |
最大視頻量化標(biāo)度(VBR) |
-qdiff q |
量化標(biāo)度間最大偏差 (VBR) |
-qblur blur |
視頻量化標(biāo)度柔化(VBR) |
-qcomp compression |
視頻量化標(biāo)度壓縮(VBR) |
-rc_init_cplx complexity |
一遍編碼的初始復(fù)雜度 |
-b_qfactor factor |
在p和b幀間的qp因子 |
-i_qfactor factor |
在p和i幀間的qp因子 |
-b_qoffset offset |
在p和b幀間的qp偏差 |
-i_qoffset offset |
在p和i幀間的qp偏差 |
-rc_eq equation |
設(shè)置碼率控制方程 默認(rèn)tex^qComp |
-rc_override override |
特定間隔下的速率控制重載 |
-me method |
設(shè)置運(yùn)動(dòng)估計(jì)的方法 可用方法有 zero phods log x1 epzs(缺省) full |
-dct_algo algo |
設(shè)置dct的算法 可用的有 0 FF_DCT_AUTO 缺省的DCT 1 FF_DCT_FASTINT 2 FF_DCT_INT 3 FF_DCT_MMX 4 FF_DCT_MLIB 5 FF_DCT_ALTIVEC |
-idct_algo algo |
設(shè)置idct算法√淦鳎可用的有 0 FF_IDCT_AUTO 缺省的IDCT 1 FF_IDCT_INT 2 FF_IDCT_SIMPLE 3 FF_IDCT_SIMPLEMMX 4 FF_IDCT_LIBMPEG2MMX 5 FF_IDCT_PS2 6 FF_IDCT_MLIB 7 FF_IDCT_ARM 8 FF_IDCT_ALTIVEC 9 FF_IDCT_SH4 10 FF_IDCT_SIMPLEARM |
-er n |
設(shè)置錯(cuò)誤殘留為n 1 FF_ER_CAREFULL 缺省 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE |
-ec bit_mask |
設(shè)置錯(cuò)誤掩蔽為bit_mask,該值為如下值的位掩碼 1 FF_EC_GUESS_MVS (default=enabled) 2 FF_EC_DEBLOCK (default=enabled) |
-bf frames |
使用frames B 幀旬渠,支持mpeg1,mpeg2,mpeg4 |
-mbd mode |
宏塊決策 0 FF_MB_DECISION_SIMPLE 使用mb_cmp 1 FF_MB_DECISION_BITS 2 FF_MB_DECISION_RD |
-4mv |
使用4個(gè)運(yùn)動(dòng)矢量 僅用于mpeg4 |
-part |
使用數(shù)據(jù)劃分 僅用于mpeg4 |
-bug param |
繞過(guò)沒(méi)有被自動(dòng)監(jiān)測(cè)到編碼器的問(wèn)題 |
-strict strictness |
跟標(biāo)準(zhǔn)的嚴(yán)格性 |
-aic |
使能高級(jí)幀內(nèi)編碼 h263+ |
-umv |
使能無(wú)限運(yùn)動(dòng)矢量 h263+ |
-deinterlace |
不采用交織方法 |
-interlace |
強(qiáng)迫交織法編碼僅對(duì)mpeg2和mpeg4有效。當(dāng)你的輸入是交織的并且你想要保持交織以最小圖像損失的時(shí)候采用該選項(xiàng)端壳「娑可選的方法是不交織,但是損失更大 |
-psnr |
計(jì)算壓縮幀的psnr |
-vstats |
輸出視頻編碼統(tǒng)計(jì)到vstats_hhmmss.log |
-vhook module |
插入視頻處理模塊 module 包括了模塊名和參數(shù)损谦,用空格分開(kāi) |
音頻選項(xiàng)
參數(shù) |
說(shuō)明 |
-ab bitrate |
設(shè)置音頻碼率 |
-ar freq |
設(shè)置音頻采樣率 |
-ac channels |
設(shè)置通道 缺省為1 |
-an |
不使能音頻紀(jì)錄 |
-acodec codec |
使用codec編解碼 |
音頻/視頻捕獲選項(xiàng)
參數(shù) |
說(shuō)明 |
-vd device |
設(shè)置視頻捕獲設(shè)備岖免。比如/dev/video0 |
-vc channel |
設(shè)置視頻捕獲通道 DV1394專用 |
-tvstd standard |
置電視標(biāo)準(zhǔn) NTSC PAL(SECAM) |
-dv1394 |
設(shè)置DV1394捕獲 |
-av device |
設(shè)置音頻設(shè)備 比如/dev/dsp |
高級(jí)選項(xiàng)
參數(shù) |
說(shuō)明 |
-map file:stream |
設(shè)置輸入流映射 |
-debug |
打印特定調(diào)試信息 |
-benchmark |
為基準(zhǔn)測(cè)試加入時(shí)間 |
-hex |
傾倒每一個(gè)輸入包 |
-bitexact |
僅使用位精確算法 用于編解碼測(cè)試 |
-ps size |
設(shè)置包大小,以bits為單位 |
-re |
以本地幀頻讀數(shù)據(jù)照捡,主要用于模擬捕獲設(shè)備 |
-loop |
循環(huán)輸入流(只工作于圖像流颅湘,用于ffserver測(cè)試) |
ffplay
ffplay常用命令
//從30s開(kāi)始播放10s,播放完退出
ffplay -ss 00:00:30 -t 10 -autoexit video.mp4
//指定播放窗口大小為320x180
ffplay -x 320 -y 180 video.mp4
//音頻波形可視化
ffplay -showmode 1 audio.aac
ffplay可選參數(shù)
參數(shù) |
說(shuō)明 |
-x width |
強(qiáng)制以 "width" 寬度顯示 |
-y height |
強(qiáng)制以 "height" 高度顯示 |
-an |
禁止音頻 |
-vn |
禁止視頻 |
-ss pos |
跳轉(zhuǎn)到指定的位置(秒) |
-t duration |
播放 "duration" 秒音/視頻 |
-bytes |
按字節(jié)跳轉(zhuǎn) |
-nodisp |
禁止圖像顯示(只輸出音頻) |
-f fmt |
強(qiáng)制使用 "fmt" 格式 |
-window_title title |
設(shè)置窗口標(biāo)題(默認(rèn)為輸入文件名) |
-loop number |
循環(huán)播放 "number" 次(0將一直循環(huán)) |
-showmode mode |
設(shè)置顯示模式,可選mode: 0, 顯示視頻; 1, 顯示音頻波形; 2, 顯示音頻頻帶栗精。默認(rèn)為0, 播放時(shí)按w鍵可切換mode |
-i input_file |
指定輸入文件 |
-sync type |
設(shè)置主時(shí)鐘為音頻闯参、視頻、或者外部悲立。默認(rèn)為音頻鹿寨。主時(shí)鐘用來(lái)進(jìn)行音視頻同步 |
-threads count |
設(shè)置線程個(gè)數(shù) |
-autoexit |
播放完成后自動(dòng)退出 |
-exitonkeydown |
任意鍵按下時(shí)退出 |
-exitonmousedown |
任意鼠標(biāo)按鍵按下時(shí)退出 |
-acodec codec_name |
強(qiáng)制指定音頻解碼器為 "codec_name" |
-vcodec codec_name |
強(qiáng)制指定視頻解碼器為 "codec_name" |
-scodec codec_name |
強(qiáng)制指定字幕解碼器為 "codec_name" |
ffplay快捷鍵
參數(shù) |
說(shuō)明 |
q |
退出 |
f |
全屏 |
p |
暫停 |
w |
切換顯示模式(視頻/音頻波形/音頻頻帶) |
s |
步進(jìn)到下一幀 |
left/right |
快退/快進(jìn) 10 秒 |
down/up |
快退/快進(jìn) 1 分鐘 |
page down/page up |
跳轉(zhuǎn)到前一章/下一章(如果沒(méi)有章節(jié),快退/快進(jìn) 10 分鐘) |
mouse click |
跳轉(zhuǎn)到鼠標(biāo)點(diǎn)擊的位置(根據(jù)鼠標(biāo)在顯示窗口點(diǎn)擊的位置計(jì)算百分比) |
ffprobe
ffprobe常用命令
//打印視頻format信息薪夕,代碼里就是av_dump_format()函數(shù)
ffprobe -show_format video.mp4
//以json格式輸出"streams"音視頻編碼信息脚草,還有“format”音視頻封包信息
ffprobe -v quiet -show_format -show_streams -print_format json video.mp4
ffprobe可選參數(shù)
參數(shù) |
說(shuō)明 |
-show_packets |
[PACKET]標(biāo)簽的多媒體信息 |
-show_data |
packets多媒體數(shù)據(jù) |
-show_format |
多媒體封裝格式 |
-show_frames |
視頻幀信息 |
-print_format |
信息輸出格式,支持xml原献、csv馏慨、json、flat嚼贡、ini |
-select_streams |
參數(shù)可以是a熏纯、v、s分別表示只查看音頻粤策、視頻、字幕 |
參考鏈接
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者