slc 发表于 2019-2-25 10:35:43

如何在指定时间内加速

取前28秒做一个10秒的视频.


-ss 0 -t 28 -i /storage/emulated/0/149.mp4   -filter_complex "crop=720:576:280:32,setpts=0.1*PTS:enable='between(t,2,22)'" -crf 25 -an /storage/emulated/0/149+.mp4 -y






不想把一段视频分开几段来处理,然后再用concat来合并


孙悟空 发表于 2019-2-25 11:28:17

那就用trim atrim,setpts adelay来处理

slc 发表于 2019-2-25 11:54:16

孙悟空 发表于 2019-2-25 11:28
那就用trim atrim,setpts adelay来处理

不太懂,结果还是用巨蠢的CONCAT来完成了..

-ss 0 -t 2 -i /storage/emulated/0/149.mp4 -ss 2 -t 22 -i /storage/emulated/0/149.mp4 -ss 22 -t 6 -i /storage/emulated/0/149.mp4-filter_complex "crop=720:576:280:32,crop=720:576:280:32,setpts=0.1*PTS,crop=720:576:280:32,concat=n=3:v=1" -map "" -crf 25 -an /storage/emulated/0/149+.mp4 -y

slc 发表于 2019-2-25 11:58:08

如果有N段快进,变成了(N+N+1)个input了

1 有 3个
2 有 5个
3 有 7个

slc 发表于 2019-2-25 14:12:33

孙悟空 发表于 2019-2-25 11:28
那就用trim atrim,setpts adelay来处理

-i /storage/emulated/0/149.mp4   -filter_complex "crop=720:576:280:32,split=3,trim=0:13,setpts=PTS-STARTPTS,trim=13:85,setpts=(PTS-STARTPTS)/10,trim=85:178,setpts=PTS-STARTPTS,atrim=0:13,asetpts=PTS-STARTPTS,atrim=13:85,asetpts=PTS-STARTPTS/10,atrim=85:178,asetpts=PTS-STARTPTS,concat=n=3:v=1:a=1" -map"" -map "" -crf 25 -ab 128k /storage/emulated/0/149+.mp4 -y

试了单独视频可以,但如果用上面的把音频加上

就以下出错

Parsed_setpts_5 @ 0xb3625300] Media type mismatch between the 'Parsed_setpts_5' filter output pad 0 (video) and the 'Parsed_concat_14' filter input pad 1 (audio)
Cannot create the link setpts:0 -> concat:1
Error initializing complex filters.
Invalid argument

孙悟空 发表于 2019-12-25 16:20:14

./ffmpeg -i ~/Movies/objectC/facebook.mp4 -filter_complex "asplit=3;crop=720:576:280:32,split=3;trim=0:13,setpts=PTS-STARTPTS;trim=13:85,setpts=(PTS-STARTPTS)/10;trim=85:178,setpts=PTS-STARTPTS;atrim=0:13,asetpts=PTS-STARTPTS;atrim=13:85,asetpts=PTS-STARTPTS/10;atrim=85:178,asetpts=PTS-STARTPTS;concat=n=3:v=1:a=0;concat=n=3:v=0:a=1" -map"" -map "" -crf 25 -ab 128k 149.mp4 -y

可以试试这样的,不过音频部分可能你需要好好调调,速度不是asetpts可以搞定的,atempo可以
页: [1]
查看完整版本: 如何在指定时间内加速