# [FFmpeg] 影音加減速 ## 視訊加速 要改變視訊串流的速度可以透過指定不同的輸入 FPS 或是使用 `setpts` filter。由於音訊串流的速度並不會被改變,所以建議使用 `-an` 來禁音訊串流。 將 24000/1001 (23.976) fps 的輸入影片加速2倍: ```powershell ffmpeg -r 48000/1001 -i input.mkv -an output.mkv ``` 以上範例會得到輸出片源兩倍 fps 的影片,如果要得到較小的輸出 fps,可以手動指定輸出 fps。 將 24000/1001 (23.976) fps 的輸入影片加速2倍並維持 fps 不變: ```powershell ffmpeg -r 48000/1001 -i input.mkv -an -r "24000/1001" output.mkv ``` 使用 `setpts` filter 將任意輸入影片加速2倍: ```powershell ffmpeg -i input.mkv -an -filter:v "setpts=1/2*PTS" output.mkv ``` ```powershell ffmpeg -i input.mkv -an -filter:v "setpts=0.5*PTS" output.mkv ``` ## 音訊加速 要改變音訊串流的速度可以使用 `atempo` filter (設定值可用範圍為 0.5 - 2.0)。由於視訊串流的速度並不會被改變,所以建議使用 `-vn` 來禁用視訊串流。 將任意輸入音訊加速2倍: ```powershell ffmpeg -i input.mkv -vn -filter:a "atempo=2.0" output.mkv ``` 將任意輸入音訊加速4倍: ```powershell ffmpeg -i input.mkv -vn -filter:a "atempo=2.0,atempo=2.0" output.mkv ``` ## 同時加速視音訊 若要加速視音訊可以同時使用 `setpts` 與 `atempo` filter。 將任意視音訊速度加速2倍: ```powershell ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" output.mkv ``` 承上,使用複雜型式篩選器流程圖: ```powershell ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" output.mkv ``` ###### tags: `ffmpeg`