this script will speed up (or slow down) video and audio via ffmpeg.
put the following in e.g., ~/.local/bin/mod-video-speed and chmod +x it.
#!/usr/bin/env python3
importsubprocessimportsys,rethis_file=sys.argv[0]filename=this_file.split('/')[-1]args=sys.argv[1:]iflen(args)!=3:print(f'Error: need 3 args but you provided {len(args)}. {args}')print(f'\n\tUSAGE: {filename} INFILE OUTFILE SPEED')print(f'\n\tINFILE: input file (source)\n\tOUTFILE: output file (destination)')print(f'\tSPEED: the speed of the output video in the format `2x` or `1.43x` -- must end with `x`')sys.exit(1)in_file=sys.argv[1]out_file=sys.argv[2]speed_raw=sys.argv[3]speed_pattern=r'([0-9]+\.?[0-9]*)x'speed_re=re.match(speed_pattern,speed_raw)ifspeed_reisNone:print(f"Error: SPEED argument did not match `{speed_pattern}`\n\nExamples: `1x`, `0.5x`, `123.456x`, `99x`")sys.exit(2)speed=float(speed_re[1])pts_speed=1./speedprint(f"Processing {in_file} and modifying video speed to {speed}, outputting to {out_file}.")ffmpeg_cmd_list=['ffmpeg','-i',in_file,'-filter_complex',f"[0:v]setpts={pts_speed}*PTS[v];[0:a]atempo={speed}[a]",'-map','[v]','-map','[a]',out_file]print(f"Running ffmpeg cmd: {' '.join(ffmpeg_cmd_list)}")subprocess.run(ffmpeg_cmd_list)
this script will speed up (or slow down) video and audio via ffmpeg.
put the following in e.g.,
~/.local/bin/mod-video-speed
andchmod +x
it.license: public domain