I am trying to apply slow motion to a clip with a gradual ramp into and out of the slow motion period. I would like to apply this to both the video and the audio. I tried to separate my clip into multiple small sections, apply different setpts and atempo rates to each, and then concat them back together. This almost works except that after the slow motion period, the audio and video about 1s out of sync. The video and audio seem reasonable on their own. Is what I am trying to do not really possible with this method? Do you have any other suggestions for how to do it? ffmpeg -y -i input.mp4 -filter_complex "\ [0:v]trim=0.0:4.0,setpts=PTS-STARTPTS[v0_trim0];\ [0:v]trim=4.0:4.1,setpts=(PTS-STARTPTS)/0.95[v0_slomo0];\ [0:v]trim=4.1:4.2,setpts=(PTS-STARTPTS)/0.90[v0_slomo1];\ [0:v]trim=4.2:4.3,setpts=(PTS-STARTPTS)/0.85[v0_slomo2];\ [0:v]trim=4.3:4.4,setpts=(PTS-STARTPTS)/0.80[v0_slomo3];\ [0:v]trim=4.4:4.5,setpts=(PTS-STARTPTS)/0.75[v0_slomo4];\ [0:v]trim=4.5:4.6,setpts=(PTS-STARTPTS)/0.70[v0_slomo5];\ [0:v]trim=4.6:4.7,setpts=(PTS-STARTPTS)/0.65[v0_slomo6];\ [0:v]trim=4.7:4.8,setpts=(PTS-STARTPTS)/0.60[v0_slomo7];\ [0:v]trim=4.8:4.9,setpts=(PTS-STARTPTS)/0.55[v0_slomo8];\ [0:v]trim=4.9:6.1,setpts=(PTS-STARTPTS)/0.50[v0_slomo9];\ [0:v]trim=6.1:6.2,setpts=(PTS-STARTPTS)/0.55[v0_slomo10];\ [0:v]trim=6.2:6.3,setpts=(PTS-STARTPTS)/0.60[v0_slomo11];\ [0:v]trim=6.3:6.4,setpts=(PTS-STARTPTS)/0.65[v0_slomo12];\ [0:v]trim=6.4:6.5,setpts=(PTS-STARTPTS)/0.70[v0_slomo13];\ [0:v]trim=6.5:6.6,setpts=(PTS-STARTPTS)/0.75[v0_slomo14];\ [0:v]trim=6.6:6.7,setpts=(PTS-STARTPTS)/0.80[v0_slomo15];\ [0:v]trim=6.7:6.8,setpts=(PTS-STARTPTS)/0.85[v0_slomo16];\ [0:v]trim=6.8:6.9,setpts=(PTS-STARTPTS)/0.90[v0_slomo17];\ [0:v]trim=6.9:7.0,setpts=(PTS-STARTPTS)/0.95[v0_slomo18];\ [0:v]trim=7.0:15.0,setpts=PTS-STARTPTS[v0_trim2];\ \ [0:a]atrim=0.0:4.0,asetpts=PTS-STARTPTS[a0_trim0];\ [0:a]atrim=4.0:4.1,asetpts=PTS-STARTPTS,atempo=0.95[a0_slomo0];\ [0:a]atrim=4.1:4.2,asetpts=PTS-STARTPTS,atempo=0.90[a0_slomo1];\ [0:a]atrim=4.2:4.3,asetpts=PTS-STARTPTS,atempo=0.85[a0_slomo2];\ [0:a]atrim=4.3:4.4,asetpts=PTS-STARTPTS,atempo=0.80[a0_slomo3];\ [0:a]atrim=4.4:4.5,asetpts=PTS-STARTPTS,atempo=0.75[a0_slomo4];\ [0:a]atrim=4.5:4.6,asetpts=PTS-STARTPTS,atempo=0.70[a0_slomo5];\ [0:a]atrim=4.6:4.7,asetpts=PTS-STARTPTS,atempo=0.65[a0_slomo6];\ [0:a]atrim=4.7:4.8,asetpts=PTS-STARTPTS,atempo=0.60[a0_slomo7];\ [0:a]atrim=4.8:4.9,asetpts=PTS-STARTPTS,atempo=0.55[a0_slomo8];\ [0:a]atrim=4.9:6.1,asetpts=PTS-STARTPTS,atempo=0.50[a0_slomo9];\ [0:a]atrim=6.1:6.2,asetpts=PTS-STARTPTS,atempo=0.55[a0_slomo10];\ [0:a]atrim=6.2:6.3,asetpts=PTS-STARTPTS,atempo=0.60[a0_slomo11];\ [0:a]atrim=6.3:6.4,asetpts=PTS-STARTPTS,atempo=0.65[a0_slomo12];\ [0:a]atrim=6.4:6.5,asetpts=PTS-STARTPTS,atempo=0.70[a0_slomo13];\ [0:a]atrim=6.5:6.6,asetpts=PTS-STARTPTS,atempo=0.75[a0_slomo14];\ [0:a]atrim=6.6:6.7,asetpts=PTS-STARTPTS,atempo=0.80[a0_slomo15];\ [0:a]atrim=6.7:6.8,asetpts=PTS-STARTPTS,atempo=0.85[a0_slomo16];\ [0:a]atrim=6.8:6.9,asetpts=PTS-STARTPTS,atempo=0.90[a0_slomo17];\ [0:a]atrim=6.9:7.0,asetpts=PTS-STARTPTS,atempo=0.95[a0_slomo18];\ [0:a]atrim=7.0:15.0,asetpts=PTS-STARTPTS[a0_trim2];\ \ [v0_trim0][v0_slomo0][v0_slomo1][v0_slomo2][v0_slomo3][v0_slomo4][v0_slomo5][v0_slomo6][v0_slomo7][v0_slomo8][v0_slomo9][v0_slomo10][v0_slomo11][v0_slomo12][v0_slomo13][v0_slomo14][v0_slomo15][v0_slomo16][v0_slomo17][v0_slomo18][v0_trim2]concat=n=21:v=1:a=0[com_v_slomo0];\ \ [a0_trim0][a0_slomo0][a0_slomo1][a0_slomo2][a0_slomo3][a0_slomo4][a0_slomo5][a0_slomo6][a0_slomo7][a0_slomo8][a0_slomo9][a0_slomo10][a0_slomo11][a0_slomo12][a0_slomo13][a0_slomo14][a0_slomo15][a0_slomo16][a0_slomo17][a0_slomo18][a0_trim2]concat=n=21:v=0:a=1[com_a_slomo0]\ " -vcodec libx264 -preset ultrafast -map [com_v_slomo0] -map [com_a_slomo0] -c:a aac -ac 2 -b:a 128k -strict -2 out.mp4 ffmpeg version 3.3 Copyright (c) 2000-2017 the FFmpeg developers built with gcc 4.9.2 (Debian 4.9.2-10) configuration: --prefix=/usr/local --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib --bindir=/usr/local/bin --disable-doc --disable-static --enable-shared --disable-ffplay --extra-libs=-ldl --enable-version3 --enable-libfreetype --enable-libx264 --enable-gpl --enable-openssl --enable-nonfree --disable-debug libavutil 55. 58.100 / 55. 58.100 libavcodec 57. 89.100 / 57. 89.100 libavformat 57. 71.100 / 57. 71.100 libavdevice 57. 6.100 / 57. 6.100 libavfilter 6. 82.100 / 6. 82.100 libswscale 4. 6.100 / 4. 6.100 libswresample 2. 7.100 / 2. 7.100 libpostproc 54. 5.100 / 54. 5.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'input.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2016-08-20T06:44:48.000000Z Duration: 00:00:15.02, start: 0.000000, bitrate: 2412 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720 [SAR 1:1 DAR 16:9], 2315 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc (default) Metadata: creation_time : 2016-08-20T06:44:48.000000Z handler_name : ISO Media file produced by Google Inc. Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 93 kb/s (default) Metadata: creation_time : 2016-08-20T06:44:48.000000Z handler_name : ISO Media file produced by Google Inc. Stream mapping: Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:0 (h264) -> trim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim Stream #0:1 (aac) -> atrim concat -> Stream #0:0 (libx264) concat -> Stream #0:1 (aac) Press [q] to stop, [?] for help [libx264 @ 0x215b480] using SAR=1/1 [libx264 @ 0x215b480] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 AVX2 LZCNT BMI2 [libx264 @ 0x215b480] profile Constrained Baseline, level 3.1 [libx264 @ 0x215b480] 264 - core 148 - H.264/MPEG-4 AVC codec - Copyleft 2003-2016 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0 Output #0, mp4, to 'out.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 encoder : Lavf57.71.100 Stream #0:0: Video: h264 (libx264) ([33][0][0][0] / 0x0021), yuv420p(progressive), 1280x720 [SAR 1:1 DAR 16:9], q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc (default) Metadata: encoder : Lavc57.89.100 libx264 Side data: cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1 Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: encoder : Lavc57.89.100 aac frame= 162 fps=0.0 q=21.0 size= 3209kB time=00:00:05.20 bitrate=5053.6kbits/s dup=12 drop=0 speed=10.frame= 333 fps=332 q=24.0 size= 6003kB time=00:00:10.64 bitrate=4620.0kbits/s dup=56 drop=0 speed=10.frame= 490 fps=326 q=25.0 size= 11387kB time=00:00:15.88 bitrate=5873.2kbits/s dup=56 drop=0 speed=10.frame= 497 fps=321 q=-1.0 Lsize= 12747kB time=00:00:16.54 bitrate=6309.7kbits/s dup=56 drop=0 speed=10.7x video:12486kB audio:247kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.113251% [libx264 @ 0x215b480] frame I:2 Avg QP:19.00 size: 61007 [libx264 @ 0x215b480] frame P:495 Avg QP:23.96 size: 25582 [libx264 @ 0x215b480] mb I I16..4: 100.0% 0.0% 0.0% [libx264 @ 0x215b480] mb P I16..4: 15.8% 0.0% 0.0% P16..4: 46.1% 0.0% 0.0% 0.0% 0.0% skip:38.2% [libx264 @ 0x215b480] coded y,uvDC,uvAC intra: 18.8% 31.1% 3.2% inter: 26.7% 15.7% 0.7% [libx264 @ 0x215b480] i16 v,h,dc,p: 26% 39% 22% 13% [libx264 @ 0x215b480] i8c dc,h,v,p: 47% 27% 18% 7% [libx264 @ 0x215b480] kb/s:6167.78 [aac @ 0x2159a80] Qavg: 2023.994
participants (1)
-
Jonathan Girven