FFmpeg對音頻、視頻播放速度的調整的原理不一樣。下面簡單的說一下各自的原理及實現方式:
一、調整視頻速率
調整視頻速率的原理為:修改視頻的pts,dts
實現:
ffmpeg -i input.mkv -an -filter:v "setpts=0.5*PTS" output.mkv
注意:視頻調整的速度倍率范圍為:[0.25, 4]
如果只調整視頻的話最好把音頻禁掉。
對視頻進行加速時,如果不想丟幀,可以用-r 參數指定輸出視頻FPS,方法如下:
ffmpeg -i input.mkv -an -r 60 -filter:v "setpts=2.0*PTS" output.mkv
二、調整音頻速率
調整視頻速率的原理為:簡單的方法是調整音頻采樣率,但是這種方法會改變音色, 一般采用通過對原音進行重采樣,差值等方法。
ffmpeg -i input.mkv -filter:a "atempo=2.0" -vn output.mkv
注意:倍率調整范圍為[0.5, 2.0]
如果需要調整4倍可采用以下方法:
ffmpeg -i input.mkv -filter:a "atempo=2.0,atempo=2.0" -vn 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
三、參考文獻
http://trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video