Which portable tools and libraries are recommended to transcode audio with time stretching/crunching while maintaining meta-information?

StackOverflow https://stackoverflow.com/questions/10565177

  •  08-06-2021
  •  | 
  •  

Question

I'm looking to implement a podcast transcoding tool/script that uses as many existing tools as possible. What combination of tools and libraries would you recommend?

Objectives:

  1. Automate transcoding audio subscriptions (spoken word podcasts) to a smaller size (Ogg Vorbis and Speex) and make them available to sync to multiple devices (Android phone and an iPod with Rockbox);
  2. Time crunch files with tempo adjustment maintaining pitch (1.5x to 2.5x with at least 0.1x increments);
  3. Keep all meta-information (id3 and images) on the transcoded file;
  4. Preferably using small portable Unix/Linux tools and compatible libraries (Cygwin on Windows, or Wine compatible calls also a possibility);
  5. Simultaneous decode/encode and time crunch in one pass would be a bonus to save computation time.

SoX doesn't have Speex support. MPlayer with -speed as an argument is a possibility for decoding and speed adjustment to WAV, followed by ogg/speex standard encoders, and ending with id3tool or some other meta-information manipulation tool. Are there other alternative transcoding pipelines that fit the requirements?

Était-ce utile?

La solution

If you find you need to drop down to writing programs, some good starting points would be:

  • libsndfile for format conversion and access to properties
  • Dirac for time compression/expansion
  • and potentially a sample rate convertor for your inputs

One problem with your question is that its input formats and file attributes don't appear to be bound. For example, some formats are capable of defining regions - how should you handle this case? Omit that information? Leave as-is (even though it will be incorrect once stretched)? Adapt the region based on the scale factor? The last is the best, but you may need to get your hands dirty with C or C++ if this level of support is a requirement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top