#!/usr/bin/env python3 import argparse import subprocess import tempfile import os def mix(args): interval = '%d.%d' % (args.interval / 60, args.interval % 60) with tempfile.TemporaryDirectory(prefix='audiobanner') as tempdir: subprocess.check_call(['mp3splt', '-d', tempdir, '-o', 'orig_@n_@m.mp3', '-t', interval, args.original]) ffmpegconcat = 'concat:%s' % args.banner for part in sorted(os.listdir(tempdir)): ffmpegconcat += '|%s|%s' % (os.path.join(tempdir, part), args.banner) cmd = ['ffmpeg', '-i', ffmpegconcat, '-loglevel', 'error', '-n', args.destination] subprocess.check_call(cmd) def get_parser(): p = argparse.ArgumentParser("audiobanner") p.add_argument("--interval", help='In seconds', default=60, type=int) p.add_argument("original") p.add_argument("banner") p.add_argument("destination") return p def main(): args = get_parser().parse_args() mix(args) if __name__ == '__main__': main()