日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Linux下安裝多媒體處理工具FFmpeg

FFmpeg是一套可以用來(lái)記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開(kāi)源計(jì)算機(jī)程序。采用LGPL或GPL許可證。它提供了錄制、轉(zhuǎn)換以及流化音視頻的完整解決方案。它包含了非常先進(jìn)的音頻/視頻編解碼庫(kù)libavcodec,為了保證高可移植性和編解碼質(zhì)量,libavcodec里很多code都是從頭開(kāi)發(fā)的。FFmpeg在Linux平臺(tái)下開(kāi)發(fā),但它同樣也可以在其它操作系統(tǒng)環(huán)境中編譯運(yùn)行,包括Windows、Mac OS X等。

蒙自網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,蒙自網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為蒙自上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的蒙自做網(wǎng)站的公司定做!

在 Ubuntu 和其他 Linux 系統(tǒng)上安裝 ffmpeg

安裝 ffmpeg 是非常容易的,它是個(gè)很流行的程序,所以大多數(shù)的linux發(fā)行版中您都可以通過(guò)包管理器直接安裝。

在 Ubuntu 上安裝 ffmpeg

在 Ubuntu 上,ffmpeg 存在于 “Universe repository”, 所以確保您開(kāi)啟了enable universe repository,然后更新并安裝ffmpeg。下面就是您可能需要的命令。

sudo add-apt-repository universe
sudo apt update
sudo apt install ffmpeg

這就OK了,您可以通過(guò)下面的命令嘗試一下有沒(méi)有正確安裝:

ffmpeg

他會(huì)打印出一些ffmpeg的配置和版本信息。

正如上圖所示,安裝的版本是 3.4.4。不過(guò)ffmpeg的最新版本應(yīng)該是4.1。為了安裝4.x的版本,您需要使用ffmpeg ppa, 您可以自己研究一下……

在 Arch 系的Linux上安裝 ffmpeg

這個(gè)也非常簡(jiǎn)單,用下面的命令就行:

sudo pacman -S ffmpeg

在 Fedora 系的Linux上安裝 ffmpeg

使用下面的命令就好了:

sudo dnf install ffmpeg

如何使用 ffmpeg: 基礎(chǔ)

ffmpeg 安裝就緒了,我來(lái)講述一些使用這個(gè)強(qiáng)力工具的基本概念。

0. ffmpeg 命令

使用 ffmpeg 命令基本形式是:

ffmpeg [全局參數(shù)] {[輸入文件參數(shù)] -i 輸入文件地址} ... {[輸出文件參數(shù)] 輸出文件地址} ...

要注意的是,所有的參數(shù)僅僅對(duì)僅接下來(lái)的文件有效(下一個(gè)文件得把參數(shù)再寫(xiě)一遍)。

所有沒(méi)有使用 -i 指定的文件都被認(rèn)為是輸出文件。 Ffmpeg 可以接受多個(gè)輸入文件并輸出到您指定的位置。你也可以將輸入輸出都指定為同一個(gè)文件名,不過(guò)這個(gè)時(shí)候要在輸出文件前使用用 -y 標(biāo)記。

Note

你不應(yīng)該將輸入和輸出混淆,先指定輸入,再指定輸出文件

1. 獲得媒體文件的信息

ffmpeg 最簡(jiǎn)單的使用就是用來(lái) 顯示文件信息 。不用給輸出,只是簡(jiǎn)單的寫(xiě):

ffmpeg -i file_name

視頻和音頻文件都可以使用:

ffmpeg -i video_file.mp4
ffmpeg -i audio_file.mp3

通過(guò)ffmpeg查看文件屬性

命令會(huì)輸出很多與您文件無(wú)關(guān)的信息(ffmpeg本身的信息),雖說(shuō)這個(gè)蠻有用的,你可以使用 -hide_banner 來(lái)隱藏掉它們:

ffmpeg -i video_file.mp4 -hide_banner
ffmpeg -i audio_file.mp3 -hide_banner

如圖所示,現(xiàn)在命令只顯示你文件相關(guān)的信息了(編碼器,數(shù)據(jù)流等)。

2. 轉(zhuǎn)換媒體文件

