He escrito un AppleScript que logrará exactamente lo que describí en mi post original. Hace uso de ffmpeg
como se sugirió en una respuesta anterior del usuario Allan .
Nota: Si no tiene ffmpeg
actualmente instalado en su ordenador, mi script no tiene ningún valor.
He instalado ffmpeg
a través de Homebrew. Homebrew es muy fácil de instalar; las instrucciones se encuentran en la parte superior de esta página (el sitio web oficial de Homebrew).
Después de instalar Homebrew, ejecute estas líneas individualmente en el Terminal para instalar ffmpeg
en su sistema:
brew install ffmpeg
brew link ffmpeg
Ahora, podrás hacer uso de mi script.
Notas sobre mi código:
-
Aunque esto no era totalmente necesario para mis propósitos, ffmpeg
también proporciona al usuario un control total sobre los nombres de los archivos, los tipos de archivos, la tasa de bits, el directorio de salida, etc., lo cual es una maravilla.
-
Algunos aspectos de mi script están adaptados a mis preferencias personales (por ejemplo, incluir la fecha actual en el nombre del directorio de salida), así que, obviamente, modifica el código como creas conveniente.
-
He hecho todo lo posible por incluir algún tipo de gestión de errores para detectar ciertos errores potenciales, pero obviamente esto está lejos de ser exhaustivo.
-
No me imagino que tenga que hacer esta tarea de división de audio tan a menudo, así que un simple archivo .scpt creado en script Editor está bien para mí.
-
Es totalmente posible, aunque laborioso, programar una opción de codificación VBR (tasa de bits variable) para los archivos resultantes en el script. He decidido no hacerlo porque, para mis propósitos, esta capacidad no es particularmente necesaria. Sería algo complicado de escribir, ya que no todos los formatos de audio pueden ser codificados en VBR (sólo los archivos de audio Opus, Vorbis, MP3, WMA y AAC pueden).
-
Por último, estoy 100% seguro de que el código contiene al menos algunas deficiencias, puntos ciegos y/o errores, por lo que pido disculpas de antemano.
No soy capaz de pegar todo el script directamente en esta respuesta. La longitud del código excede el límite máximo de caracteres para las respuestas de Stack Exchange.
Puede ver y descargar el código completo en esta página de Pastebin .
Utilizando el script vinculado, el usuario puede dividir intuitivamente cualquier archivo de audio en numerosos archivos en función de un intervalo definido, al tiempo que requiere un tiempo y un esfuerzo mínimos por parte del usuario.
Tenga en cuenta que cuando el usuario no elige la tasa de bits de origen como la tasa de bits para los archivos resultantes, el scriptpuede tardar un poco. Esto se debe a que ffmpeg
es lento en la recodificación. Pero, afortunadamente, el usuario puede simplemente fijarlo, y dirigir su atención a otra cosa mientras se completa.
Tenga en cuenta que el formato de dos líneas que Allan proporcionó en su respuesta es incorrecto.
Después de varias horas de solucionar mi archivo AppleScript, me di cuenta de que mi archivo AppleScript no era el problema.
-t
refleja la duración del archivo de audio resultante, no la marca de tiempo final.
El código de ejemplo de Allan debería decir:
$ ffmpeg -i source_audio_file.mp3 -ss 0 -t 120 segment_1.mp3
$ ffmpeg -i source_audio_file.mp3 -ss 120 -t 120 segment_2.mp3
$ ffmpeg -i source_audio_file.mp3 -ss 240 -t 120 segment_3.mp3
Este es el pasaje correspondiente del ffmpeg
documentación :
-t duración (entrada/salida)
Cuando se utiliza como opción de salida (antes de una url de salida), deja de escribir la salida cuando su duración alcanza duración .