Fractionnement d'un fichier audio en morceaux d'une longueur spécifiée

16

J'ai plusieurs longs fichiers audio (80 minutes chacun; m4a) et je veux les diviser en morceaux de 5 ou 10 minutes.

Je vois beaucoup de questions pour diviser un fichier audio à des pauses prolongées, des tonalités, etc., mais je n'arrive pas à en trouver une concernant cette opération simple. Quelqu'un connaît-il un moyen simple de le faire?

Bien sûr, quelque chose d'automatique et de ligne de commande est correct, même préféré.

Merci d'avance!

Andrew Cheong
la source

Réponses:

20

Avec ffmpeg récent (téléchargez une version statique à partir d'ici ):

ffmpeg -i in.m4a -f segment -segment_time 300 -c copy out%03d.m4a

Il utilise le multiplexeur de segments et copie les flux binaires. Si votre fichier contient des flux audio et vidéo, vous pouvez désactiver le flux vidéo avec -vn.


Voici une ligne, il vous suffit d' installer Ruby et FFmpeg :

ruby -e '(0..4500).step(300) { |x| system "ffmpeg -ss #{x} -i in.m4a -c copy -t 300 out-#{x}.m4a"}'

Exécutez simplement cela dans le même dossier où se in.m4atrouve. Il copiera le train de bits audio, donc son exécution prendra probablement moins de quelques secondes.

Expliquer:

  • 4800 secondes est la longueur du fichier audio (80 minutes × 60 secondes), donc notre dernier partage est à 4500 (4800 - 300 secondes).
  • On passe de 0 à 4500, et on se sépare toutes les 300 secondes (5min × 60s).
  • FFmpeg démarrera à l'heure spécifiée par -ss
  • Et il copiera pendant le temps spécifié par -t
  • Il écrira plusieurs fichiers de sortie appelés out-<x>.mp4, où <x>est l'heure de début en secondes.
slhck
la source
Merci! Votre commande est-elle pour UNIX ou fonctionne-t-elle également sur Windows? J'ai une installation Cygwin, donc ça ne devrait pas avoir d'importance, mais je me demande juste. J'essaierai quand je rentrerai.
Andrew Cheong
Cela fonctionne nativement sous Linux (et Unix sur lesquels Ruby est installé), et cela devrait également fonctionner sous Windows - vous avez simplement besoin de Ruby et FFmpeg, mais vous n'aurez pas besoin de Cygwin pour cela. Il y a aussi les exécutables Ruby Installer et FFmpeg pour Windows. Maintenant, la commande FFmpeg pourrait être automatisée sans Ruby, en utilisant des fichiers batch Windows ou PowerShell, mais je ne suis pas un utilisateur Windows, c'est pourquoi j'ai pris Ruby (car il est livré avec Linux et OS X). Peut-être que quelqu'un avec une expérience de traitement par lots Windows peut réécrire la commande Ruby ci-dessus?
slhck
J'ai Cygwin parce que je ne peux pas m'habituer à la ligne de commande Windows. Je pense que j'ai déjà installé ruby ​​et ffmpeg, donc je devrais pouvoir utiliser votre commande. Mais oui, une version Windows pourrait aider quelqu'un d'autre à consulter cette question. +1 pour l'instant; acceptera quand je l'essayerai.
Andrew Cheong
2
Si, comme moi, votre fichier m4a comprend un flux vidéo (dans mon cas, une seule image), vous devez ajouter le -vncommutateur pour sélectionner uniquement le flux audio. Si vous souhaitez conserver le flux vidéo, vous devrez générer un fichier avec une extension .mp4.
Rob Church
2

Je cherchais moi-même une solution. La façon la plus simple que j'ai trouvée de le faire est via MP4Box :

mp4box -split 300 infile.m4a

Où "300" est le temps en secondes. MP4Box écrira automatiquement les fichiers de sortie numérotés.

(Vous n'avez pas besoin d'installer la grande application GPAC. Ce sont les fichiers que vous pouvez extraire de l'archive pour qu'elle fonctionne: js.dll; libeay32.dll; libgpac.dll; MP4Box.exe; ssleay32.dll)

dfkt
la source
2

Cela fait un moment que cette question n'a pas été posée, mais après avoir couché avec Ruby et ffmpeg, j'ai décidé qu'il devait y avoir un moyen plus facile de le faire dans Windows, et j'ai trouvé qu'il y en avait un.

Téléchargez et installez Audacity

Créez un fichier texte quelque part où vous pouvez le trouver et collez-y la chaîne suivante: (300 secondes d'intervalle, soit 5 minutes, 10 minutes seraient 600 intervalles, etc ...)

0       300  
300     600  
600     900  
900     1200  
1200    1500  
1500    1800  
1800    2100  
2100    2400  
2400    2700  
2700    3000  
3000    3300  
3300    3600  
3600    3900  
3900    4200  
4200    4500  
4500    4800  
4800    5100  
5100    5400  
5400    5700  
5700    6000  
6000    6300  
6300    6600  
6600    6900  
6900    7200  
7200    7500  
7500    7800  
7800    8100  
8100    8400  
8400    8700  
8700    9000  
9000    9300  
9300    9600  
9600    9900  
9900    10200  
10200   10500  
10500   10800  
10800   11100  
11100   11400  
11400   11700  
11700   12000  
12000   12300  
12300   12600  
12600   12900  
12900   13200  
13200   13500  
13500   13800  
13800   14100  
14100   14400  
14400   14700  
14700   15000  

Assurez-vous simplement que le nombre d'intervalles est supérieur à la longueur totale de vos fichiers audio, j'ai créé celui-ci qui dure plus de trois heures, bien long pour mes besoins, ajoutez-y plus pour répondre à vos besoins.

Importez le fichier audio dans Audacity et effectuez l'équilibrage et les autres modifications que vous souhaitez, puis cliquez sur fichier> étiquettes> importer des étiquettes

Sélectionnez votre fichier texte, puis sélectionnez la piste d'étiquette et la piste audio en même temps et cliquez sur fichier> Exporter plusieurs.

Modifiez le type de fichier que vous souhaitez exporter et ajustez les paramètres, puis sélectionnez le dossier de destination.

Je change toujours le modèle de numérotation en Numérotation après le préfixe du nom de fichier et tape le nom de fichier que je veux dans la boîte et le programme ajoutera les nombres, cliquez sur Exporter et alto!

C. Hamilton
la source
-1

Télécharger Audacity - C'est un outil audio gratuit qui peut faire exactement ce dont vous avez besoin, et il est totalement gratuit et facile à utiliser. http://audacity.sourceforge.net/

JohnnyVegas
la source
2
Existe-t-il un moyen pour que Audacity le fasse automatiquement? Je ne voudrais pas couper manuellement plusieurs fichiers en 16 morceaux chacun en sélectionnant des morceaux de 5 minutes avec ma souris, les couper, aller dans le menu, enregistrer les fichiers, et cetera.
slhck
J'ai déjà Audacity, donc s'il y a un moyen automatique, faites le moi savoir!
Andrew Cheong