ffmpeg 最讓人稱(chēng)道常用的恐怕就是你輕而易舉的在不同媒體格式之間進(jìn)行自由轉(zhuǎn)換了。你是要指明輸入和輸出文件名就行了, ffmpeg 會(huì)從后綴名猜測(cè)格式,這個(gè)方法同時(shí)適用于視頻和音頻文件

下面是一些例子:

ffmpeg -i video_input.mp4 video_output.avi
ffmpeg -i video_input.webm video_output.flv
ffmpeg -i audio_input.mp3 audio_output.ogg
ffmpeg -i audio_input.wav audio_output.flac

你也可以同時(shí)指定多個(gè)輸出后綴:

ffmpeg -i audio_input.wav audio_output_1.mp3 audio_output_2.ogg

這樣會(huì)同時(shí)輸出多個(gè)文件.

想看支持的格式,可以用:

ffmpeg -formats

同樣的,你可以使用 -hide_banner 來(lái)省略一些程序信息。

你可以在輸出文件前使用 -qscale 0 來(lái)保留原始的視頻質(zhì)量:

ffmpeg -i video_input.wav -qscale 0 video_output.mp4

進(jìn)一步,你可以指定編碼器,使用 -c:a (音頻) 和 g-c:v (視頻) 來(lái)指定編碼器名稱(chēng),或者寫(xiě) copy 來(lái)使用與源文件相同的編碼器:

ffmpeg -i video_input.mp4 -c:v copy -c:a libvorbis video_output.avi

Note: 這樣做會(huì)讓文件后綴使人困惑,所以請(qǐng)避免這么做。

3. 從視頻中抽取音頻

為了從視頻文件中抽取音頻,直接加一個(gè) -vn 參數(shù)就可以了:

ffmpeg -i video.mp4 -vn audio.mp3

這會(huì)讓命令復(fù)用原有文件的比特率,一般來(lái)說(shuō),使用 -ab (音頻比特率)來(lái)指定編碼比特率是比較好的:

ffmpeg -i video.mp4 -vn -ab 128k audio.mp3

一些常見(jiàn)的比特率有 96k, 128k, 192k, 256k, 320k (mp3也可以使用最高的比特率)。

其他的一些常用的參數(shù)比如 -ar (采樣率: 22050, 441000, 48000), -ac (聲道數(shù)), -f (音頻格式, 通常會(huì)自動(dòng)識(shí)別的). -ab 也可以使用 -b:a 來(lái)替代. 比如:

ffmpeg -i video.mov -vn -ar 44100 -ac 2 -b:a 128k -f mp3 audio.mp3

4. 讓視頻靜音

和之前的要求類(lèi)似,我們可以使用 -an 來(lái)獲得純視頻(之前是 -vn).

ffmpeg -i video_input.mp4 -an -video_output.mp4

Note: 這個(gè) -an 標(biāo)記會(huì)讓所有的音頻參數(shù)無(wú)效,因?yàn)樽詈鬀](méi)有音頻會(huì)產(chǎn)生。

5. 從視頻中提取圖片

這個(gè)功能可能對(duì)很多人都挺有用,比如你可能有一些幻燈片,你想從里面提取所有的圖片,那么下面這個(gè)命令就能幫你:

ffmpeg -i video.mp4 -r 1 -f image2 image-%3d.png

我們來(lái)解釋一下這個(gè)命令:

-r 代表了幀率(一秒內(nèi)導(dǎo)出多少?gòu)垐D像,默認(rèn)25), -f 代表了輸出格式(image2 實(shí)際上上 image2 序列的意思)。

最后一個(gè)參數(shù) (輸出文件) 有一個(gè)有趣的命名:它使用 %3d 來(lái)指示輸出的圖片有三位數(shù)字 (000, 001, 等等.)。你也可以用 %2d (兩位數(shù)字) 或者 %4d (4位數(shù)字) ,只要你愿意,你可以隨便實(shí)驗(yàn) 一下可以怎么寫(xiě)!

Note: 同樣也有將圖片轉(zhuǎn)變?yōu)橐曨l/幻燈片的方式,下面的高級(jí)應(yīng)用中會(huì)講到。

