[教學] ffmpeg 利用指令處理影片 - 討論區

[教學] ffmpeg 利用指令處理影片

文章瀏覽次數 17844 文章回覆數 11

特種兵

特種兵圖像(預設)

2019-08-26 17:30:10

From:211.23.21.202

前言

已經有好幾個人在問 ffmpeg 處理影片的事情了

再不寫教學文要被懷疑藏私了

介紹

ffmpeg 是一個多媒體處理工具,特色是使用指令的方式來操作。

所以在linux,mac和windows都有支援。

對全盲視障者而言,軟體圖形介面本身是否可以用導讀軟體操作非常重要,功能再好,但介面有障礙也沒辦法使用。

相對指令操作沒有介面的問題,視障者跟明眼人等於是在同一個起跑點上。

而且這是一個開放原碼的自由軟體,開發者可以改程式或學習編程技巧,一般使用者可以正大光明快樂的使用。

檔案下載

在它的頁面上使用鍵盤很難點到 windows 所以附上自己的下載連結,有興趣的人可以試看看:

ffmpeg 原本的下載連結

ffmpeg 特種兵的下載連結

準備

官方版本需要選擇幾位元的程式下載,解壓縮後得到的資料夾可以搬到通常放程式的地方,並且改一個簡單的資料夾名字如 ffmpeg

特種兵的版本解壓縮後有 32 跟 64 的兩個壓縮檔,挑適合自己系統的,後續步驟同上。

因為它不用安裝,所以只要切換到該資料夾下就可以運作,想隨時使用就把路徑加到系統路徑變數中吧。

路徑的話就是進入該資料夾下的 bin 資料夾下面,它的執行檔都放在這邊。

分割影片

要開始下指令了,所以要使用命令提示字元模式,也就是 cmd 模式。

如果影片檔不是放在 bin 下面,那就要下好完整的路徑。

ffmpeg -i d:\01.avi -ss 00:05:00.00 -t 00:01:00.00 d:\02.avi

上面是說,把 01.avi 從第 5 分鐘開始切 1 分鐘,也就是 5 到 6 分鐘這一段成 02.avi

  1. ffmpeg 主程式名稱
  2. -i 後面接需要處理的影片檔名,不同地方記得加路徑,使用 \ 當分隔符號
  3. -ss 後面接開始分割影片的起始位置,格式為 時時:分分:秒秒.毫秒
  4. -t 分割的長度,注意,不是結束分割時間喔,格式同上
  5. 最後是切割成什麼檔名,也可以直接轉檔,例如附檔名變成 .mp4

那如果想要指定結束時間呢,就用 -to 這個參數

據說,把 -ss 參數放在 -i 之前的處理速度會比較快,有興趣的人可以比較看看。

其實 bin 下面還有個 ffplay 他可以用命令列播放影片,

如果能用這個播放就表示 ffmpeg 一定可以處理這個檔案。

轉檔壓縮

ffmpeg -i 01.avi 01.mp4

直接用最新技術 H.264 mp4 來轉檔

實測 1G 多的 avi 直接被壓成 100M 多的 mp4 不知畫質會不會有很大的影響

細步可以參考這篇教學,寫得更清楚:

ffmpeg 與 ffplay 處理影片教學

合併影片

上面那篇沒寫到合併影片的部分,通常我們要合併影片可能會是好幾個檔案。

那我們可以使用清單的方式把要合併的檔案列表編輯一下,直接一次合併。

合併清單的檔名隨意,這邊用 filelist.txt

格式也就是檔案內容如下:

file '03.avi'
file '04.avi'

  1. file 是關鍵字
  2. 後面接想要合併的檔名,引號要打一下,如果檔名有空格才不會失敗

編輯好後存檔,下指令合併:

ffmpeg -f concat -safe 0 -i filelist.txt -c copy 05.avi

  1. 如果檔案都在同一層, -safe 0 好像可以不用打
  2. -i 後面接檔案清單的檔名
  3. 最後放合併後產出的檔案,建議不要蓋掉原本的檔案比較保險

