2 votes

ffmpeg transcodant l'audio en MPEG-4 HE AAC au lieu de AAC

J'ai un script d'Automator qui utilise ffmpeg pour ré-encapsuler un fichier vidéo dans un format mp4 avec son audio transcodé en aac tout en laissant la vidéo telle quelle.

for f in "$@"
do
    /Applications/Scriptlets/ffmpeg -i "$f" -c:v copy -c:a aac -b:a 384k -strict -2 "${f%.*}.m4v"
done

Cela fonctionne bien et la vidéo résultante est bien lue sur mon système à la fois dans iTunes et dans Quick Time Pro ; j'ai essayé avec des fichiers sources avi et mov. Cependant, je viens de remarquer que l'audio des fichiers résultants est encodé au format MPEG-4 HE AAC au lieu d'un simple AAC comme prévu. En conséquence, même si le fichier est bien lu sur mon Mac, je ne peux pas le lire sur mon téléviseur qui reconnaît AAC mais pas HE-AAC . Y a-t-il une solution de contournement avec ffmpeg ? Veuillez noter que je suis no intéressé par l'installation d'une autre application de codage/transcodage pour ce travail. Je veux seulement utiliser ffmpeg alors s'il vous plaît ne pas suggérer d'installer autre chose.

2voto

chillin Points 2767

Le problème vient de votre ffmpeg. Si le fait de dire à ffmpeg d'utiliser aac entraîne un encodage en he aac, si c'est vrai, alors il y a un problème avec votre ffmpeg, parce que spécifier aac ne devrait jamais aboutir à he aac. Seul le fait de dire à ffmpeg d'encoder en utilisant libaacplus ou libfdk_aac devrait résulter en un encodage he aac.


Voici une idée... construisez votre propre ffmpeg à partir des sources, car votre binaire a été mal construit (si ce que vous dites est vrai).

Vous pouvez télécharger le source de ffmpeg et le construire manuellement :

  git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

Mais il est beaucoup plus facile de l'installer en utilisant la gestion des paquets, comme macports :

MacPorts nécessite une version appropriée de xcode ; xcode_5.1.1.dmg est la version la plus récente pour Mavericks (après Enregistrement de pour obtenir un compte de développeur gratuit, et se connecter à developer.apple.com, ce lien lancera le téléchargement de votre xcode). Une fois le téléchargement terminé, ouvrez votre Terminal.app et terminez l'installation :

 hdiutil attach -quiet -noverify -nobrowse -noautoopen ~/Downloads/xcode_5.1.1.dmg
 cp -npR /Volumes/Xcode/Xcode.app /Applications/
 hdiutil detach -quiet /Volumes/Xcode

Téléchargez et construisez macports :

Guide MacPorts

 curl -Ok https://distfiles.macports.org/MacPorts/MacPorts-2.2.1.tar.bz2
 tar xf MacPorts-2.2.1.tar.bz2
 cd MacPorts-2.2.1
 ./configure
 make
 sudo make install     # *not war!*
 cd ..
 rm -rf Macports-*
 sudo /opt/local/bin/port -v selfupdate
 diskutil quiet repairPermissions /

ajoutez macports à votre $PATH :

 export PATH=/opt/local/bin:/opt/local/sbin:$PATH
 export MANPATH=/opt/local/share/man:$MANPATH

construire votre ffmpeg

 sudo port -vsc install ffmpeg

vous pouvez tout mettre à jour simplement avec :

 sudo port -vsc selfupdate
 sudo port -vsc upgrade installed

Si vous n'êtes pas satisfait et/ou si vous devez supprimer MacPorts :

 sudo port -dfp uninstall --follow-dependencies installed
 sudo port -dfp uninstall all
 sudo rm -rf /opt/local  
 sudo rm -rf /Library/Tcl/macports*

1voto

Graham Miln Points 39606

Le site Guide de codage AAC ffmpeg La page wiki pour devrait vous aider.

Cette question du superutilisateur peut également vous aider, Comment utiliser ffmpeg pour réduire le mixage 5.1 DTS HD MA ou Dolby TrueHD en AAC stéréo avec Dolby Pro Logic II ?

Le guide mentionne que plusieurs formats d'encodage AAC sont pris en charge, mais ils peuvent nécessiter une compilation personnalisée pour être présents :

FFmpeg peut prendre en charge quatre encodeurs AAC-LC (aac, libfaac, libfdk_aac, libvo_aacenc) et deux encodeurs AAC-HE (libaacplus et libfdk_aac). Les licences de libaacplus, libfaac, et libfdk_aac ne sont pas compatibles avec la GPL, de sorte que la GPL ne permet pas la distribution de binaires contenant du code sous licence sous ces licences lorsque du code sous licence GPL est également inclus. Par conséquent, ces encodeurs ont été désignés comme "non-libres", et vous ne pouvez pas télécharger un ffmpeg pré-construit qui les supporte. Ceci peut être résolu en compilant ffmpeg vous-même.

Il existe quelques guides pour construire ou obtenir des constructions plus performantes de ffmpeg sur votre Mac, par exemple Installer FFMPEG sur un Mac . Comme mentionné dans l'article, je trouve brasser le moyen le plus simple d'installer de tels outils.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X