Au cas où cela aiderait quelqu'un, il convient de noter qu'il existe probablement un moyen quelque peu laid de faire ce que vous voulez en combinant les éléments suivants ffprobe
y ffmpeg
en utilisant bash. Si vous avez ffmpeg
installé, il y a de fortes chances que vous ayez ffprobe
aussi. Pour un exemple simple, uniquement audio, ce qui suit a fonctionné pour moi, bien qu'en principe quelque chose de similaire devrait être réalisable avec des flux multiples de différents types.
ffmpeg -i neil_young_tell_me_why.wav -af aresample=resampler=soxr:precision=33:cheby=true -ar 96000 -acodec `ffprobe -v error -show_entries:a:0 stream=codec_name -of default=noprint_wrappers=1:nokey=1 neil_young_tell_me_why.wav | xargs echo -n` neil_young_tell_me_why_96Kup.wav
Explication : La sortie de l'outil ffprobe
à l'intérieur des guillemets est étendu en place au flux 0 du codec audio du fichier d'entrée, la nouvelle ligne étant supprimée par la commande xargs
. ffprobe
a été paramétré pour produire une quantité minimale de texte, et la production de ffprobe
L'auteur par défaut de l'application a été configuré de manière à supprimer tout texte superflu, tel que les étiquettes, etc. lors de l'écriture à l'écran.
Je voulais tester un rééchantillonnage de plus haute qualité avec l'option SoX
J'ai donc rééchantillonné un fichier wav de 44.1KHz à 96KHz en gardant le même codec. Sans procéder de cette manière, le codec étant choisi automatiquement par l'utilisateur, il n'est pas possible de l'utiliser. ffmpeg
avait une profondeur de bit plus faible, ce qui a entraîné une baisse de la résolution de 24 bits à 16 bits. De cette façon, il n'y a pas eu de perte de précision.