什麼是FFmpeg,它可以做什麼?
從上面的示例可以看出,有很多事情。FFmpeg絕對是操作音頻和視頻文件的便捷工具。
滿足所有需求的17個FFmpeg命令
FFmpeg是一個多平臺的開放源代碼庫,用於記錄,轉換和流式傳輸視頻和音頻文件。它創建於2000年,是一個功能強大的命令行工具,可在Linux,Windows和Mac操作系統上運行。FFmpeg當前被包括YouTube和VLC Media Player在內的許多網站和程序使用,並根據GNU通用公共許可證2.1+發佈。
該程序及其源代碼可在FFmepg 官方網站下載或者安裝。https://ffmpeg.org/download.html
如果您需要任何幫助來安裝FFmpeg,請參考官方文檔。
本文中的命令描述瞭如何執行各種音視頻處理任務,例如視頻文件轉換,音頻文件聲音提取,用於iPod或PSP的編碼文件,將視頻轉換為gif文件等。
1.從視頻文件獲取文件信息
您可以使用以下命令行指令輕鬆獲得有關給定視頻文件的大量信息:
<code>ffmpeg -i video.avi/<code>
2.將圖像轉換為視頻序列
這個命令將改變當前目錄(命名所有的圖像image1.jpg,image2.jpg等等)來命名的視頻文件video.mpg。
<code>ffmpeg -f image2 -i image%d.jpg video.mpg/<code>
3.將視頻轉換為X圖像
此命令將從給定的視頻文件生成名為image1.jpg,image2.jpg等的圖像。提供以下圖像格式:PGM,PPM,PAM,PGMYUV,JPEG,GIF,PNG,TIFF,SGI。
<code>ffmpeg -i video.mpg image%d.jpg/<code>
4.裁剪視頻文件
裁剪是視頻編輯中非常常見的操作。FFmpeg 為此提供了一種作物過濾器:
<code>ffmpeg -i input.mp4 -filter:v“ crop = out_w:out_h:x:y” output.mp4/<code>
選項如下:
- out_w 是輸出矩形的寬度
- out_h 是輸出矩形的高度
- x並y指定輸出矩形的左上角
- output.mp4 是輸出文件
5.調整視頻大小
使用-vf scale過濾器,可以將視頻調整為所需大小:
<code>ffmpeg -i input.avi -vf scale = 320:240 output.avi/<code>
同樣適用於圖像:
<code>ffmpeg -i input.jpg -vf比例= 320:240 output_320x240.png/<code>
6.提取視頻的一部分
視頻文件的另一種非常常見的操作是提取給定視頻的特定部分。這可以非常容易地完成:
<code>ffmpeg -ss 00:00:30 -i orginalfile.mpg -t 00:00:05 -vcodec複製-acodec複製newfile.mpg/<code>
在上面的示例中,我們將從00:00:30開始的部分切成5秒長的原始文件。-ss指示開始時間,並-t指示持續時間。
7.編碼iPod / iPhone的視頻序列
您可以使用以下命令輕鬆地為iPhone和舊版iPod轉換視頻:
<code>ffmpeg -i source_video.avi輸入-acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2-標誌+ 4mv + trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4/<code>
說明:
- 來源:source_video.avi
- 音頻編解碼器:AAC
- 音頻比特率:128kb / s
- 視頻編解碼器:mpeg4
- 視頻比特率:1200kb / s
- 影片大小:320像素標準尺寸180像素
- 生成的視頻:final_video.mp4
8.從視頻中提取聲音,並將其保存為Mp3格式
從視頻創建音頻文件是一項容易的任務:
<code>ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 sound.mp3/<code>
說明:
- 源視頻:source_video.avi
- 音頻比特率:192kb / s
- 輸出:mp3格式
- 產生的聲音:sound.mp3
9.將Wav文件轉換為Mp3
FFmpeg不僅適用於視頻,還可以對音頻文件進行很多處理。本示例將.wav文件轉換為mp3格式。
<code>ffmpeg -i input_sound.avi -vn -ar 44100 -ac 2 -ab 192k -f mp3 output_sound.mp3/<code>
10.將.avi視頻轉換為.mpg
將視頻文件從一種格式轉換為另一種格式非常簡單。在這裡,.avi視頻被轉換為.mpg:
<code>ffmpeg -i original_video.avi final_video.mpg/<code>
11.轉換.mpg為.avi
反之亦然。此命令將視頻轉換為指定的文件格式:
<code>ffmpeg -i original_video.mpg final_video.avi/<code>
12.將.avi轉換為.flv
.flv是一種非常流行的網絡視頻格式。本示例將.avi文件轉換為.flv,同時指定各種參數,例如顯示大小。
<code>ffmpeg -i original_video.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv final_video.flv/<code>
13.將.avi轉換為DVD播放器的mpeg
如果您有想要在DVD播放器上觀看的視頻,請按照以下方法對其進行正確編碼:
<code>ffmpeg -i original_video.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 final_video.dv/<code>
說明:
- target pal-dvd : 輸出格式
- -ps 2000000000:輸出文件的最大大小,以位為單位(此處為2 Gb)
- -aspect 16:9:寬屏
14.壓縮.avi視頻
您可以壓縮視頻以節省硬盤空間。注意使用-s參數來調整輸出文件的大小:
<code>ffmpeg -i original_video.avi -target pal-dv final_video.dv/<code>
15.將.avi轉換為Gif動畫(未壓縮)
您可以從視頻文件輕鬆創建動畫gif:
<code>ffmpeg -i source_video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 final_video.mpeg/<code>
16.將視頻與聲音文件混合
如果您有音頻和視頻文件,可以將它們混合在一起:
<code>ffmpeg -i sound.wav -i original_video.avi final_video.mpg/<code>
17.為視頻添加文字字幕,添字幕
如果您有電影或紀錄片的字幕,則可以使用FFmpeg將字幕插入視頻文件中:
<code>ffmpeg -i original_video.avi-目標ntsc-svcd final_video.mpg/<code>
18.視頻上的圖像疊加,去Logo
讓我們用高級命令完成本綜述。在這裡,我們將疊加圖像應用於現有視頻:
<code>ffmpeg -i original_video.avi -target pal-svcd final_video.mpg/<code>
一些解釋:
- overlay=25:25:從左上角(0:0)開始,圖片將位於右側25px和向下25px的位置。
- enable='between(t,0,20)':疊加層圖像的顯示時間為00:00:00至00:00:20
更詳細的操作請訪問ffmpeg官網文檔。
閱讀更多 人工智能時報 的文章