用於處理音頻和視頻文件的有用 FFmpeg 命令

已發表: 2022-02-26

FFmpeg 是一個非常強大且通用的命令行工具,用於轉換音頻和視頻文件。 它是免費的,可用於 Windows、Mac 和 Linux 機器。 無論您是想合併兩個視頻文件、從視頻文件中提取音頻組件、將您的視頻轉換為動畫 GIF,FFmpeg 都可以做到,甚至更多。

使用這個簡單的 FFmpeg 命令從視頻文件中提取音頻。 使用這個簡單的 FFmpeg 命令從視頻文件中提取音頻。

有用的 FFmpeg 命令

FFmpeg 支持所有流行的音頻和視頻格式。 或者,您可以運行命令./ffmpeg -formats以獲取 FFmpeg 安裝支持的每種格式的列表。 如果您剛剛開始,這裡有一些命令可以讓您很好地了解此工具的功能。

1.將視頻文件剪切成一個較小的剪輯

您可以使用時間偏移參數 (-ss) 以 HH:MM:SS.ms 格式指定開始時間戳,而 -t 參數用於指定剪輯的實際持續時間(以秒為單位)。

ffmpeg -i input.mp4 -ss 00:00:50.0 -codec copy -t 20 output.mp4

2.將視頻分成多個部分

如果您想在不重新編碼的情況下將大視頻拆分為多個較小的剪輯,ffmpeg 可以提供幫助。 此命令會將源視頻分成兩部分 - 一個在距開始 50 秒處結束,另一個在 50 秒處開始並在輸入視頻結束時結束。

ffmpeg -i video.mp4 -t 00:00:50 -c copy small-1.mp4 -ss 00:00:50 -codec copy small-2.mp4

3.將視頻從一種格式轉換為另一種格式

您可以使用-vcodec參數指定要用於輸出視頻的編碼格式。 編碼視頻需要時間,但您可以通過強制預設來加快該過程,儘管它會降低輸出視頻的質量。

ffmpeg -i youtube.flv -c:v libx264 filename.mp4

ffmpeg -i video.wmv -c:v libx264 -preset ultrafast video.mp4

4.加入(連接)視頻文件

如果您有多個使用相同編解碼器編碼的音頻或視頻文件,您可以使用 FFmpeg 將它們合併到一個文件中。 創建一個輸入文件,其中包含您希望連接的所有源文件的列表,然後運行此命令。

ffmpeg -f concat -i file-list.txt -c copy output.mp4

5.靜音視頻(刪除音頻組件)

使用-an參數禁用視頻流的音頻部分。

ffmpeg -i video.mp4 -an mute-video.mp4

6.從視頻中提取音頻

-vn開關從視頻中提取音頻部分,我們使用 -ab 開關將音頻保存為 256kbps MP3 音頻文件。

ffmpeg -i video.mp4 -vn -ab 256 audio.mp3

7. 將視頻轉換為 GIF 動畫

FFmpeg 是一款出色的將視頻轉換為 GIF 動畫的工具,而且質量也不錯。 使用縮放過濾器指定 GIF 的寬度,-t 參數指定持續時間,而 -r 指定幀速率 (fps)。

ffmpeg -i video.mp4 -vf scale=500:-1 -t 10 -r 10 image.gif

8. 從視頻中提取圖像幀

此命令將提取 15 秒標記處的視頻幀並將其保存為 800 像素寬的 JPEG 圖像。 您還可以使用 -s 開關(如 -s 400x300)來指定圖像文件的確切尺寸,但如果圖像大小不符合原始視頻文件的縱橫比,它可能會創建拉伸圖像。

ffmpeg -ss 00:00:15 -i video.mp4 -vf scale=800:-1 -vframes 1 image.jpg

9.將視頻轉換為圖像

您可以使用 FFmpeg 每隔“n”秒自動從視頻中提取圖像幀,並按順序保存圖像。 此命令每 4 秒保存一次視頻中的圖像幀。

ffmpeg -i movie.mp4 -r 0.25 frames_%04d.png

10.合併音頻和視頻文件

您還可以指定-shortest開關以在最短剪輯結束時完成編碼。

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4

ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental -shortest output.mp4

11.調整視頻大小

使用 ffmpeg 的大小 (-s) 開關來調整視頻大小,同時保持縱橫比。

ffmpeg -i input.mp4 -s 480x320 -c:a copy output.mp4

12.從圖像創建視頻幻燈片

此命令使用名為 img001.png、img002.png 等的一系列圖像創建視頻幻燈片。每個圖像的持續時間為 5 秒 (-r 1/5)。

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -r 30 -pix_fmt yuv420p slideshow.mp4

13.在音頻中添加海報圖片

您可以為音頻文件添加封面圖像,輸出視頻的長度將與輸入音頻流的長度相同。 這對於將 MP3 上傳到 YouTube 可能會很方便。

ffmpeg -loop 1 -i image.jpg -i audio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4

14.將單個圖像轉換為視頻

使用 -t 參數指定視頻的持續時間。

ffmpeg -loop 1 -i image.png -c:v libx264 -t 30 -pix_fmt yuv420p video.mp4

15.為電影添加字幕

這將從 .srt 文件中獲取字幕。 FFmpeg 可以解碼所有常見的字幕格式。

ffmpeg -i movie.mp4 -i subtitles.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mkv

16. 裁剪音頻文件

這將從原始音頻文件的 90 秒開始創建一個 30 秒的音頻文件,無需轉碼。

ffmpeg -ss 00:01:30 -t 30 -acodec copy -i inputfile.mp3 outputfile.mp3

17.改變音量

您可以使用音量過濾器來更改使用 FFmpeg 的媒體文件的音量。 此命令將使音頻文件的音量減半。

ffmpeg -i input.wav -af 'volume=0.5' output.wav

18. 旋轉視頻

此命令會將視頻剪輯順時針旋轉 90°。 您可以將轉置設置為 2 以將視頻逆時針旋轉 90°。

ffmpeg -i input.mp4 -filter:v 'transpose=1' rotated-video.mp4

這會將視頻逆時針旋轉 180°。

ffmpeg -i input.mp4 -filter:v 'transpose=2,transpose=2' rotated-video.mp4

19.加快或減慢視頻

您可以使用 FFmpeg 的setpts (設置演示時間戳)過濾器來更改視頻的速度。 此命令將使視頻快 8 倍 (1/8) 或使用setpts=4*PTS使視頻慢 4 倍。

ffmpeg -i input.mp4 -filter:v "setpts=0.125*PTS" output.mp4

20.加快或減慢音頻

要更改音頻的速度,請使用atempo音頻過濾器。 此命令將使音頻速度加倍。 您可以將 0.5 到 2.0 之間的任何值用於音頻。

ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv

Stack Exchange 有一個很好的概述,可以幫助您開始使用 FFmpeg。 您還應該查看 ffmpeg.org 上的官方文檔或 trac.ffmpeg.org 上的 wiki,以了解您可以使用 FFmpeg 做的所有可能的事情。

另請參閱:基本 Linux 命令