溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

linux中FFmpeg命令怎么用

發(fā)布時(shí)間:2021-10-23 17:43:19 來源:億速云 閱讀:163 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章主要為大家展示了“l(fā)inux中FFmpeg命令怎么用”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“l(fā)inux中FFmpeg命令怎么用”這篇文章吧。

FFmpeg 命令

FFmpeg 命令的典型語(yǔ)法是:

ffmpeg [全局選項(xiàng)] {[輸入文件選項(xiàng)] -i 輸入_url_地址} ... {[輸出文件選項(xiàng)] 輸出_url_地址} ...

現(xiàn)在我們將查看一些重要的和有用的 FFmpeg 命令。

1、獲取音頻/視頻文件信息

為顯示你的媒體文件細(xì)節(jié),運(yùn)行:

$ ffmpeg -i video.mp4

樣本輸出:

ffmpeg version n4.1.3 Copyright (c) 2000-2019 the FFmpeg developersbuilt with gcc 8.2.1 (GCC) 20181127configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-nvdec --enable-nvenc --enable-omx --enable-shared --enable-version3libavutil 56. 22.100 / 56. 22.100libavcodec 58. 35.100 / 58. 35.100libavformat 58. 20.100 / 58. 20.100libavdevice 58. 5.100 / 58. 5.100libavfilter 7. 40.101 / 7. 40.101libswscale 5. 3.100 / 5. 3.100libswresample 3. 3.100 / 3. 3.100libpostproc 55. 3.100 / 55. 3.100Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'video.mp4':Metadata:major_brand : isomminor_version : 512compatible_brands: isomiso2avc1mp41encoder : Lavf58.20.100Duration: 00:00:28.79, start: 0.000000, bitrate: 454 kb/sStream #0:0(und): Video: h364 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/bt470bg/smpte170m), 1920x1080 [SAR 1:1 DAR 16:9], 318 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)Metadata:handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)Metadata:handler_name : ISO Media file produced by Google Inc. Created on: 04/08/2019.At least one output file must be specified

如你在上面的輸出中看到的,F(xiàn)Fmpeg 顯示該媒體文件信息,以及 FFmpeg 細(xì)節(jié),例如版本、配置細(xì)節(jié)、版權(quán)標(biāo)記、構(gòu)建參數(shù)和庫(kù)選項(xiàng)等等。

如果你不想看 FFmpeg 標(biāo)語(yǔ)和其它細(xì)節(jié),而僅僅想看媒體文件信息,使用 -hide_banner 標(biāo)志,像下面。

$ ffmpeg -i video.mp4 -hide_banner

樣本輸出:

linux中FFmpeg命令怎么用

使用 FFMpeg 查看音頻、視頻文件信息。

看見了嗎?現(xiàn)在,它僅顯示媒體文件細(xì)節(jié)。

2、轉(zhuǎn)換視頻文件到不同的格式

FFmpeg 是強(qiáng)有力的音頻和視頻轉(zhuǎn)換器,因此,它能在不同格式之間轉(zhuǎn)換媒體文件。舉個(gè)例子,要轉(zhuǎn)換 mp4 文件到 avi 文件,運(yùn)行:

$ ffmpeg -i video.mp4 video.avi

類似地,你可以轉(zhuǎn)換媒體文件到你選擇的任何格式。

例如,為轉(zhuǎn)換 YouTube flv 格式視頻為 mpeg 格式,運(yùn)行:

$ ffmpeg -i video.flv video.mpeg

如果你想維持你的源視頻文件的質(zhì)量,使用 -qscale 0 參數(shù):

$ ffmpeg -i input.webm -qscale 0 output.mp4

為檢查 FFmpeg 的支持格式的列表,運(yùn)行:

$ ffmpeg -formats
3、轉(zhuǎn)換視頻文件到音頻文件

我轉(zhuǎn)換一個(gè)視頻文件到音頻文件,只需具體指明輸出格式,像 .mp3,或 .ogg,或其它任意音頻格式。