6. 更改視頻分辨率或長(zhǎng)寬比

對(duì) ffmpeg 來(lái)說(shuō)又是個(gè)簡(jiǎn)單的任務(wù),你只需要使用 -s 參數(shù)來(lái)縮放視頻就行了:

ffmpeg -i video_input.mov -s 1024x576 video_output.mp4

同時(shí),你可能需要使用 -c:a 來(lái)保證音頻編碼是正確的:

ffmpeg -i video_input.h264 -s 640x480 -c:a video_output.mov

你也可是使用**-aspect** 來(lái)更改長(zhǎng)寬比:

ffmpeg -i video_input.mp4 -aspect 4:3 video_output.mp4

Note: 在高級(jí)應(yīng)用中還會(huì)提到更強(qiáng)大的方法

7. 為音頻增加封面圖片

有個(gè)很棒的方法把音頻變成視頻,全程使用一張圖片(比如專(zhuān)輯封面)。當(dāng)你想往某個(gè)網(wǎng)站上傳音頻,但那個(gè)網(wǎng)站又僅接受視頻(比如YouTube, Facebook等)的情況下會(huì)非常有用。

下面是例子:

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

只要改一下編碼設(shè)置 (-c:v 是 視頻編碼, -c:a 是音頻編碼) 和文件的名稱(chēng)就能用了。

Note: 如果你使用一個(gè)較新的ffmpeg版本(4.x),你就可以不指定 -strict experimental

8. 為視頻增加字幕

另一個(gè)常見(jiàn)又很容易實(shí)現(xiàn)的要求是給視頻增加字母,比如一部外文電源,使用下面的命令:

ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4

當(dāng)然,你可以指定自己的編碼器和任何其他的音頻視頻參數(shù)。你可以閱讀這篇文章來(lái)了解字幕相關(guān)內(nèi)容 editing subtitles in Linux 。

9. 壓縮媒體文件

壓縮文件可以極大減少文件的體積,節(jié)約存儲(chǔ)空間,這對(duì)于文件傳輸尤為重要。通過(guò)ffmepg,有好幾個(gè)方法來(lái)壓縮文件體積。

Note: 文件壓縮的太厲害會(huì)讓文件質(zhì)量顯著降低。

首先,對(duì)于音頻文件,可以通過(guò)降低比特率(使用 -b:a-ab):

ffmpeg -i audio_input.mp3 -ab 128k audio_output.mp3
ffmpeg -i audio_input.mp3 -b:a 192k audio_output.mp3

再次重申,一些常用的比特率有: 96k, 112k, 128k, 160k, 192k, 256k, 320k.值越大,文件所需要的體積就越大。

對(duì)于視頻文件,選項(xiàng)就多了,一個(gè)簡(jiǎn)單的方法是通過(guò)降低視頻比特率 (通過(guò) -b:v):

ffmpeg -i video_input.mp4 -b:v 1000k -bufsize 1000k video_output.mp4

Note: 視頻的比特率和音頻是不同的(一般要大得多)。

你也可以使用 -crf 參數(shù) (恒定質(zhì)量因子). 較小的crf 意味著較大的碼率。同時(shí)使用 libx264 編碼器也有助于減小文件體積。這里有個(gè)例子,壓縮的不錯(cuò),質(zhì)量也不會(huì)顯著變化:

ffmpeg -i video_input.mp4 -c:v libx264 -crf 28 video_output.mp4

crf 設(shè)置為20 到 30 是最常見(jiàn)的,不過(guò)您也可以嘗試一些其他的值。

降低幀率在有些情況下也能有效(不過(guò)這往往讓視頻看起來(lái)很卡):

ffmpeg -i video_input.mp4 -r 24 video_output.mp4

-r 指示了幀率 (這里是 24)。

你還可以通過(guò)壓縮音頻來(lái)降低視頻文件的體積,比如設(shè)置為立體聲或者降低比特率:

ffmpeg -i video_input.mp4 -c:v libx264 -ac 2 -c:a aac -strict -2 -b:a 128k -crf 28 video_output.mp4

Note: -strict -2-ac 2 是來(lái)處理立體聲部分的。

