相關(guān)資料
1、點(diǎn)擊跳轉(zhuǎn) ===> FFmpeg官方文檔地址
2、點(diǎn)擊跳轉(zhuǎn) ===> FFmpeg官方Wiki地址
3、點(diǎn)擊跳轉(zhuǎn) ===> FFmpeg翻譯文檔地址
4、點(diǎn)擊跳轉(zhuǎn) ===> FFmpeg中文論壇地址
5、點(diǎn)擊跳轉(zhuǎn) ===> FFmpeg雷神博客地址
6、點(diǎn)擊跳轉(zhuǎn) ===> 羅索實(shí)驗(yàn)室官方地址
FFmpeg選項(xiàng)
一、主要選項(xiàng)
- 1、
-f fmt (input/output)指定輸入或者輸出文件格式。常規(guī)可省略而使用依據(jù)擴(kuò)展名的自動(dòng)指定,但一些選項(xiàng)需要強(qiáng)制明確設(shè)定。- 2、
-i filename (input)指定輸入文件。- 3、
-y (global)默認(rèn)自動(dòng)覆蓋輸出文件,而不再詢問(wèn)確認(rèn)。- 4、
-n (global)不覆蓋輸出文件,如果輸出文件已經(jīng)存在則立即退出。- 5、
-t duration(input/output)限制輸入/輸出的時(shí)間。如果是在 -i 前面,就是限定從輸入中讀取多少時(shí)間的數(shù)據(jù);如果是用于限定輸出文件,則表示寫入多少時(shí)間數(shù)據(jù)后就停止。duration可以是以秒為單位的數(shù)值或者 hh:mm:ss[.xxx] 格式的時(shí)間值。 注意 -to 和 -t 是互斥的,-t 有更高優(yōu)先級(jí)。- 6、
-to position (output)只寫入position時(shí)間后就停止,position可以是以秒為單位的數(shù)值或者 hh:mm:ss[.xxx]格式的時(shí)間值。 注意 -to 和 -t 是互斥的,-t 有更高優(yōu)先級(jí)。- 7、
-ss position (input/output)
當(dāng)在 -i 前,表示定位輸入文件到position指定的位置。注意可能一些格式是不支持精確定位的,所以ffmpeg可能是定位到最接近position(在之前)的可定位點(diǎn)。position可以是以秒為單位的數(shù)值或者 hh:mm:ss[.xxx] 格式的時(shí)間值。- 8、
-itsoffset offset (input)設(shè)置輸入文件的時(shí)間偏移。offset 必須采用時(shí)間持續(xù)的方式指定,即可以有-號(hào)的時(shí)間值(以秒為單位的數(shù)值或者 hh:mm:ss[.xxx] 格式的時(shí)間值)。偏移會(huì)附加到輸入文件的時(shí)間碼上,意味著所指定的流會(huì)以時(shí)間碼+偏移量作為最終輸出時(shí)間碼。- 9、
-timestamp date (output)設(shè)置在容器中記錄時(shí)間戳。- 10、
-codec[:stream_specifier] codec (input/output,per-stream)為特定的文件選擇編/解碼模式,對(duì)于輸出文件就是編碼器,對(duì)于輸入或者某個(gè)流就是解碼器。選項(xiàng)參數(shù)中 codec 是編解碼器的名字,或者是 copy(僅對(duì)輸出文件)則意味著流數(shù)據(jù)直接復(fù)制而不再編碼。
二、視頻選項(xiàng)
- 1、
-vframes number (output)設(shè)置輸出文件的幀數(shù),是 -frames:v 的別名。- 2、
-r[:stream_specifier] fps (input/output,per-stream)設(shè)置幀率(一種Hz值,縮寫或者分?jǐn)?shù)值)。- 3、
-s[:stream_specifier] size (input/output,per-stream)設(shè)置幀的尺寸。- 4、
-vn (output)禁止輸出視頻。- 5、
-vcodec codec (output)設(shè)置視頻編碼器,這是 -codec:v 的一個(gè)別名。- 6、
aspect[:stream_specifier] aspect (output,per-stream)指定視頻的縱橫比(長(zhǎng)寬顯示比例)。aspect 是一個(gè)浮點(diǎn)數(shù)字符串或者num:den格式字符串(其值就是num/den),例如"4:3","16:9","1.3333"以及"1.7777"都是常用參數(shù)值。
三、音頻選項(xiàng)
- 1、
-aframes number (output)設(shè)置 number 音頻幀輸出,是 -frames:a 的別名。- 2、
-ar[:stream_specifier] freq (input/output,per-stream)設(shè)置音頻采樣率。默認(rèn)是輸出同于輸入。對(duì)于輸入進(jìn)行設(shè)置,僅僅通道是真實(shí)的設(shè)備或者raw數(shù)據(jù)分離出并映射的通道才有效。對(duì)于輸出則可以強(qiáng)制設(shè)置音頻量化的采用率。- 3、
-aq q (output)設(shè)置音頻品質(zhì)(編碼指定為VBR),它是 -q:a 的別名。- 4、
-ac[:stream_specifier] channels (input/output,per-stream)設(shè)置音頻通道數(shù)。默認(rèn)輸出會(huì)有輸入相同的音頻通道。對(duì)于輸入進(jìn)行設(shè)置,僅僅通道是真實(shí)的設(shè)備或者raw數(shù)據(jù)分離出并映射的通道才有效。- 5、
-an (output)禁止輸出音頻。- 6、
-acode codec (input/output)設(shè)置音頻解碼/編碼的編/解碼器,是 -codec:a 的別名。
四、字幕選項(xiàng)
- 1、
-scodec codec(input/output)設(shè)置字幕解碼器,是 -codec:s 的別名。- 2、
-sn (output)禁止輸出字幕。- 3、
-fix_sub_duration修正字幕持續(xù)時(shí)間。- 4、
-canvas_size size設(shè)置字幕渲染區(qū)域的尺寸(位置)。
FFmpeg命令示例
1、轉(zhuǎn)化格式
ffmpeg -i input_test.mp4 -vn -acodec copy output_test.flvffmpeg -i input_test.aac -vn -acodec copy output_test.mp3
2、抽取畫面中的音頻
ffmpeg -i input_test.mp4 -vn -y -acodec copy output_test.aacffmpeg -i input_test.mp4 -vn -y -acodec copy output_test.mp3ffmpeg -i input_test.mp4 -acodec copy -vn output_test.mp3
3、抽取畫面中的視頻
ffmpeg -i input_test.mp4 -vcodec copy -an output_test.aviffmpeg -i input_test.mp4 -vcodec copy -an output_test.mp4
4、音頻+視頻合成
ffmpeg -i input_test_1.mp4 -i input_test_2.mp3 -vcodec copy -acodec copy output_test.mp4ffmpeg -i input_test_1.mp4 -itsoffset 10 -i input_test_2.mp3 -vcodec copy -acodec copy output_test.mp4ffmpeg -ss 20 -t 5 -i input_test_1.mp4 -i input_test_2.aac -vcodec copy -acodec copy output_test.mp4
音樂(lè)持續(xù)播放,視頻只播放5秒ffmpeg -ss 20 -t 5 -i input_test_1.mp3 -i input_test_2.mp4 -vcodec copy -acodec copy output_test.mp4
視頻持續(xù)播放,音樂(lè)只播放5秒
5、音頻+音頻合成
ffmpeg -i input_test_1.mp3 -i input_test_2.mp3 -filter_complex amix=inputs=2:duration=shortest output_test.mp3ffmpeg -i input_test_1.mp3 -i input_test_2.mp3 -filter_complex amix=inputs=2:duration=longest output_test.mp3ffmpeg –i input_test_1.mp3 –i input_test_2.mp3 –vcodec copy –acodec copy output_test.mp3
格式:ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
6、視頻分離成圖片
ffmpeg -i input_test.mp4 -r 1 -f image2 output_image-%03d.jpeg
7、圖片合成視頻
ffmpeg -f image2 -i output_image-%03d.jpeg output_test.mp4
8、改變音量大小
ffmpeg -i input_test.mp3 -af 'volume=0.5' output_test.mp3
9、音效淡入淡出效果
ffmpeg -i input_test.mp3 -filter_complex afade=t=in:ss=0:d=4 output_test.mp3
淡入效果:把 input_test.mp3 文件的前5s做一個(gè)淡入淡出效果,輸出到 output_test.mp3
文件中ffmpeg -i input_test.mp3 -filter_complex afade=t=out:st=20:d=6 output_test.mp3
淡出效果:將 input_test.mp3 文件從20s開(kāi)始,做6s的淡出效果,輸出到 output_test.mp3 文件中
10、截取音頻
ffmpeg -ss 10 -i input_test.mp3 -to 20 -vcodec copy -acodec copy output_test.mp3ffmpeg -ss 10 -i input_test.mp3 -t 5 -vcodec copy -acodec copy output_test.mp3ffmpeg -i input_test.mp3 -c copy -t 10 -output_ts_offset 120 output_test.mp3
11、容器時(shí)長(zhǎng)獲取
ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 -i input_test.mp3
12、網(wǎng)絡(luò)資源下載
ffmpeg -i https://xxx.xxx.xxxxxx -c copy -f mp3 output_test.mp3
11、播放音頻視頻
ffplay input_test.mp3
12、圖片生成gif動(dòng)圖
ffmpeg -i input_image_%03d.png -r 5 output_test.gif
13、抽取PCM數(shù)據(jù)
ffmpeg -i input_test.mp4 -vn -ar 44100 -ac 2 -f s16le output_test.pcm
原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處。