我找到了这个例子
ffmpeg -i input.mkv -filter:v "setpts=0.5*PTS" output.mkv
Run Code Online (Sandbox Code Playgroud)
但我有一个视频,我想将速度提高 60 倍,而不仅仅是 2 倍。
Gya*_*yan 79
只需乘以速度系数的倒数即可。
ffmpeg -i input.mkv -filter:v "setpts=PTS/60" output.mkv
Run Code Online (Sandbox Code Playgroud)
这不会影响音频速度。使用-an忽略音频。
一种更快的方法,但可能会产生意外的音频结果(暂停或异步):
ffmpeg -itsscale 0.01666 -i input.mkv -c copy output.mkv
Run Code Online (Sandbox Code Playgroud)
其中0.01666是1/60十进制表示。
dop*_*xxx 19
如果您还想加快音频速度,则需要执行以下操作:
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2[a]" -map "[v]" -map "[a]" output.mkv
Run Code Online (Sandbox Code Playgroud)
文档:https : //trac.ffmpeg.org/wiki/How%20to%20speed%20up%20/%20slow%20down%20a%20video
如果您想将速度乘以 2,则上述命令有效。如果要乘以任何x(0到2之间),参数变为:
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=<1/x>*PTS[v];[0:a]atempo=<x>[a]" -map "[v]" -map "[a]" output.mkv
Run Code Online (Sandbox Code Playgroud)
例如,如果你想乘以 1.15,命令是
ffmpeg -i input.mkv -filter_complex "[0:v]setpts=0.87*PTS[v];[0:a]atempo=1.15[a]" -map "[v]" -map "[a]" output.mkv
Run Code Online (Sandbox Code Playgroud)
ffmpeg -i input.mkv -filter:v "setpts=PTS/60" -an output.mkv
Run Code Online (Sandbox Code Playgroud)
setpts=PTS/60将每帧的呈现时间戳除以 60。-an删除音频。ffmpeg -i input.mkv -filter:v "setpts=PTS/60,fps=24" -an output.mkv
Run Code Online (Sandbox Code Playgroud)
setpts=PTS/60将每帧的呈现时间戳除以 60。fps=24每秒输出 24 帧。-an删除音频。我也想多次加速音频和视频,超过 2 倍。对于 60 倍速度,请执行以下操作。它可能有点冗长,但效果很好。问题是速度不能大于 2 或小于 0.5,所以我们必须多次重复速度才能使声音达到我们想要的速度。
ffmpeg -i input.mkv -filter:v "setpts=PTS/60" -filter:a "atempo=2,atempo=2,atempo=2,atempo=2,atempo=2,atempo=1.875" output.mkv
Run Code Online (Sandbox Code Playgroud)
按 Ctrl+Shift+I,然后单击“控制台”选项卡。然后,将此代码复制并粘贴到控制台中。在 Chrome 中,单击蓝色箭头的右侧。在 Firefox 中,allow pasting在控制台中输入以允许复制'n'粘贴。然后,按Enter运行以下JS代码生成其他速度。该代码还适用于放慢视频速度。
var speed=eval(prompt("Enter speed up or slowdown factor (>1 is speedup, " +
"<1 is slowdown; can use 1/X for slowdown): ", "60"));
var k=speed, audio="";
while (2 < k && k === k) k /= 2, audio+="atempo=2,";
while (k < 0.5 && k === k) k *= 2, audio+="atempo=0.5,";
audio += "atempo=" + k;
prompt(
"Copy the following commandline: ",
'ffmpeg -i input.mkv -filter:v "setpts=PTS/' + speed +
'" -filter:a "' + audio + '" output.mkv'
);
Run Code Online (Sandbox Code Playgroud)
此代码将提示您输入一个值并显示结果。进入60产生 600.1倍的加速,进入产生 10 倍的减速,进入1/30产生 30 倍的减速。我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
37428 次 |
| 最近记录: |