2014-09-04 1 views
0

У меня проблема с аудиофайлами MP2 и JAVA. Звук, кажется, боль в JAVA в любом случае. Я попытался использовать JavaLayer и Xuggler для декодирования и перекодировки файла MP2 в WAV. Оба из них потерпели неудачу. И развитие тех, похоже, неактивно. Хотя многие из них все еще используют их. JMF или FMJ Я еще не пробовал. Я желал более активного подхода.JAVA MP2 воспроизведение (родной)

Я закончил тем, что открыл JavaLayer в своем проекте. И с небольшим изменением кода мне удалось, по-видимому, получить его, чтобы прочитать все кадры из MP2. Но попытка конвертировать его в WAV привела к тому, что файл воспроизводился только в VLC и хорошо, он был узнаваем, но искажался.

В любом случае, широкий вопрос, прошу прощения. Наверное, я спрашиваю, есть ли там гуру JAVA + JavaLayer + MP2, кто может мне помочь?

Оригинал MP2: https://dl.dropboxusercontent.com/u/90134918/horng014.mp2 Ошибка преобразования WAV: https://dl.dropboxusercontent.com/u/90134918/horng014_fail.wav

У меня есть общественный счет GitHub для этого проекта, но я не писал этот сломанный код там еще.

+0

MP2 не MPEG2. – chrylis

ответ

0

Между тем Theres новой Java Media Framework здесь:

https://sourceforge.net/projects/doppio/

с высоким уровнем API для игроков и API низкого уровня для использования только декодеров.

Этот игрок здесь https://sourceforge.net/projects/xamp2/ на основе этой среды носителей и может воспроизводить указанный файл. Также материал является открытым исходным кодом.

+0

Отлично подходит для есть старые, старые старые, хотя обычные форматы тоже старые, но не работающие и не имеющие силы. Отлично! – tonihele

+0

Пошел вперед и начал использовать это. Работает как шарм. – tonihele

0

После пошагового jlayer1.01 в отладчике, я делаю вывод, есть только две возможности:

Либо jlayer декодирует слово заголовка неправильно, или jlayers таблицы и код правильно и параметры самого файла отклоняются от того, что стандарт определяет , Мне не хватает знаний и времени, чтобы узнать, что из двух имеет место.

Только потому, что jlayer не обновлялся в течение нескольких лет, не обязательно означает его отказ; он обычно хорошо работает со средним MP3. Почему должно быть обновление, если не осталось никаких известных ошибок?

В настоящее время MP2 не совсем обычен; на самом деле это даже не было так распространено 15 лет назад, так что вполне возможно, что есть еще неизвестная ошибка. Попробуйте подать отчет об ошибке и дать ему некоторое время.

+0

Файл конвертируется в WAV со многими преобразователями без каких-либо проблем. И все заголовки были в порядке (насколько я могу судить). Я также использовал и редактор HEX, чтобы проверить это. я закомментирована следующее из javazoom.jl.decoder.Header (185): 'если (stream.isSyncCurrentPosition (syncmode)) \t {' ​​ Потому что это только казалось, чтобы переместить курсор из заголовка, где она уже была в , И уже правильно разобрал его. И с этим он распознал и декодировал все кадры. Спасибо за ответ, я постараюсь представить ошибку, хотя на SourceForge все, кажется, не ответили. – tonihele

+0

https://sourceforge.net/p/javalayer/bugs/13/ – tonihele

+0

Хм, я сделал что-то еще. В заголовке.calculate_framesize() Я прокомментировал «if (h_version == MPEG2_LSF || h_version == MPEG25_LSF) framesize >> = 1;". Я подозреваю, что сам декодер прекрасен, но эта комбинация бит заголовка неправильно. Я бы не стал быстро списывать отчет об ошибке; сотрудники с открытым исходным кодом делают это на стороне, и они, вероятно, сначала рассмотрят проблему, прежде чем делать какие-либо заявления. Только если нет реакции через 5-10 дней, я бы предположил, что проект мертв. – Durandal

0

Файл MP2 является правильным и MP2 распространен в наши дни, twolame MP2 Encoder обновлен с улучшенной кодировкой VBR. Вы можете воспроизвести файл с обычными игроками. В JLayer есть две разные ошибки: 1. Расчет размера кадра неверен и 2. Таблица распределения бит для низкой частоты выборки MP2 (Mpeg2-Layer2) является ошибкой.

+0

Спасибо. Я также подумал об этом. Для меня было решение, что я нашел более простую C-библиотеку, которую я преобразовал в JAVA. для низкой частоты выборки. Было проще, чем разобраться, как исправить JLayer (даже когда я знал, где проблема) ... Библиотека: http://keyj.emphy.de/kjmp2/ – tonihele

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

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