文章目錄
- 配置
- 說明:
- 0、ffmpeg一些命令參數(shù):
- 1库倘、avi轉(zhuǎn)MP4命令:
- 2临扮、MP4轉(zhuǎn)ts
- 3、視頻壓縮
- 4教翩、去除視頻聲音
- 5杆勇、合并音頻和視頻
- 6龟糕、給視頻添加水印
- 7浪耘、flv 轉(zhuǎn)MP4
- 8很澄、視頻剪輯:
- 9超埋、給視頻添加字幕srt
- 10衙吩、同時給視頻添加音樂+字幕
- 11拷获、使用ffmpeg webm 轉(zhuǎn)換 mp4
- 12片仿、合并倆個mp4視頻
- 13队寇、提取視頻的音頻為MP3
- 14、去除視頻中的聲音(或者理解為中有聲音的視頻中提前不含聲音的視頻):
配置
window10 64位系統(tǒng)
說明:
整理一下自己用到過的幾個常用命令章姓,記錄佳遣,方便幫助到需求和我一樣的人,也方便以后備用凡伊。后續(xù)用到學(xué)到了會持續(xù)更新:
0零渐、ffmpeg一些命令參數(shù):
a) 通用選項
-L license
-h 幫助
-fromats 顯示可用的格式,編解碼的系忙,協(xié)議的诵盼。。。
-f fmt 強(qiáng)迫采用格式fmt
-I filename 輸入文件
-y 覆蓋輸出文件
-t duration 設(shè)置紀(jì)錄時間 hh:mm:ss[.xxx]格式的記錄時間也支持
-ss position 搜索到指定的時間 [-]hh:mm:ss[.xxx]的格式也支持
-title string 設(shè)置標(biāo)題
-author string 設(shè)置作者
-copyright string 設(shè)置版權(quán)
-comment string 設(shè)置評論
-target type 設(shè)置目標(biāo)文件類型(vcd,svcd,dvd) 所有的格式選項(比特率风宁,編解碼以及緩沖區(qū)大薪嗲健)自動設(shè)置 ,只需要輸入如下的就可以了:
ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
-hq 激活高質(zhì)量設(shè)置
-itsoffset offset 設(shè)置以秒為基準(zhǔn)的時間偏移戒财,該選項影響所有后面的輸入文件热监。該偏移被加到輸入文件的時戳,定義一個正偏移意味著相應(yīng)的流被延遲了 offset秒饮寞。 [-]hh:mm:ss[.xxx]的格式也支持
b) 視頻選項
-b bitrate 設(shè)置比特率孝扛,缺省200kb/s
-r fps 設(shè)置幀頻 缺省25
-s size 設(shè)置幀大小 格式為WXH 缺省160X128.下面的簡寫也可以直接使用:
Sqcif 128X96 qcif 176X144 cif 252X288 4cif 704X576
-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個16進(jìn)制的數(shù),紅:綠:蘭排列幽崩,比如 000000代表黑色)
-vn 不做視頻記錄
-bt tolerance 設(shè)置視頻碼率容忍度kbit/s
-maxrate bitrate設(shè)置最大視頻碼率容忍度
-minrate bitreate 設(shè)置最小視頻碼率容忍度
-bufsize size 設(shè)置碼率控制緩沖區(qū)大小
-vcodec codec 強(qiáng)制使用codec編解碼方式苦始。 如果用copy表示原始編解碼數(shù)據(jù)必須被拷貝。
-sameq 使用同樣視頻質(zhì)量作為源(VBR)
-pass n 選擇處理遍數(shù)(1或者2)慌申。兩遍編碼非常有用陌选。第一遍生成統(tǒng)計信息,第二遍生成精確的請求的碼率
-passlogfile file 選擇兩遍的紀(jì)錄文件名為file
c)高級視頻選項
-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)動估計的方法 可用方法有 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è)置錯誤殘留為n 1 FF_ER_CAREFULL 缺省 2 FF_ER_COMPLIANT 3 FF_ER_AGGRESSIVE 4 FF_ER_VERY_AGGRESSIVE
-ec bit_mask 設(shè)置錯誤掩蔽為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個運(yùn)動矢量 僅用于mpeg4
-part 使用數(shù)據(jù)劃分 僅用于mpeg4
-bug param 繞過沒有被自動監(jiān)測到編碼器的問題
-strict strictness 跟標(biāo)準(zhǔn)的嚴(yán)格性
-aic 使能高級幀內(nèi)編碼 h263+
-umv 使能無限運(yùn)動矢量 h263+
-deinterlace 不采用交織方法
-interlace 強(qiáng)迫交織法編碼 僅對mpeg2和mpeg4有效类缤。當(dāng)你的輸入是交織的并且你想要保持交織以最小圖像損失的時候采用該選項×诳裕可選的方法是不交織餐弱,但是損失更大
-psnr 計算壓縮幀的psnr
-vstats 輸出視頻編碼統(tǒng)計到vstats_hhmmss.log
-vhook module 插入視頻處理模塊 module 包括了模塊名和參數(shù),用空格分開
d)音頻選項
-ab bitrate 設(shè)置音頻碼率
-ar freq 設(shè)置音頻采樣率
-ac channels 設(shè)置通道 缺省為1
-an 不使能音頻紀(jì)錄
-acodec codec 使用codec編解碼
e)音頻/視頻捕獲選項
-vd device 設(shè)置視頻捕獲設(shè)備囱晴。比如/dev/video0
-vc channel 設(shè)置視頻捕獲通道 DV1394專用
-tvstd standard 設(shè)置電視標(biāo)準(zhǔn) NTSC PAL(SECAM)
-dv1394 設(shè)置DV1394捕獲
-av device 設(shè)置音頻設(shè)備 比如/dev/dsp
f)高級選項
-map file:stream 設(shè)置輸入流映射
-debug 打印特定調(diào)試信息
-benchmark 為基準(zhǔn)測試加入時間
-hex 傾倒每一個輸入包
-bitexact 僅使用位精確算法 用于編解碼測試
-ps size 設(shè)置包大小膏蚓,以bits為單位
-re 以本地幀頻讀數(shù)據(jù),主要用于模擬捕獲設(shè)備
-loop 循環(huán)輸入流畸写。只工作于圖像流驮瞧,用于ffserver測試
1、avi轉(zhuǎn)MP4命令:
ffmpeg -i .\Video.avi -c copy -map 0 video.mp4
或
ffmpeg -i .\Video.avi -c:v libx264 -crf 19 -preset slow -c:a aac -b:a 192k -ac 2 video.mp4
//剪切視頻
ffmpeg -ss 0:1:30 -t 0:0:50 -i 1.avi -vcodec copy -acodec copy 3.mp4
//-r 提取圖像的頻率枯芬,-ss 開始時間论笔,-t 持續(xù)時間
2、MP4轉(zhuǎn)ts
這個功能很好千所,而且不影響觀看狂魔,大小還小了不少。
ffmpeg -i .\video.mp4 output.ts
3淫痰、視頻壓縮
壓縮命令:
1)ffmpeg -i 123_ffmpeg.mp4 (壓縮的文件更大更清晰最楷,一般情況下不用)
2)ffmpeg.exe -i 123.MP4 -b:v 700k 1231_ffmpeg.mp4(壓縮的更小,相對模糊一些)
第二個壓縮成更小的,壓縮成2M多的視頻籽孙,真厲害烈评。
4、去除視頻聲音
ffmpeg -i 1.avi -vcodec copy -an 2.avi
5犯建、合并音頻和視頻
ffmpeg -i a.wav -i a.avi out.avi
若音頻比視頻長础倍,畫面停留在最后一幀,繼續(xù)播放聲音胎挎。
6沟启、給視頻添加水印
ffmpeg -i result2.mp4 -vf "drawtext=fontfile=FZBaoHTJW_Xi.TTF: text='創(chuàng)作者:奮乧妑_仯姩':x=100:y=10:fontsize=24:fontcolor=yellow:shadowy=2" drawtext.mp4
記得下載需要的字體,或者自己電腦去復(fù)制都行犹菇。
你需要更改:
- FZBaoHTJW_Xi.TTF :我的字體文件(放在和視頻一個目錄下德迹,可以網(wǎng)上去下載,或者window電腦目錄下復(fù)制: C:\Windows\Fonts)
- result2.mp4 :我的需要添加水印視頻
- text=‘創(chuàng)作者:奮乧妑仯姩’ :'創(chuàng)作者:奮乧妑仯姩’這個是我的水印內(nèi)容揭芍,更改為你自己的
- drawtext.mp4 :添加水印之后生成的視頻名字
7胳搞、flv 轉(zhuǎn)MP4
ffmpeg -i input.flv output.mp4
8、視頻剪輯:
//截取從頭開始的30s
ffmpeg -ss 00:00:00 -t 00:00:30 -i keyoutput.mp4 -vcodec copy -acodec copy split.mp4
//截取從30s開始的30s
ffmpeg -ss 00:00:30 -t 00:00:30 -i keyoutput.mp4 -vcodec copy -acodec copy split1.mp4
9称杨、給視頻添加字幕srt
參考博主:https://moejj.com/ffmpeg-add-subtitles-and-watermark/
ffmpeg -i video.avi -vf subtitles=subtitle.srt out.avi
10肌毅、同時給視頻添加音樂+字幕
ffmpeg -i .\1111.mp4 -i .\2222.mp3 -vf subtitles=all_mp3_srt.srt out2.avi
11、使用ffmpeg webm 轉(zhuǎn)換 mp4
參考:http://www.voidcn.com/article/p-evqojtvk-bta.html
ffmpeg -fflags +genpts -i .\111.webm -r 24 1.mp4
解釋:
- -r 24 代碼生成的視頻時24幀姑原,你也可以改成30或者60
- -i .\111.webm 111.webm 是我的當(dāng)前目錄下 webm格式的視頻
- 1.mp4 會在當(dāng)前目錄下生成 這個mp4視頻
12悬而、合并倆個mp4視頻
1、先創(chuàng)建個name.txt
file 'split1.mp4'
file 'split2.mp4'
2锭汛、命令合并:
ffmpeg -f concat -i name.txt -c copy output.mp4
13笨奠、提取視頻的音頻為MP3
命令:
ffmpeg -i .\result.mp4 -vn .\result.mp3
生成之前是這種一個MP4文件
命令處理:
成功提取出mp3文件
14、去除視頻中的聲音(或者理解為中有聲音的視頻中提前不含聲音的視頻):
命令:
ffmpeg -i .\093660.mp4 -map 0:0 -vcodec copy out.mp4
其中:-map 表示使用哪個流做為輸入唤殴,0:0 表示第1個文件的每1個流般婆。 -vcodec 所示使用流的視頻,-acodec 表示使用流的音頻朵逝,我們這里不加這個參數(shù)蔚袍, 表示不需要音頻。 copy表示要把新的流復(fù)制到新文件
執(zhí)行完畢之后配名,會生成不含聲音的視頻out.mp4啤咽。
本文轉(zhuǎn)載自:https://blog.csdn.net/weixin_42081389/article/details/100543007