FFmpeg 的支持格式的
ffmpeg -formats
1巷燥、 為顯示你的媒體文件細節(jié)
ffmpeg -i video.mp4
ffmpeg -i image.png
> 只看媒體文件信息
ffmpeg -i video.mp4 -hide_banner
ffmpeg -i image.png -hide_banner
2帚屉、 轉換視頻文件到不同的格式
ffmpeg -i video.mp4 video.avi
> 你可以轉換媒體文件到你選擇的任何格式
例如渤愁,為轉換 YouTube flv 格式視頻為 mpeg 格式
ffmpeg -i video.flv video.mpeg
如果你想維持你的源視頻文件的質量,使用 -qscale 0
ffmpeg -i input.webm -qscale 0 output.mp4
3碴卧、轉換視頻文件到音頻文件
ffmpeg -i input.mp4 -vn output.mp3
此外弱卡,你也可以對輸出文件使用各種各樣的音頻轉換編碼選項,像下面演示住册。
ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3
在這里婶博,
-vn – 表明我們已經在輸出文件中禁用視頻錄制。
-ar – 設置輸出文件的音頻頻率荧飞。通常使用的值是22050 Hz凡人、44100 Hz、48000 Hz垢箕。
-ac – 設置音頻通道的數目划栓。
-ab – 表明音頻比特率兑巾。
-f – 輸出文件格式条获。在我們的實例中,它是 mp3 格式
4蒋歌、更改視頻文件的分辨率
ffmpeg -i input.mp4 -filter:v scale=1280:720 -c:a copy output.mp4
或帅掘,
ffmpeg -i input.mp4 -s 1280x720 -c:a copy output.mp4
5、壓縮視頻文件
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
減小視頻文件的大小堂油,將損失視頻質量修档。如果 24 太有侵略性,可以降低 -crf 值到或更低值府框。
可以通過下面的選項來轉換編碼音頻降低比特率吱窝,使其有立體聲感,從而減小大小。
-ac 2 -c:a aac -strict -2 -b:a 128k
6院峡、壓縮音頻文件
ffmpeg -i input.mp3 -ab 128 output.mp3
音頻比特率列表是:
96kbps
112kbps
128kbps
160kbps
192kbps
256kbps
320kbps
7兴使、從一個視頻文件移除音頻流
ffmpeg -i input.mp4 -an output.mp4
-an 表示沒有音頻
8、從一個媒體文件移除視頻流(轉換所給定媒體文件為音頻文件)
ffmpeg -i input.mp4 -vn output.mp3
-vn 表示沒有視頻
可以使用 -ab 標志來指出輸出文件的比特率
ffmpeg -i input.mp4 -vn -ab 320 output.mp3
9照激、從視頻中提取圖像
ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png
-r – 設置幀速度发魄。即,每秒提取幀到圖像的數字俩垃。默認值是 25励幼。
-f – 表示輸出格式,即口柳,在我們的實例中是圖像苹粟。
image-%2d.png – 表明我們如何想命名提取的圖像。在這個實例中跃闹,命名應該像這樣image-01.png六水、image-02.png、image-03.png 等等開始辣卒。如果你使用 %3d掷贾,那么圖像的命名像 image-001.png、image-002.png 等等開始荣茫。
10想帅、裁剪視頻
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
input.mp4 – 源視頻文件。
-filter:v – 表示視頻過濾器啡莉。
crop – 表示裁剪過濾器港准。
w – 我們想自源視頻中裁剪的矩形的寬度。
h – 矩形的高度咧欣。
x – 我們想自源視頻中裁剪的矩形的 x 坐標 浅缸。
y – 矩形的 y 坐標。
比如說你想要一個來自視頻的位置 (200,150)魄咕,且具有 640 像素寬度和 480 像素高度的視頻衩椒,命令應該是:
$ ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4
請注意,剪切視頻將影響質量哮兰。除非必要毛萌,請勿剪切
11、轉換一個視頻的具體的部分
有時喝滞,你可能想僅轉換視頻文件的一個具體的部分到不同的格式阁将。以示例說明,下面的命令將轉換所給定視頻input.mp4 文件的開始 10 秒到視頻 .avi 格式右遭。
ffmpeg -i input.mp4 -t 10 output.avi
12做盅、設置視頻的屏幕高寬比
ffmpeg -i input.mp4 -aspect 16:9 output.mp4
13缤削、添加海報圖像到音頻文件
你可以添加海報圖像到你的文件,以便圖像將在播放音頻文件時顯示吹榴。這對托管在視頻托管主機或共享網站中的音頻文件是有用的僻他。
ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
14、使用開始和停止時間剪下一段媒體文件
可以使用開始和停止時間來剪下一段視頻為小段剪輯腊尚,我們可以使用下面的命令吨拗。
$ ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4
在這里,
–s – 表示視頻剪輯的開始時間婿斥。在我們的示例中劝篷,開始時間是第 50 秒。
-t – 表示總的持續(xù)時間民宿。
當你想使用開始和結束時間從一個音頻或視頻文件剪切一部分時娇妓,它是非常有用的。
類似地活鹰,我們可以像下面剪下音頻哈恰。
$ ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3
15、切分視頻文件為多個部分
一些網站將僅允許你上傳具體指定大小的視頻志群。在這樣的情況下着绷,你可以切分大的視頻文件到多個較小的部分,像下面锌云。
$ ffmpeg -i input.mp4 -t 00:00:30 -c copy part1.mp4 -ss 00:00:30 -codec copy part2.mp4
在這里荠医,
-t 00:00:30 表示從視頻的開始到視頻的第 30 秒創(chuàng)建一部分視頻。
-ss 00:00:30 為視頻的下一部分顯示開始時間戳桑涎。它意味著第 2 部分將從第 30 秒開始彬向,并將持續(xù)到原始視頻文件的結尾
16、接合或合并多個視頻部分到一個
FFmpeg 也可以接合多個視頻部分攻冷,并創(chuàng)建一個單個視頻文件娃胆。
創(chuàng)建包含你想接合文件的準確的路徑的 join.txt。所有的文件都應該是相同的格式(相同的編碼格式)等曼。所有文件的路徑應該逐個列出里烦,像下面。
file /home/sk/myvideos/part1.mp4
file /home/sk/myvideos/part2.mp4
file /home/sk/myvideos/part3.mp4
file /home/sk/myvideos/part4.mp4
現在涉兽,接合所有文件招驴,使用命令:
ffmpeg -f concat -i join.txt -c copy output.mp4
如果你得到一些像下面的錯誤篙程;
[concat @ 0x555fed174cc0] Unsafe file name '/path/to/mp4'
join.txt: Operation not permitted
添加 -safe 0 :
ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4
上面的命令將接合 part1.mp4枷畏、part2.mp4、part3.mp4 和 part4.mp4 文件到一個稱為 output.mp4 的單個文件中虱饿。
17拥诡、添加字幕到一個視頻文件
fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4
18触趴、預覽或測試視頻或音頻文件
你可能希望通過預覽來驗證或測試輸出的文件是否已經被恰當地轉碼編碼。為完成預覽渴肉,你可以從你的終端播放它冗懦,用命令:
ffplay video.mp4
類似地,你可以測試音頻文件仇祭,像下面所示披蕉。
ffplay audio.mp3
19、變速
為增加視頻播放速度乌奇,運行:
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
為降低你的視頻速度没讲,你需要使用一個大于 1 的倍數。為減少播放速度礁苗,運行:
ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4
20爬凑、倒放
1.視頻倒放,無音頻
ffmpeg -i inputfile.mp4 -filter_complex [0:v]reverse[v] -map [v] -preset superfast reversed.mp4
2.視頻倒放试伙,音頻不變
ffmpeg -i inputfile.mp4 -vf reverse reversed.mp4
3.音頻倒放嘁信,視頻不變
ffmpeg -i xxx.mp4 -vf reverse -y reverse.mp4
或
ffmpeg -i inputfile.mp4 -map 0 -c:v copy -af "areverse" reversed_audio.mp4
4.音視頻同時倒放
ffmpeg -i inputfile.mp4 -vf reverse -af areverse -preset superfast reversed.mp4
21、視頻添加水印
ffmpeg -i tt.mp4 -vf "movie=logo.png[watermark];[in][watermark]overlay=20:20" kk.mp4
左上角 10:10
右上角 main_w-overlay_w-10:10
左下角 10:main_h-overlay_h-10
右下角 main_w-overlay_w-10 : main_h-overlay_h-10
22疏叨、文字水印
ffmpeg -i kk.mp4 -vf "drawtext=fontfile=simhei.ttf: text='鬼白':x=100:y=100:fontsize=100:fontcolor=yellow:shadowy=2" drawtext.mp4