上面的命令將轉(zhuǎn)換 input.mp4 視頻文件到 output.mp3 音頻文件。

$ ffmpeg -i input.mp4 -vn output.mp3

此外,你也可以對(duì)輸出文件使用各種各樣的音頻轉(zhuǎn)換編碼選項(xiàng),像下面演示。

$ ffmpeg -i input.mp4 -vn -ar 44100 -ac 2 -ab 320 -f mp3 output.mp3

在這里,

  • -vn – 表明我們已經(jīng)在輸出文件中禁用視頻錄制。

  • -ar – 設(shè)置輸出文件的音頻頻率。通常使用的值是22050 Hz、44100 Hz、48000 Hz。

  • -ac – 設(shè)置音頻通道的數(shù)目。

  • -ab – 表明音頻比特率。

  • -f – 輸出文件格式。在我們的實(shí)例中,它是 mp3 格式。

4、更改視頻文件的分辨率

如果你想設(shè)置一個(gè)視頻文件為指定的分辨率,你可以使用下面的命令:

$ 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

上面的命令將設(shè)置所給定視頻文件的分辨率到 1280×720。

類似地,為轉(zhuǎn)換上面的文件到 640×480 大小,運(yùn)行:

$ 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

這個(gè)技巧將幫助你縮放你的視頻文件到較小的顯示設(shè)備上,例如平板電腦和手機(jī)。

5、壓縮視頻文件

減小媒體文件的大小到較小來節(jié)省硬件的空間總是一個(gè)好主意.

下面的命令將壓縮并減少輸出文件的大小。

$ ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -preset veryslow -crf 24 output.mp4

請(qǐng)注意,如果你嘗試減小視頻文件的大小,你將損失視頻質(zhì)量。如果 24 太有侵略性,你可以降低 -crf 值到或更低值。

你也可以通過下面的選項(xiàng)來轉(zhuǎn)換編碼音頻降低比特率,使其有立體聲感,從而減小大小。

-ac 2 -c:a aac -strict -2 -b:a 128k
6、壓縮音頻文件

正像壓縮視頻文件一樣,為節(jié)省一些磁盤空間,你也可以使用 -ab 標(biāo)志壓縮音頻文件。

例如,你有一個(gè) 320 kbps 比特率的音頻文件。你想通過更改比特率到任意較低的值來壓縮它,像下面。

$ ffmpeg -i input.mp3 -ab 128 output.mp3

各種各樣可用的音頻比特率列表是:

  1. 鴻蒙官方戰(zhàn)略合作共建——HarmonyOS技術(shù)社區(qū)

  2. 96kbps

  3. 112kbps

  4. 128kbps

  5. 160kbps

  6. 192kbps

  7. 256kbps

  8. 320kbps

7、從一個(gè)視頻文件移除音頻流

如果你不想要一個(gè)視頻文件中的音頻,使用 -an 標(biāo)志。

$ ffmpeg -i input.mp4 -an output.mp4

在這里,-an 表示沒有音頻錄制。

上面的命令會(huì)撤銷所有音頻相關(guān)的標(biāo)志,因?yàn)槲覀儾灰獊碜?input.mp4 的音頻。

8、從一個(gè)媒體文件移除視頻流

類似地,如果你不想要視頻流,你可以使用 -vn 標(biāo)志從媒體文件中簡(jiǎn)單地移除它。-vn 代表沒有視頻錄制。換句話說,這個(gè)命令轉(zhuǎn)換所給定媒體文件為音頻文件。

下面的命令將從所給定媒體文件中移除視頻。

$ ffmpeg -i input.mp4 -vn output.mp3

你也可以使用 -ab 標(biāo)志來指出輸出文件的比特率,如下面的示例所示。

$ ffmpeg -i input.mp4 -vn -ab 320 output.mp3
9、從視頻中提取圖像

FFmpeg 的另一個(gè)有用的特色是我們可以從一個(gè)視頻文件中輕松地提取圖像。如果你想從一個(gè)視頻文件中創(chuàng)建一個(gè)相冊(cè),這可能是非常有用的。

