2015-04-07 2 views
2

Voici ma config actuelle ezstreamComment puis-je décoder un mp3 et codez comme aac avec ezstream

<ezstream> 
    <url>http://localhost:8000/test</url> 
    <sourcepassword>password</sourcepassword> 
    <format>MP3</format> 
    <filename>playlist.m3u</filename> 
    <reencode> 
     <enable>1</enable> 
     <encdec> 
     <format>MP3</format> 
     <match>.mp3</match> 
     <decode>madplay -b 16 -R 44100 -S -o raw:- "@[email protected]"</decode> 
     <encode>lame --preset cbr 32 -r -s 44.1 --bitwidth 16 - -</encode> 
     </encdec> 
    </reencode> 
</ezstream> 

Il est monté sur un serveur Icecast, le décodage et l'encodage mp3 à un débit inférieur, je suis en train pour l'encoder à aac au lieu de mp3 dans l'espoir que la qualité s'améliore comme j'ai entendu dire que aac est meilleur que mp3 pour des débits plus faibles. Ce que je voudrais savoir, c'est si je peux utiliser un encodeur aac tel que FFmpeg au lieu de l'encodeur mp3 boiteux et obtenir un aac à l'utilisateur final au lieu de mp3, si oui quels paramètres dois-je passer à FFmpeg afin que cela fonctionne avec ma configuration actuelle.

Répondre

1

Icecast ne officiellement AAC de soutien en raison d'une licence.

Icecast est un serveur multimédia en continu qui prend actuellement en charge Ogg (Vorbis et Theora), Opus, WebM et flux audio MP3.

Officieusementit might work en mode passe-creux, mais vous devez essayer de voir par vous-même. Pour l'ecodage FFmpeg AAC, vous devez utiliser la librairie Fraunhofer FDK AAC (libfdk_aac). Vous avez également besoin d'un format streamable comme AAC au ADTS. Sur la base de votre exemple, il semble qu'il utilise stdout pour transcoder. Si vous avez converti le MP3 à PCM à l'aide madplay vous devriez pouvoir encoder au format AAC en utilisant quelque chose comme ceci:

<encode>ffmpeg -f s16le -ar 44.1k -ac 2 -i - -b:a 32k -ar 44.1k -f adts -</encode> 
+1

ou encore mieux vous devriez écouter TBR puisqu'il le maintient :) – aergistal

1

Personnellement, je recommande le codec Opus. C'est beaucoup mieux que le MP3, y compris et surtout à des débits binaires inférieurs. Aussi pas besoin de s'inquiéter de l'achat d'une licence d'encodeur.

Vous pouvez utiliser avconv/ffmpeg au lieu d'ezstream.

avconv -re -i http://someserver/stream.mp3 -c:a opus -b:a 20k \ 
     -application audio -vbr on -frame_duration 60 \ 
     -content_type audio/ogg \ 
     icecast://source:[email protected]:8000/test-20.opus 

Cet exemple fonctionnera avec la dernière version d'avconv et avec la dernière Icecast (2.4.1).
Il y a des paquets pour toutes les distributions majeures sur http://icecast.org/download si votre distribution n'a pas cette version.

BTW: Si vous insistez sur AAC, acheté une licence d'encodeur, etc. Il est trivial d'adapter l'exemple ci-dessus.

+0

Would ADTS travail passe-creux? Officieusement, bien sûr. Je n'ai pas encore essayé, mais en fonction de votre autre réponse, il devrait le faire. – aergistal

+0

Ça va probablement marcher. S'il vous plaît noter que l'obtention de licences pour ces formats et codecs est à vous. – TBR