---
# System prepended metadata

title: 懶人剪影片法（使用終端機指令）
tags: [實用工具]

---

---
tags: 實用工具
---
###### tags: `實用工具`
###### 撰寫日期：2020/07/22
###### 作者：Lycoris

# 懶人剪影片法（使用終端機指令）
{%hackmd BJrTq20hE %}

## 目錄
[TOC]

## 前言
當你錄了手遊影片想跟人~~炫耀~~ 分享，影片又只需要簡單的剪接+處理，懶得開剪輯軟體時，這篇就是你的好朋友。

推薦用 WSL ，檔案與 Win10 共用，不用開 Ubuntu 虛擬機，方便又快速。

## 使用環境／工具
- Win10 + WSL
- FFmpeg

## 指令
### 1. **取片段**

- 指令
需要參數：==輸入影片==、==起始時間==、==結束時間==、==輸出影片==
    ``` bash
    ffmpeg -i <輸入影片> -ss <起始時間> -to <結束時間> -acodec copy -vcodec copy <輸出影片>
    ```
- 實際範例：擷取影片 02:55 至 03:35
    ``` bash
    ffmpeg -i input.mp4 -ss 00:02:55 -to 00:03:35 -acodec copy -vcodec copy output.mp4
    ```

### [2. **倍速、減速**](https://www.mobile01.com/topicdetail.php?f=510&t=4991078)

- 指令
需要參數：==輸入影片==、==倍率倒數==、==倍率==、==輸出影片==
    ``` bash
    ffmpeg -i <輸入影片> -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" -strict -2  <輸出影片>
    ```
- 實際範例：影片、音軌皆二倍速
其中數值 0.5 為影片兩倍速；數值 2.0 為音軌兩倍速。可依需求調整成加速、減速。
    ``` bash
    ffmpeg -i input.mp4 -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" -strict -2  output.mp4
    ```

### 3. **調整影片長寬比與畫質**

- 指令
需要參數：==輸入影片==、==影片長寬比==、==位元速率==、==輸出影片==
    ``` bash
    ffmpeg -i <輸入影片> -s <影片長寬比> -vcodec libx264 -b <位元速率> -strict -2  <輸出影片>
    ```
- 實際範例：調整長寬比為720x960，位元速率為2400K
    ``` bash
    ffmpeg -i input.mp4 -s 720x960 -vcodec libx264 -b 2400000 -strict -2  output.mp4
    ```

### 4. **合併影片與聲音**

- 指令
需要參數：==輸入影片==、==輸入音檔==、==輸出影片==
    ``` bash
    ffmpeg -i <輸入影片> -i <輸入音檔> <輸出影片>
    ```
- 實際範例：**_movie_** + **_sound_** = **_output_**
    ``` bash
    ffmpeg -i movie.mp4 -i sound.mp3 output.mp4
    ```

### [5. **取出影片聲音**](https://www.mobile01.com/topicdetail.php?f=510&t=5890064)

- 指令
需要參數：==輸入影片==、==輸出音檔==
    ``` bash
    ffmpeg -i <輸入影片> -vn -acodec copy -preset ultrafast <輸出音檔>
    ```
- 實際範例：取出影片聲音為 wma 檔
    ``` bash
    ffmpeg -i input.mp4 -vn -acodec copy -preset ultrafast output.wma
    ```
- 附註：每個影片的聲音檔案格式不同，常見的為==aac==、==m4a==、==wma==、==mp3==。若使用不正確的格式取出會使音檔變質，最明顯的特徵為取出的音檔長度與影片長度不相等。

### [6. **圖片+聲音輸出成影片**](https://blog.csdn.net/StimmerLove/article/details/89405064)

- 指令
需要參數：==輸入圖片==、==輸入音檔==、==影片長寬比==、==影片長度(秒)==、==輸出影片==
    ``` bash
    ffmpeg -r 15 -f image2 -loop 1 -i <輸入圖片> -i <輸入音檔> -s <影片長寬比> -pix_fmt yuvj420p -t <影片長度(秒)> -vcodec libx264 <輸出影片>
    ```
- 實際範例：合併為 1920x1080、長度60秒的影片
    ``` bash
    ffmpeg -r 15 -f image2 -loop 1 -i picture.png -i sound.mp3 -s 1920x1080 -pix_fmt yuvj420p -t 60 -vcodec libx264 output.mp4
    ```

### [7. **影片淡出最後1秒的音效**](http://hk.uwenku.com/question/p-ygcptsrp-pc.html)

- 指令
需要參數：==輸入影片==、==影片長-1==、==輸出影片==
    ``` bash
    ffmpeg -i <輸入影片> \ 
        -filter_complex \ 
         "[0:v]fade=t=out:st=<影片長-1>:d=1[v]; \ 
         [0:a]afade=t=out:st=<影片長-1>:d=1[a]" \ 
        -map "[v]" -map "[a]" <輸出影片> 
    ```
- 實際範例：淡出長度60秒影片的最後一秒
    ``` bash
    ffmpeg -i input.mp4 \ 
        -filter_complex \ 
         "[0:v]fade=t=out:st=59:d=1[v]; \ 
         [0:a]afade=t=out:st=59:d=1[a]" \ 
        -map "[v]" -map "[a]" output.mp4 
    ```
- 附註：還沒試過影片淡出最後2秒音效的參數，~~待別人測試~~

### [8. **切割影片畫面**](https://shipengliang.com/software-exp/ffmpeg-%E8%A3%81%E5%89%AA%E8%A7%86%E9%A2%91%E7%94%BB%E9%9D%A2.html)

- 指令
需要參數：==輸入影片==、==保留寬度==、==保留高度==、==起始x座標==、==起始y座標==、==輸出影片==
    ``` bash
    ffmpeg -i <輸入影片> -vf crop=<保留寬度>:<保留高度>:<起始x座標>:<起始y座標> -threads 5 -preset ultrafast -strict -2 <輸出影片>
    ```
- 實際範例：將 1920x1080 的影片畫面切成剩左邊一半
    ``` bash
    ffmpeg -i input.mp4 -vf crop=960:1080:0:0 -threads 5 -preset ultrafast -strict -2 output.mp4
    ```

### [9. **影片轉gif**](https://blog.csdn.net/lj402159806/article/details/54837637)

- 指令
需要參數：==起始時間==、==結束時間==、==輸入影片==、==輸出長寬比==、==gif幀數==、==輸出gif==
    ``` bash
    ffmpeg -ss <起始時間> -t <結束時間> -i <輸入影片> -s <輸出長寬比> -r <gif幀數> <輸出gif>
    ```
- 實際範例：將第0至5秒的影片片段製成gif，gif大小為 150x150、幀數為15
    ``` bash
    ffmpeg -ss 00:00:00 -t 00:00:05 -i input.mp4 -s 150x150 -r 15 output.gif
    ```

