ffmpeg由Fabrice Bellard創建,他與QEMU和QuickJS ( JSLinux背后的引擎)的創建者相同。
本文介紹了許多不同的 ffmpeg 用例,假設讀者具有該軟件的基本知識。您將在本文中看到各種實際示例。更多詳細信息,請參考官方文檔頁面。
盡管它們以多行形式呈現,但以下所有示例都是一行。只需將它們復制并粘貼到您的終端中,然后按 Enter。
1. 編解碼器選項
ffmpeg 支持的可用編解碼器非常多。以下示例是一些最流行的組合,已在許多不同的商業項目中使用。
1.1 轉換為 MP4
linuxmi@linuxmi /home/linuxmi/linuxmi.com ffmpeg -i linuxmi.mov -c:v libx264 -c:a aac linuxmi.con.mp4
libx264是最流行的 H.264 編碼器之一。libx264+aac組合支持 IE11。使用-crf選項來控制輸出質量。
1.2 轉換為 WebM
linuxmi@linuxmi /home/linuxmi/linuxmi.com ffmpeg -i linuxmi.mov -c:v libvpx-vp9 -crf 31 -b:v 1M -c:a libvorbis linuxmi.webm
-crf代表恒定速率因子。libvpx沒有默認的 CRF 值。-crf 31用于 1080p 通常被認為足夠好了,而它可以接受 0(無損)和 63(最差質量)之間的任何數字。供您參考,libx264的默認值為 28,范圍從 0 到 51。
-b:v是比特率的一個選項。值1M與1000k 相同。
1.3 轉換為 Ogg
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ffmpeg -i linuxmi.mov -c:v libtheora -q:v 5 -c:a libvorbis -q:a 5 linuxmi.ogg
-q:v(視頻)和-q:a(音頻)是可變比特率 (VBR) 質量級別的選項。取值范圍是 1-31,其中 1 是最高質量,31 是最低質量。或者,它們分別與-qscale:v和-qscale:a相同。
1.4 轉換為 GIF
ffmpeg -i linuxmi.mov -vf " scale=960:-1, fps=16, split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse " -loop 0 linuxmi.gif
1.5 保持原始編碼
ffmpeg -i linuxmi.mov -c copy linuxmi.com.mov這會創建源文件的副本。
1.6 移除音軌
ffmpeg -i linuxmi.mov -c:v copy -an linuxmi.mp4-an用于刪除音軌,同時通過-c:v copy選項保留視頻軌道。
1.7 將第 99 幀導出為圖像
ffmpeg -i linuxmi.mov -vf "select=eq(n, 98)" -vframes 1 linuxmi.png由于幀數從 0 開始,所以選項應該是"select=eq(n, 98)",而不是"select=eq(n, 99)"。
1.8 5秒導出一幀到一張圖片
ffmpeg -i linuxmi.mov -ss 00:05:00 -vframes 1 linuxmi.png
2.高級編輯功能
您可以將以下選項與上述任何編解碼器設置結合使用。
2.1 從源文件中剪切特定范圍
ffmpeg -i linuxmi.mov -ss 00:05:00 -t 12 linuxmi.mp4輸出文件將從源文件的 5 分鐘開始,最大長度為 12 秒,這意味著如果源文件長于該時間,則輸出視頻將在源視頻的 0012 結束。
或者,-ss 0000 -to 0012或-ss 300 -t 12可用于相同的結果。-ss可以不帶-t選項使用。
2.2 調整視頻大小
調整為 1920x1080
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ffmpeg -i linuxmi.mov -vf "scale=1920:1080" linuxmi.mp4
將寬度調整為 1920 保持源比率
ffmpeg -i linuxmi.mov -vf "scale=1920:-1" linuxmi.mp4
將寬度調整為 1920,但使用黑色填充將高度設置為 2160
ffmpeg -i linuxmi.mov -vf "scale=1920:-1, pad=1920-1color=black" linuxmi.mp4
2.3 改變視頻播放速度
2 倍速度
ffmpeg -i linuxmi.mov -vf "setpts=PTS/2" -af "asetpts=PTS/2" linuxmi.mp4
1/2x 速度
ffmpeg -i linuxmi.mov -vf "setpts=PTS/.5" -af "asetpts=PTS/.5" linuxmi.mp4PTS代表演示時間戳。您可以通過分別在視頻過濾器 ( -vf) 和音頻過濾器 ( -af)上給出不同的數字來應用不同的視頻和音頻速度。
2.4 設置每秒幀數(FPS)
ffmpeg -i linuxmi.mov -vf "fps=30" linuxmi.mp4
2.5 合并多個視頻
ffmpeg -safe 0 -f concat -i <( for f in $PWD/*.@(mov|mp4); do printf "file ${f} "; done; ) -c copy linuxmi.mov上面的命令將當前目錄中的所有 .mov 和 .mp4 文件合并并創建output.mov文件。所有視頻必須具有相同的尺寸比以避免拉伸或變形。
2.6 設置畫面組(GOP)
GOP(Group of Pictures)策略影響編碼質量,所謂GOP,意思是畫面組,一個GOP就是一組連續的畫面。
ffmpeg -i linuxmi.mov -g 300 linuxmi.mp4 GOP 表示兩個關鍵幀之間的距離。
2.7 復制源媒體的元數據
ffmpeg -i source.mov -map_metadata 0 -movflags use_metadata_tags linuxmi.mp4由于某些視頻存儲自定義元數據,此命令可能無法正確復制所有數據。
如果要檢查元數據,請安裝exiftool并運行:
exiftool -g1 -a -s -gps* linuxmi.mp4`或者,您可以使用 exiftool 復制元數據,如下所示:
exiftool -tagsFromFile source.mov -All:All linuxmi.mp4
審核編輯:湯梓紅
-
Linux
+關注
關注
87文章
11229瀏覽量
208927 -
編解碼器
+關注
關注
0文章
253瀏覽量
24207 -
音視頻
+關注
關注
4文章
465瀏覽量
29854 -
命令
+關注
關注
5文章
678瀏覽量
21984 -
ffmpeg
+關注
關注
0文章
46瀏覽量
7379
原文標題:音視頻圖像處理神器 FFmpeg 有用的命令示例
文章出處:【微信號:Linux迷,微信公眾號:Linux迷】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論