10. 裁剪媒體文件(基礎(chǔ))

想要從開(kāi)頭開(kāi)始剪輯一部分,使用T -t 參數(shù)來(lái)指定一個(gè)時(shí)間:

ffmpeg -i input_video.mp4 -t 5 output_video.mp4 
ffmpeg -i input_audio.wav -t 00:00:05 output_audio.wav

這個(gè)參數(shù)對(duì)音頻和視頻都適用,上面兩個(gè)命令做了類(lèi)似的事情:保存一段5s的輸出文件(文件開(kāi)頭開(kāi)始算)。上面使用了兩種不同的表示時(shí)間的方式,一個(gè)單純的數(shù)字(描述)或者 HH:MM:SS (小時(shí), 分鐘, 秒). 第二種方式實(shí)際上指示了結(jié)束時(shí)間。

也可以通過(guò) -ss 給出一個(gè)開(kāi)始時(shí)間,-to 給出結(jié)束時(shí)間:

ffmpeg -i input_audio.mp3 -ss 00:01:14 output_audio.mp3
ffmpeg -i input_audio.wav -ss 00:00:30 -t 10 output_audio.wav 
ffmpeg -i input_video.h264 -ss 00:01:30 -to 00:01:40 output_video.h264 
ffmpeg -i input_audio.ogg -ss 5 output_audio.ogg

可以看到 開(kāi)始時(shí)間 (-ss HH:MM:SS), 持續(xù)秒數(shù) (-t duration), 結(jié)束時(shí)間 (-to HH:MM:SS), 和開(kāi)始秒數(shù) (-s duration)的用法.

你可以在媒體文件的任何部分使用這些命令。

ffmpeg: 高級(jí)使用

現(xiàn)在該開(kāi)始講述一些高級(jí)的特性了(比如截屏等),讓我們開(kāi)始吧。

1. 分割媒體文件

前面已經(jīng)講述了如何裁剪文件,那么如何分割媒體文件呢?只需要為每個(gè)輸出文件分別指定開(kāi)始時(shí)間、結(jié)束或者持續(xù)時(shí)間就可以了。

看下面這個(gè)例子:

ffmpeg -i video.mp4 -t 00:00:30 video_1.mp4 -ss 00:00:30 video_2.mp4

語(yǔ)法很簡(jiǎn)單,為第一個(gè)文件指定了 -t 00:00:30 作為持續(xù)時(shí)間(第一個(gè)部分是原始文件的前30秒內(nèi)容),然后指定接下來(lái)的所有內(nèi)容作為第二個(gè)文件(從第一部分的結(jié)束時(shí)間開(kāi)始,也就是 00:00:30)。

你可以任意指定多少個(gè)部分,嘗試一下吧,這個(gè)功能真的很厲害,同時(shí)它也適用用音頻文件。

2. 拼接媒體文件

ffmpeg 也可以進(jìn)行相反的動(dòng)作:把多個(gè)文件合在一起。

為了實(shí)現(xiàn)這一點(diǎn),你得用自己順手的編輯器來(lái)創(chuàng)建一個(gè)文本文件。

因?yàn)槲蚁矚g使用終端,所以這里我用了 touchvim. 文件名無(wú)關(guān)緊要,這里我用 touch 命令創(chuàng)建 video_to_join.txt 文件:

touch videos_to_join.txt

現(xiàn)在,使用 vim 編輯它:

vim videos_to_join.txt

你可以使用任何你喜歡的工具,比如nano,gedit等等。

在文件內(nèi)容中, 輸入您想拼接的文件的完整路徑(文件會(huì)按照順序拼合在一起),一行一個(gè)文件。確保他們擁有相同的后綴名。下面是我的例子:

/home/ubuntu/Desktop/video_1.mp4
/home/ubuntu/Desktop/video_2.mp4
/home/ubuntu/Desktop/video_3.mp4

保存這個(gè)文件,同樣這個(gè)方法適用與任何音頻或者視頻文件。

然后使用下面的命令:

ffmpeg -f concat -i join.txt output.mp4

Note: 使用的輸出文件的名稱(chēng)是 output.mp4, 因?yàn)槲业妮斎胛募际莔p4的 。

