2017-09-30 53 views
0

Je dois couper des parties d'un fichier audio d'une position à l'autre. Quand j'ai essayé cette commandeUtilisation de ffmpeg pour couper l'audio de/vers la position

ffmpeg -ss 132 -t 139 -i original.mp3 new.mp3 

il a commencé au deuxième 132, et a ajouté les 139 secondes qui suivent dans le nouveau fichier.

Ce que je besoin est de 132 secondes à la seconde 139.

Et quand j'ai essayé

ffmpeg -ss 132 -to 139 -i original.mp3 new.mp3 

il me donne une erreur:

Unrecognized option 'to' 
Failed to set value '139' for option 'to' 

(Je ne veux pas dire combien de secondes à prendre, juste de/à).

- J'ai ffmpeg version 0.8.20-6: 0.8.20-0 + deb7u1 (construit le 19 janvier 2017 11:13:36 avec gcc 4.7.2). Et quand j'essaie de le mettre à jour (apt-get install ffmpeg), il me dit que "ffmpeg est déjà la version la plus récente".

Répondre

2

-ss est une option d'entrée, alors que -t et -to sont des options de sortie. Donc, vous devez faire ceci:

ffmpeg -ss 60 -i 'les nuits 128k.m4a' -to 70 -c copy out.m4a 
+0

il m'a donné une erreur: option non reconnue 'to', Impossible de définir la valeur '139' pour l'option 'to' - et n'a pas créé un fichier de sortie – Mike

+0

@Mike qui a été ajouté il y a 4 ans, c'est votre problème http://github.com/FFmpeg/FFmpeg/commit/2d70446 –

+0

Comme je l'ai montré ci-dessus, j'ai la dernière version du logiciel. Alors, quel est selon vous le problème? – Mike

0

ffmpeg -i "original.mp3" -ss 60 -à 70 "new.mp3"

Cela fonctionne pour moi.

+0

Notez que c'est une façon très inefficace de chercher. Il est beaucoup plus efficace de rechercher l'entrée avant de démarrer la sortie. – Brad

0

Avec FFmpeg, l'ordre des paramètres est significatif. Tous les paramètres qui viennent directement avant une entrée s'appliqueront à cette entrée. La même chose est vraie pour une sortie ... les paramètres directement avant de l'appliquer à la sortie.

Considérez cette ligne de commande:

ffmpeg -ss 132 -i input.mp3 output.mp3 

-ss est le paramètre de rechercher, si FFmpeg cherchera le fichier d'entrée à 132 secondes et traiter efficacement à ce 00:00:00. Le reste de vos commandes FFmpeg relatives à la sortie ne sait pas d'où vient cette entrée ou comment elle a été recherchée. Par conséquent, lorsque vous utilisez -to ou -t, les heures ou les longueurs indiquées doivent être par rapport à l'entrée. Autrement dit, si vous voulez les secondes 132 à 139, vous voulez rechercher l'entrée à 139 (-ss 132 -i input.mp3), puis exécutez la sortie pendant 7 secondes (-t 7 output.mp3 ou -to 00:00:07 output.mp3).

Vous pouvez en lire plus à ce sujet, ainsi que des détails sur la documentation sur l'image près ou non (pour réencodage ou non): https://trac.ffmpeg.org/wiki/Seeking

Quant à -to ne pas être là ...

As I shown above, I have the latest version of the software.

Vous absolument positivement faire pas avoir à distance la dernière version de FFmpeg. Vous pouvez avoir la dernière version de n'importe quelle branche, quel que soit le gestionnaire de paquets, et elle a peut-être été créée cette année, mais si vous consultez la page de téléchargement, la dernière version de cette version est 3.3.4.https://www.ffmpeg.org/download.html

Vous pouvez traiter votre gestionnaire de paquets et de l'enfer de la dépendance, ou en fonction de vos restrictions de licence, accroc une construction statique récente: https://www.johnvansickle.com/ffmpeg/

Enfin, pensez à -acodec copy pour vous assurer ne pas nuire à la qualité de votre audio en transcodant, puisque vous gardez le même format.

+2

Désolé. Je ne savais pas que vous étiez sensible aux modifications mineures pour améliorer la précision. – LordNeckbeard

+0

@LordNeckbeard Je ne suis pas, mais c'était plus qu'une modification mineure, n'ajoutais rien de substantiel à ce que j'ai déjà écrit, et j'ai ajouté quelques opinions supplémentaires de votre part qui m'auraient été attribuées. (Ce n'est pas que je ne suis pas d'accord avec toi: bugginess et quoi d'autre, j'aurais préféré que tu gardes le commentaire comme un commentaire qui te serait attribué.) – Brad