上面沒提到的參數都要照寫,有些我也沒仔細去查細步說明了。

其實還有很多功能,像是:

  • 邊切割邊播放
  • 把影片的瞬間轉存成圖片檔

再補上一個介紹 ffmpeg 的教學,是比較進階的

進階一點的 ffmpeg 教學

其實 google 教學一大堆,ffmpeg 很強大,還有專門的討論區在討論它的。
※最後更新時間:2019-08-28 08:56:55 From:1.161.146.160 By:特種兵

留言

#1

小羔羊

小羔羊圖像(預設)

2019-08-26 20:15:30

From:220.129.231.68

感謝特種兵,讚嘆特種兵,
本來以為影片只有明眼人能編輯,現在我們也能輕鬆剪接了

#2

小羔羊

小羔羊圖像(預設)

2019-08-26 21:25:17

From:220.129.231.68

已經成功合併影片了,就是分割的功能好像只是擷取a影片裡的某一段出來做成b檔案,似乎不能把a的某段選起來刪除,有點可惜,
或是其實有這功能,只是我不會XD

#3

審錢

審錢圖像(預設)

2019-08-27 00:17:10

From:221.169.129.157

看完特種兵的文之後,真的 叫讚嘆特種兵,也覺得自己真該死沒想辦法把命令列學好

#4

特種兵

特種兵圖像(預設)

2019-08-28 08:59:42

From:1.161.146.160

不去動原本的檔案應該比較保險
萬一沒弄好就慘了
有些東西壞掉了可就弄不回來囉
文中加入進階教學連結和指定結束時間與加快裁切影片的方法

#5

小羔羊

小羔羊圖像(預設)

2020-12-04 15:58:16

From:114.34.88.168

想請教特種兵老大,
目前我有以下需求,但網路上找不到符合需求的教學文章,查閱ffmpeg手冊內容實在太繁雜、看不太懂,
我想將wav轉avi,並且指定一張圖片,讓影片從頭到尾都能看到這張圖,
請問指令應該如何下?
檔案大小不再我的考慮,我想要的是不對音訊做壓縮,影像也能維持圖片的原有水準
感謝

#6

特種兵

特種兵圖像(預設)

2020-12-06 17:00:09

From:1.161.139.55

我也沒找到,但有一點接近的是:
合成視訊檔案和音訊檔案為一個檔案(音樂檔案和視訊檔案同時播放)
ffmpeg -i test.mpg -i aa.mp3 -r 25 video.mpg
如果把視訊檔換成圖片檔看看行不行
我沒試過

#7

小羔羊

小羔羊圖像(預設)

2020-12-06 20:19:52

From:114.34.88.168

好的,感謝,我是看看

#8

特種兵

特種兵圖像(預設)

2020-12-08 10:42:41

From:211.23.21.202

我覺得不行

#9

小羔羊

小羔羊圖像(預設)

2020-12-12 19:44:27

From:114.34.88.168

最近發現reaper做得到,真是太猛了,意外之喜

#10

陽立與

陽立與圖像(預設)

2021-03-15 03:55:52

From:114.43.45.130

回覆#6
感謝特種兵老師的教學,
最近因違要製作備審資料會需要合成影像及聲音,
但卻苦惱ffmpeg應該用什麼指令合併,在網路上搜尋的結果大多都是串接在一起的,部府和我的需求。
原本想說來這裡請教看看的,沒想到以金有解答了,真是太好了!
不過因唯我對於reaper不是非常熟悉,因此使用的方法是,
先將要使用的照片轉換成跟聲音檔相同時間的影片檔,
最後再把兩個檔案合併,雖然還不確定畫面是否真的合併了,
不過過程當中一切順利,聲音也能正常撥放,
最後只需要請人幫忙確認畫面的部分就ok了。

#11

小羔羊

小羔羊圖像(預設)

2021-03-16 07:05:37

From:114.34.88.168

rp這塊其實蠻好用,就是畫面需要確認,有相關的問題可以一起討論