首先,我們需要知道FFmpeg 的語法是這個樣子的
ffmpeg [全局選項] {[輸入文件選項] -i 輸入_url_地址} {[輸出文件選項] 輸出_url_地址}
然後,運行下面的命令看看 ffmpeg都支持哪些格式
ffmpeg -formats
1、轉換視頻文件到不同的格式
比如,我們想要把一個MP4文件轉換成AVI文件
ffmpeg -i video.mp4 video.avi
如果你想維持你的源視頻文件的質量,就加上 -qscale 0
ffmpeg -i video.mp4 -qscale 0 video.avi
2、從視頻提取音頻
ffmpeg -i input.mp4 -vn output.mp3
當然了,如果你想更負責一點的,比如更改音頻轉換編碼或者音頻頻率等,這裡就不介紹了,反正幾乎用不到。
3、從視頻文件移除音頻
蘇蘇也不知道為什麼會有這麼喪心病狂的操作
ffmpeg -i input.mp4 -an output.mp4
4、更改視頻文件的解析度
比如,某個視頻解析度比較大, 我們打算壓成640×480 大小
ffmpeg -i input.mp4 -filter:v scale=640:480 -c:a copy output.mp4
你也可以使用下面的簡寫方式
ffmpeg -i input.mp4 -s 640x480 -c:a copy output.mp4
5、壓縮視頻文件大小
壓縮視頻大小有兩個方法,一個是壓縮音頻,轉換編碼音頻降低比特率,但是這個效果不明顯,往往累死累活地壓半天也就減少了幾M,還不如不壓,所以一般都是採取壓縮視頻質量的方式, 壓縮過後,視頻的清晰度會有所下降。
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4
如果使用 crf 24 後的視頻太過慘不忍睹,可以通過更小的數字來讓視頻質量不會這麼差。
6、裁剪視頻
就是裁剪視頻中的某個範圍
ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
w – 我們想自源視頻中裁剪的矩形的寬度。
h – 矩形的高度。
x – 我們想自源視頻中裁剪的矩形的 x 坐標 。
y – 矩形的 y 坐標。
比如說你想要一個來自視頻的位置 (200,150),且具有 640 像素寬度和 480 像素高度的視頻,命令應該是:
ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4
7、切分視頻文件為多個部分
相信這個是大家都比較常用的功能了,做個視頻網站,懂得切片很重要
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 秒創建一部分視頻。
-ss 00:00:30 為視頻的下一部分顯示開始時間戳。它意味著第 2 部分將從第 30 秒開始,並將持續到原始視頻文件的結尾。
8、合併多個視頻
把切片的視頻下載下來後,我們需要合併為一個文件。首先準備一個txt文件,假設文件名是: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
那麼,把這幾個MP4合併成一個視頻,的命令就是
ffmpeg -f concat -safe 0 -i join.txt -c copy output.mp4