為從一個(gè)視頻文件中提取圖像,使用下面的命令:

$ ffmpeg -i input.mp4 -r 1 -f image2 image-%2d.png

在這里,

  • -r – 設(shè)置幀速度。即,每秒提取幀到圖像的數(shù)字。默認(rèn)值是 25。

  • -f – 表示輸出格式,即,在我們的實(shí)例中是圖像。

  • image-%2d.png – 表明我們?nèi)绾蜗朊崛〉膱D像。在這個(gè)實(shí)例中,命名應(yīng)該像這樣image-01.png、image-02.png、image-03.png 等等開始。如果你使用 %3d,那么圖像的命名像 image-001.png、image-002.png 等等開始。

10、裁剪視頻

FFMpeg 允許以我們選擇的任何范圍裁剪一個(gè)給定的媒體文件。

裁剪一個(gè)視頻文件的語(yǔ)法如下給定:

ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4

在這里,

  • input.mp4 – 源視頻文件。

  • -filter:v – 表示視頻過濾器。

  • crop – 表示裁剪過濾器。

  • w – 我們想自源視頻中裁剪的矩形的寬度。

  • h – 矩形的高度。

  • x – 我們想自源視頻中裁剪的矩形的 x 坐標(biāo) 。

  • y – 矩形的 y 坐標(biāo)。

比如說你想要一個(gè)來自視頻的位置 (200,150),且具有 640 像素寬度和 480 像素高度的視頻,命令應(yīng)該是:

$ ffmpeg -i input.mp4 -filter:v "crop=640:480:200:150" output.mp4

請(qǐng)注意,剪切視頻將影響質(zhì)量。除非必要,請(qǐng)勿剪切。

11、轉(zhuǎn)換一個(gè)視頻的具體的部分

有時(shí),你可能想僅轉(zhuǎn)換視頻文件的一個(gè)具體的部分到不同的格式。以示例說明,下面的命令將轉(zhuǎn)換所給定視頻input.mp4 文件的開始 10 秒到視頻 .avi 格式。

$ ffmpeg -i input.mp4 -t 10 output.avi

在這里,我們以秒具體說明時(shí)間。此外,以 hh.mm.ss 格式具體說明時(shí)間也是可以的。

12、設(shè)置視頻的屏幕高寬比

你可以使用 -aspect 標(biāo)志設(shè)置一個(gè)視頻文件的屏幕高寬比,像下面。

$ ffmpeg -i input.mp4 -aspect 16:9 output.mp4

通常使用的高寬比是:

  • 16:9

  • 4:3

  • 16:10

  • 5:4

  • 2:21:1

  • 2:35:1

  • 2:39:1

13、添加海報(bào)圖像到音頻文件

你可以添加海報(bào)圖像到你的文件,以便圖像將在播放音頻文件時(shí)顯示。這對(duì)托管在視頻托管主機(jī)或共享網(wǎng)站中的音頻文件是有用的。

$ ffmpeg -loop 1 -i inputimage.jpg -i inputaudio.mp3 -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
14、使用開始和停止時(shí)間剪下一段媒體文件

可以使用開始和停止時(shí)間來剪下一段視頻為小段剪輯,我們可以使用下面的命令。

$ ffmpeg -i input.mp4 -ss 00:00:50 -codec copy -t 50 output.mp4

在這里,

  • –ss – 表示視頻剪輯的開始時(shí)間。在我們的示例中,開始時(shí)間是第 50 秒。

  • -t – 表示總的持續(xù)時(shí)間。

當(dāng)你想使用開始和結(jié)束時(shí)間從一個(gè)音頻或視頻文件剪切一部分時(shí),它是非常有用的。

類似地,我們可以像下面剪下音頻。

$ ffmpeg -i audio.mp3 -ss 00:01:54 -to 00:06:53 -c copy output.mp3
15、切分視頻文件為多個(gè)部分

一些網(wǎng)站將僅允許你上傳具體指定大小的視頻。在這樣的情況下,你可以切分大的視頻文件到多個(gè)較小的部分,像下面。

