Try   HackMD

[FFmpeg] 影音加減速

視訊加速

要改變視訊串流的速度可以透過指定不同的輸入 FPS 或是使用 setpts filter。由於音訊串流的速度並不會被改變,所以建議使用 -an 來禁音訊串流。

將 24000/1001 (23.976) fps 的輸入影片加速2倍:

ffmpeg -r 48000/1001 -i input.mkv -an output.mkv

以上範例會得到輸出片源兩倍 fps 的影片,如果要得到較小的輸出 fps,可以手動指定輸出 fps。

將 24000/1001 (23.976) fps 的輸入影片加速2倍並維持 fps 不變:

ffmpeg -r 48000/1001 -i input.mkv -an -r "24000/1001" output.mkv

使用 setpts filter 將任意輸入影片加速2倍:

ffmpeg -i input.mkv -an -filter:v "setpts=1/2*PTS" output.mkv
ffmpeg -i input.mkv -an -filter:v "setpts=0.5*PTS" output.mkv

音訊加速

要改變音訊串流的速度可以使用 atempo filter (設定值可用範圍為 0.5 - 2.0)。由於視訊串流的速度並不會被改變,所以建議使用 -vn 來禁用視訊串流。

將任意輸入音訊加速2倍:

ffmpeg -i input.mkv -vn -filter:a "atempo=2.0" output.mkv

將任意輸入音訊加速4倍:

ffmpeg -i input.mkv -vn -filter:a "atempo=2.0,atempo=2.0" output.mkv

同時加速視音訊

若要加速視音訊可以同時使用 setptsatempo filter。

將任意視音訊速度加速2倍:

ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" -filter:a "atempo=2.0" output.mkv

承上,使用複雜型式篩選器流程圖:

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