2015-04-07 6 views
2

Это мой текущий ezstream конфигурацииКак я могу декодировать mp3 и кодировать его, как ААС с 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> 

Это крепление к серверу IceCast, его декодирование и кодирование mp3 с низким битрейтом, я стараюсь чтобы кодировать его в aac вместо mp3 в надежде, что качество улучшится, так как я слышал, что aac лучше, чем mp3 для более низких битрейтов.

Что я хотел бы знать, если я могу использовать aac-кодировщик, такой как FFmpeg вместо lame mp3 encoder, и получить aac для конечного пользователя вместо mp3, если да, то какие параметры я должен передать FFmpeg, чтобы он работает с моей текущей конфигурацией.

ответ

1

Icecast не официально поддержка AAC в связи с лицензированием.

Icecast - это потоковый медиасервер, который в настоящее время поддерживает потоки Ogg (Vorbis and Theora), Opus, WebM и MP3.

Неофициальноit might work в режиме пропускания корыта, но вы должны попробовать и посмотреть на себя.

Для кодирования FFmpeg AAC вы должны использовать Fraunhofer FDK AAC library (libfdk_aac). Вам также нужен потоковый формат, такой как AAC в ADTS.

На основе вашего примера, похоже, он использует stdout для перекодирования. Если вы конвертировали MP3 в PCM с помощью madplay, вы должны иметь возможность кодировать его в AAC, используя что-то вроде этого:

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

или даже лучше вы должны слушать TBR, так как он это поддерживает :) – aergistal

1

Я лично рекомендую кодек Opus. Это намного лучше, чем MP3, в том числе и, особенно, при более низких скоростях передачи. Также не нужно беспокоиться о покупке лицензии на кодировщик.

Вы можете использовать avconv/ffmpeg вместо 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 

Этот пример будет работать с последним avconv и последним Icecast (2.4.1).
Есть пакеты для всех основных дистрибутивов на http://icecast.org/download, если у вашего дистрибутива нет этой версии.

BTW: Если вы настаиваете на AAC, купили лицензию на кодировщик и т. Д. Тривиально адаптировать приведенный выше пример.

+0

Будет ли работать ADT pass-trough? Неофициально, конечно. Я еще не пробовал, но на основании вашего другого ответа. – aergistal

+0

Это, вероятно, просто сработает. Обратите внимание, что получение лицензий на такие форматы и кодеки зависит от вас. – TBR

 Смежные вопросы

  • Нет связанных вопросов^_^