---
# System prepended metadata

title: FFMPEG 使用心得

---

# FFMPEG 使用心得
{%hackmd BJrTq20hE %}
### 下載及安裝
網址:https://www.ffmpeg.org/
點下載
![](https://i.imgur.com/YC0RgCS.png)
選系統 我就選windows
![](https://i.imgur.com/q7brybG.png)
選版本 你的作業系統位元 還有軟體的版本
![](https://i.imgur.com/7GcKis5.png)
複製解壓縮後的bin路徑
![](https://i.imgur.com/2wC65eb.png)
打開控制台，進入環境變數把剛剛複製的路徑新增到path裡面
![](https://i.imgur.com/2t8ezXb.png)

### 常用指令

#### 分割影片基本語法

```
ffmpeg -i source.mp4 -ss 00:00:00.00 -t 00:00:00.00 output.mp4

前面是開始的時間，後面是這個影片要多久的時間
```
#### 合併影片

```
(echo file 'first file.mp4' & echo file 'second file.mp4' )>list.txt
ffmpeg -safe 0 -f concat -i list.txt -c copy output.mp4
```
#### 將影片製作成縮時影片
```
ffmpeg -i input.mp4 -filter:v "setpts=0.5*PTS" -an output.mp4

其中去調整setpts的值就可以設定影片的長度，越小縮時越快
```
#### 合成影片及聲音
```
ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv
```

### 合併影片後時間長度錯誤 (concat makes video longer)
#### 說明:
我在利用 ffmpeg 合併影片的時候不管有沒有發生錯誤，最後合併成功的影片都會變成1小時以上。

後來參考下面網址內的說明才發現問題。
https://lists.ffmpeg.org/pipermail/ffmpeg-user/2017-September/037154.html

這個說明指出問題是 tbn 不正確，如果要合併影片的話，合併會參考的 tbn 會是第一個影片的 tbn，我們要確保後面影片的 tbn 也要相同。

tbn 的說明可以參考下方網址的內容。
https://www.jianshu.com/p/bfec3e6d3ec8

#### 找出影片的 tbn
可以透過 ```ffprobe (file name)``` 這個指令找出影片的詳細資訊。
範例是要合併兩個影片 ```output1``` 跟 ```output_second```。
```output1``` 在前 ```output_second``` 在後。

首先 output1 的資訊如下圖(tbn 為 15360):
![](https://i.imgur.com/Hk7PDZT.png)

output_second 的資訊如下圖(tbn 為 90k):
![](https://i.imgur.com/PmrJuQk.png)

透過以下指令修改 output_second 的 tbn (要改成第一個 video ```output1``` 的 tbn 15360):
```
ffmpeg -i output_second.mp4 -c copy -video_track_timescale 15360 second_new.mp4
```
修改過後的結果如下圖:
![](https://i.imgur.com/YatCnfE.png)

修改之後合併就沒有問題了。