這樣,你 videos_to_join.txt 里的所有文件都會(huì)被拼接成一個(gè)獨(dú)立的文件了。

3. 將圖片轉(zhuǎn)變?yōu)橐曨l

這會(huì)告訴你如何將圖片變成幻燈片秀,同時(shí)也會(huì)告訴你如何加上音頻。

首先我建議您將所有的圖片放到一個(gè)文件夾下面,我把它們放到了 my_photos 里,同時(shí)圖片的后綴名最好是 .png 或者 .jpg, 不管選那個(gè),他們應(yīng)該是同一個(gè)后綴名,否則ffmpeg可能會(huì)工作的不正常,您可以很方便的把 .png 轉(zhuǎn)變?yōu)?.jpg (或者倒過(guò)來(lái)也行)。

我們這次轉(zhuǎn)換的格式 (-f) 應(yīng)該被設(shè)置為 image2pipe. 你必須使用使用連詞符()來(lái)指明輸入。 image2pipe 允許你使用管道 (在命令間使用 |)的結(jié)果而不是文件作為ffmpeg的輸入。命令結(jié)果便是將所有圖片的內(nèi)容逐個(gè)輸出,還要注意指明視頻編碼器是 copy (-c:v copy) 以正確使用圖片輸入:

cat my_photos/* | ffmpeg -f image2pipe -i - -c:v copy video.mkv

如果你播放這個(gè)文件,你可能會(huì)覺(jué)得只有一部分圖片被加入了,事實(shí)上所有的圖片都在,但是ffmpeg 播放它們的時(shí)候太快了,默認(rèn)是23fps,一秒播放了23張圖片。

你應(yīng)該指定幀率 (-framerate) :

cat my_photos/* | ffmpeg -framerate 1 -f image2pipe -i - -c:v copy video.mkv

在這個(gè)例子里,把幀率設(shè)置為1,也就是每幀(每張圖)會(huì)顯示1秒。

為了加一些聲音,可以使用音頻文件作為輸入 (-i audo_file) 并且設(shè)定copy音頻編碼 (-c:a copy). 你可以同時(shí)為音頻和視頻設(shè)定編碼器,在輸出文件前設(shè)置就可以了。你要計(jì)算一下音頻文件的長(zhǎng)度和圖片張數(shù),已確定合適的幀率。比如我的音頻文件是22秒,圖片有9張,那么幀率應(yīng)該是 9 / 22 大約0.4,所以我這么輸入命令:

cat my_photos/* | ffmpeg -framerate 0.40 -f image2pipe -i - -i audio.wav -c copy video.mkv

4. 錄制屏幕

通過(guò) ffmpeg 錄制屏幕同樣沒(méi)有困難的,將格式(-f) 設(shè)定為x11grab. 他就會(huì)抓取你的XSERVER. 輸入的話可以這是屏幕編號(hào)(一般都是0:0). 抓取是從左上角開(kāi)始計(jì)算的,可以指定屏幕分辨率 (-s). 我的屏幕是 1920×1080. 注意屏幕分辨率硬在輸入之前指定t:

ffmpeg -f x11grab -s 1920x1080 -i :0.0 output.mp4

q 或者 CTRL+C 以結(jié)束錄制屏幕。

小技巧:你可以通過(guò)命令獲得真實(shí)的分辨率而不是寫(xiě)死一個(gè)固定的大小

-s $(xdpyinfo | grep dimensions | awk '{print $2;}')

完整的命令這么寫(xiě):

ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 output.mp4

5. 錄制攝像頭

從攝像頭錄制就更簡(jiǎn)單了,linux上設(shè)備都是在/dev中的,比如 /dev/video0, /dev/video1, etc.:

ffmpeg -i /dev/video0 output.mkv

同樣, q 或者 CTRL+C 來(lái)結(jié)束錄制。

6. 錄制聲音

Linux上同時(shí)是使用 ALSApulseaudio 來(lái)處理聲音的。 ffmpeg 可以錄制兩者,不過(guò)我要特別說(shuō)明 pulseaudio, 因?yàn)?Debian 系列的發(fā)行版默認(rèn)用了它。命令如下:

pulseaudio, 你必須強(qiáng)制指定(-f) alsa 然后指定 default 作為輸入t (-i default):

ffmpeg -f alsa -i default output.mp3

Note: 在你系統(tǒng)音頻設(shè)置里,應(yīng)該能看到默認(rèn)的錄音設(shè)備。

我經(jīng)常玩吉他,我平時(shí)使用一個(gè)專(zhuān)業(yè)音頻設(shè)備才能錄制聲音,當(dāng)我發(fā)現(xiàn)ffmpeg也可以很輕松的錄制的時(shí)候頗為驚訝。

錄制小貼士

對(duì)于錄制任務(wù)來(lái)說(shuō),通常都需要指定編碼器以及幀率,之前講過(guò)的參數(shù)當(dāng)然也可以用到這里來(lái)!

ffmpeg -i /dev/video0 -f alsa -i default -c:v libx264 -c:a flac -r 30 output.mkv

有時(shí)候不直接錄音,而是在錄屏/錄像的時(shí)候給一個(gè)音頻文件,那么可以這么做:

ffmpeg -f x11grab -s $(xdpyinfo | grep dimensions | awk '{print $2;}') -i :0.0 -i audio.wav -c:a copy output.mp4

Note: ffmpeg 使用片段錄取,所有有時(shí)候非常短的錄制可能不會(huì)保存文件。我建議錄地可以稍微長(zhǎng)一些(然后后期裁剪),已保證錄制的文件成功寫(xiě)到磁盤(pán)上。

ffmpeg中的過(guò)濾器的基本使用

過(guò)濾器ffmpeg 中最為強(qiáng)大的功能。在ffmepg中有數(shù)不甚數(shù)的過(guò)濾器存在,可以滿(mǎn)足各種編輯需要。因?yàn)檫^(guò)濾器實(shí)在太多了,這里只會(huì)簡(jiǎn)單講述幾個(gè)常用的。

使用 過(guò)濾的基本結(jié)構(gòu)是:

ffmpeg -i input.mp4 -vf "filter=setting_1=value_1:setting_2=value_2,etc" output.mp4
ffmpeg -i input.wav -af "filter=setting_1=value_1:setting_2=value_2,etc" output.wav

可以指定視頻過(guò)濾器 (-vf, -filter:v的簡(jiǎn)寫(xiě)) 和 音頻過(guò)濾器 (-af, -filter:a的簡(jiǎn)寫(xiě)). 過(guò)濾器的內(nèi)容寫(xiě)到雙引號(hào)里面 () 并且可以使用逗號(hào)(,)連接。你可以使用任意數(shù)量的過(guò)濾器(我寫(xiě)了個(gè)etc代表更多的,這不是做一個(gè)真實(shí)的過(guò)濾器)。

過(guò)濾器設(shè)定的通常格式是:

filter=setting_2=value_2:setting_2=value_2

過(guò)濾器不同的值使用冒號(hào)分割。

你甚至可以在值里面使用進(jìn)行數(shù)學(xué)符號(hào)計(jì)算。

Note: 參考 ***ffmpeg 過(guò)濾器手冊(cè)****.*查看更多高級(jí)用法

這里舉幾個(gè)例子來(lái)說(shuō)明視頻和音頻的過(guò)濾器。

1. 視頻縮放

這是個(gè)簡(jiǎn)單過(guò)濾器,設(shè)定里只有 widthheight:

ffmpeg -i input.mp4 -vf "scale=w=800:h=600" output.mp4

我說(shuō)過(guò)你可以使用數(shù)學(xué)運(yùn)算來(lái)給值:

ffmpeg -i input.mkv -vf "scale=w=1/2*in_w:h=1/2*in_h" output.mkv

很明顯,這個(gè)命令讓輸入的尺寸變成了輸入尺寸(in_w, in_h)的1/2.

2. 視頻裁剪

類(lèi)似縮放,這個(gè)設(shè)定也有 widthheight ,另外可以指定裁剪的原點(diǎn)(默認(rèn)是視頻的中心)

ffmpeg -i input.mp4 -vf "crop=w=1280:h=720:x=0:y=0" output.mp4
ffmpeg -i input.mkv -vf "crop=w=400:h=400" output.mkv

第二個(gè)命令裁剪原點(diǎn)是視頻的中心點(diǎn)(因?yàn)槲覜](méi)有給x和y坐標(biāo)),第一個(gè)命令會(huì)從左上角開(kāi)始裁剪 (x=0:y=0).

這里也有一個(gè)使用數(shù)學(xué)計(jì)算的例子:

ffmpeg -i input.mkv -vf "crop=w=3/4*in_w:h=3/4*in_h" output.mkv

這會(huì)把視頻裁剪剩下原大小的3/4/。

3. 視頻旋轉(zhuǎn)

你可以指定一個(gè)弧度,順時(shí)針旋轉(zhuǎn)視頻。為了讓計(jì)算簡(jiǎn)單一些,你可以給角度然后乘以 PI/180:

ffmpeg -i input.avi -vf "rotate=90*PI/180"
ffmpeg -i input.mp4 -vf "rotate=PI"

第一個(gè)命令將視頻順時(shí)針旋轉(zhuǎn)90°,第二個(gè)則是上下顛倒了視頻(翻轉(zhuǎn)了180°)。

4. 音頻聲道重映射

有的時(shí)候,你的音頻只有右耳可以聽(tīng)到聲音,那么這個(gè)功能就很有用了。你可以讓聲音同時(shí)在左右聲道出現(xiàn):

ffmpeg -i input.mp3 -af "channelmap=1-0|1-1" output.mp3

這將右聲道(1)同時(shí)映射到左(0)右(1)兩個(gè)聲道(左邊的數(shù)字是輸入,右邊的數(shù)字是輸出)。

5. 更改音量

你可以將音量大小乘以一個(gè)實(shí)數(shù)(可以是整數(shù)也可以不是),你只需要給出那個(gè)數(shù)大小就行了。

ffmpeg -i input.wav -af "volume=1.5" output.wav
ffmpeg -i input.ogg -af "volume=0.75" output.ogg

第一個(gè)將音量變?yōu)?.5倍,第二個(gè)則讓音量變成了原來(lái)的1/4那么安靜。

技巧:更改播放速度

這里會(huì)介紹視頻(不影響音頻)和音頻的過(guò)濾器。

  1. 視頻

視頻過(guò)濾器是 setpts (PTS = presentation time stamp). 這個(gè)參數(shù)以一種有趣的方式工作,因?yàn)槲覀冃薷牡氖荘TS,所以較大的數(shù)值意味著較慢的播放速度,反之亦然:

ffmpeg -i input.mkv -vf "setpts=0.5*PTS" output.mkv
ffmpeg -i input.mp4 -vf "setpts=2*PTS" output,mp4

第一個(gè)命令讓播放速度加倍了,第二個(gè)則是讓播放速度降低了一半。

2. 音頻

這里的過(guò)濾器是 atempo. 這里有個(gè)限制,它只接受 0.5(半速) 到 2 (倍速)之間的值。為了越過(guò)這個(gè)限制,你可以鏈?zhǔn)绞褂眠@個(gè)過(guò)濾器:

ffmpeg -i input.wav -af "atempo=0.75" output.wav
ffmpeg -i input.mp3 -af "atempo=2.0,atempo=2.0" ouutput.mp3

第一個(gè)命令讓音頻速度慢了1/4,第二個(gè)則是加速到原來(lái)的4(2*2)倍。

Note: 如果想在同一個(gè)命令中同時(shí)修改視頻和音頻的速度,你得查看一下 filtergraphs.

小結(jié)

在這個(gè)手冊(cè)中,我講述了安裝、基本的使用、高級(jí)的使用和一些過(guò)濾器的基礎(chǔ)。

我希望這對(duì)于一些嘗試使用ffmpeg的人,或者希望使用ffmpeg做很多工作的人來(lái)說(shuō)是個(gè)有用的資源,ffmepg真的是個(gè)多功能又極其好用的工具。


當(dāng)前文章:Linux下安裝多媒體處理工具FFmpeg
當(dāng)前URL:http://m.5511xx.com/article/djocopg.html