J'ai écrit un AppleScript qui accomplira exactement ce que j'ai décrit dans mon premier message. Il utilise ffmpeg
, comme suggéré dans une réponse précédente par l'utilisateur Allan .
Note : Si vous n'avez pas ffmpeg
actuellement installé sur votre ordinateur, mon script n'a aucune valeur.
J'ai installé ffmpeg
via Homebrew. Homebrew est très facile à installer ; les instructions se trouvent en haut de la page d'accueil de cette page (le site officiel de Homebrew).
Après avoir installé Homebrew, lancez ces lignes individuellement dans Terminal pour installer ffmpeg
sur votre système :
brew install ffmpeg
brew link ffmpeg
Maintenant, vous pourrez utiliser mon script.
Notes sur mon code :
-
Même si cela n'était pas totalement nécessaire pour mes besoins, ffmpeg
offre également à l'utilisateur un contrôle total sur les noms de fichiers, les types de fichiers, le débit binaire, le répertoire de sortie, etc.
-
Certains aspects de mon script sont adaptés à mes préférences personnelles (par exemple, l'inclusion de la date du jour dans le nom du répertoire de sortie), alors bien sûr, modifiez le code comme bon vous semble.
-
J'ai fait de mon mieux pour inclure une gestion des erreurs afin de détecter certaines erreurs potentielles, mais c'est évidemment loin d'être exhaustif.
-
Je n'envisage pas d'avoir à effectuer cette tâche de découpage audio très souvent, donc un simple fichier .scpt créé dans script Editor me convient parfaitement.
-
Il est tout à fait possible, bien que laborieux, de programmer une option de codage VBR (débit binaire variable) pour les fichiers résultants dans le script. J'ai choisi de ne pas le faire car, pour mes besoins, cette capacité n'est pas particulièrement nécessaire. Elle serait quelque peu compliquée à écrire, car tous les formats audio ne peuvent pas être encodés en VBR (seuls les fichiers audio Opus, Vorbis, MP3, WMA et AAC le peuvent).
-
Enfin, je suis certain à 100 % que le code contient au moins quelques lacunes, angles morts et/ou bogues, et je m'en excuse donc à l'avance.
Je ne suis pas en mesure de coller l'intégralité du script directement dans cette réponse. La longueur du code dépasse la limite maximale de caractères pour les réponses de Stack Exchange.
Vous pouvez consulter et télécharger le code complet sur cette page Pastebin .
En utilisant le script script lié, l'utilisateur peut intuitivement diviser n'importe quel fichier audio en plusieurs fichiers sur la base d'un intervalle défini, tout en exigeant un minimum de temps et d'effort de la part de l'utilisateur.
Notez que lorsque l'utilisateur ne choisit pas le débit binaire de la source comme débit binaire des fichiers résultants, le script peut prendre un certain temps. Cela s'explique par le fait que ffmpeg
est lent à réencoder. Mais, heureusement, l'utilisateur peut simplement le régler et consacrer son attention à autre chose pendant qu'il se termine.
Notez que le format de deux lignes fourni par Allan dans sa réponse est incorrect.
Après plusieurs heures de dépannage de mon fichier AppleScript, je me suis rendu compte que mon fichier AppleScript n'était pas en cause.
-t
reflète la durée du fichier audio résultant, et non l'horodatage de fin.
L'exemple de code d'Allan devrait être le suivant :
$ 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
Voici le passage en question de la ffmpeg
la documentation :
-t durée (entrée/sortie)
Lorsqu'il est utilisé comme option de sortie (avant une url de sortie), il arrête l'écriture de la sortie après que sa durée a atteint durée .