bannerizza.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/env python3
  2. import argparse
  3. import subprocess
  4. import tempfile
  5. import os
  6. def mix(args):
  7. interval = '%d.%d' % (args.interval / 60, args.interval % 60)
  8. with tempfile.TemporaryDirectory(prefix='audiobanner') as tempdir:
  9. subprocess.check_call(['mp3splt', '-d', tempdir,
  10. '-o', 'orig_@n_@m.mp3',
  11. '-t', interval,
  12. args.original])
  13. ffmpegconcat = 'concat:%s' % args.banner
  14. for part in sorted(os.listdir(tempdir)):
  15. ffmpegconcat += '|%s|%s' % (os.path.join(tempdir, part),
  16. args.banner)
  17. cmd = ['ffmpeg', '-i', ffmpegconcat,
  18. '-loglevel', 'error', '-n',
  19. args.destination]
  20. subprocess.check_call(cmd)
  21. def get_parser():
  22. p = argparse.ArgumentParser("audiobanner")
  23. p.add_argument("--interval", help='In seconds', default=60, type=int)
  24. p.add_argument("original")
  25. p.add_argument("banner")
  26. p.add_argument("destination")
  27. return p
  28. def main():
  29. args = get_parser().parse_args()
  30. mix(args)
  31. if __name__ == '__main__':
  32. main()