$ 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 為視頻的下一部分顯示開始時(shí)間戳。它意味著第 2 部分將從第 30 秒開始,并將持續(xù)到原始視頻文件的結(jié)尾。

16、接合或合并多個(gè)視頻部分到一個(gè)

FFmpeg 也可以接合多個(gè)視頻部分,并創(chuàng)建一個(gè)單個(gè)視頻文件。

創(chuàng)建包含你想接合文件的準(zhǔn)確的路徑的 join.txt。所有的文件都應(yīng)該是相同的格式(相同的編碼格式)。所有文件的路徑應(yīng)該逐個(gè)列出,像下面。

file /home/sk/myvideos/part1.mp4file /home/sk/myvideos/part2.mp4file /home/sk/myvideos/part3.mp4file /home/sk/myvideos/part4.mp4

現(xiàn)在,接合所有文件,使用命令:

$ ffmpeg -f concat -i join.txt -c copy output.mp4

如果你得到一些像下面的錯(cuò)誤;

[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 文件到一個(gè)稱為 output.mp4 的單個(gè)文件中。

17、添加字幕到一個(gè)視頻文件

我們可以使用 FFmpeg 來添加字幕到視頻文件。為你的視頻下載正確的字幕,并如下所示添加它到你的視頻。

$ fmpeg -i input.mp4 -i subtitle.srt -map 0 -map 1 -c copy -c:v libx264 -crf 23 -preset veryfast output.mp4
18、預(yù)覽或測(cè)試視頻或音頻文件

你可能希望通過預(yù)覽來驗(yàn)證或測(cè)試輸出的文件是否已經(jīng)被恰當(dāng)?shù)剞D(zhuǎn)碼編碼。為完成預(yù)覽,你可以從你的終端播放它,用命令:

$ ffplay video.mp4

類似地,你可以測(cè)試音頻文件,像下面所示。

$ ffplay audio.mp3
19、增加/減少視頻播放速度

FFmpeg 允許你調(diào)整視頻播放速度。

為增加視頻播放速度,運(yùn)行:

$ ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4

該命令將雙倍視頻的速度。

為降低你的視頻速度,你需要使用一個(gè)大于 1 的倍數(shù)。為減少播放速度,運(yùn)行:

$ ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4
20、創(chuàng)建動(dòng)畫的 GIF

出于各種目的,我們?cè)趲缀跛械纳缃缓蛯I(yè)網(wǎng)絡(luò)上使用 GIF 圖像。使用 FFmpeg,我們可以簡(jiǎn)單地和快速地創(chuàng)建動(dòng)畫的視頻文件。下面的指南闡釋了如何在類 Unix 系統(tǒng)中使用 FFmpeg 和 ImageMagick 創(chuàng)建一個(gè)動(dòng)畫的 GIF 文件。

  • 在 Linux 中如何創(chuàng)建動(dòng)畫的 GIF

21、從 PDF 文件中創(chuàng)建視頻

我長(zhǎng)年累月的收集了很多 PDF 文件,大多數(shù)是 Linux 教程,保存在我的平板電腦中。有時(shí)我懶得從平板電腦中閱讀它們。因此,我決定從  PDF 文件中創(chuàng)建一個(gè)視頻,在一個(gè)大屏幕設(shè)備(像一臺(tái)電視機(jī)或一臺(tái)電腦)中觀看它們。如果你想知道如何從一批 PDF  文件中制作一個(gè)電影,下面的指南將幫助你。

  • 在 Linux 中如何從 PDF 文件中創(chuàng)建一個(gè)視頻

22、獲取幫助

在這個(gè)指南中,我已經(jīng)覆蓋大多數(shù)常常使用的 FFmpeg 命令。它有很多不同的選項(xiàng)來做各種各樣的高級(jí)功能。要學(xué)習(xí)更多用法,請(qǐng)參考手冊(cè)頁(yè)。

$ man ffmpeg

以上是“l(fā)inux中FFmpeg命令怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI