Появился MP3-декодер с открытым кодом на JavaScript — jsmad
9Иллюстрация с сайта Jsmad.Org
Энтузиасты, известные под никами nddrylliog, jensnockert и mgeorgi, представили MP3-плеер с открытым кодом, написанный на языке JavaScript и не использующий возможности Adobe Flash, — jsmad.
Как сообщается в описании проекта, jsmad — это MP3-декодер, написанный на чистом JavaScript и основанный на алгоритмах из библиотеки libmad (распространяется под GPL); поддержка ID3-тегов в нем была реализована с нуля. Раньше для возможности воспроизведения MP3-файлов на веб-странице приходилось использовать Adobe Flash (как правило, с обвязками на JavaScript), но эти времена скоро останутся в прошлом.
Правда, на данный момент jsmad поддерживает только последние версии Firefox (начиная с релиза 4.0), Aurora и Chrome (12 Dev в Linux, 13 в Mac OS X, Canary в Windows; требуется включить Web Audio API в «about:flags», частота дискретизации звука изменится на 48000 Гц). Поддержка таких браузеров, как Opera и Safari, отсутствует, поскольку в них нет реализации Audio Data API или Web Audio API, а про Internet Explorer разработчики на своём сайте даже не упоминают.
Основная часть проекта была реализована в рамках MusicHackDay, который проходил в Берлине (Германия) в конце мая. Авторы считают, что «jsmad открывает двери целому миру аудиоприложений реального времени, реализованных на JavaScript».
Исходный код jsmad распространяется под свободной лицензией GNU GPLv2 и доступен на GitHub. Сайт проекта с живой презентацией плеера в действии — jsmad.org.
Постоянная ссылка к новости: http://www.nixp.ru/news/11254.html. Дмитрий Шурупов по материалам CrazyEngineers.
- Проект JS/Linux позволяет запустить ОС GNU/Linux в веб-браузере 4 2 18 мая 2011 г.
- pdf.js — свободная реализация PDF-рендерера на JavaScript 4 31 5 июля 2011 г.
- Broadway.js — JavaScript-декодер видео в H.264 2 1 ноября 2011 г.
- sipML5 — свободный SIP-клиент с поддержкой видео, написанный на JavaScript 4 22 мая 2012 г.
В Audacity 2.4.0 обнаружили баг, который может испортить аудиопроект
Elisa 0.0.80 — первая альфа-версия нового музыкального плеера для KDE 1
Elisa Music Player — новый музыкальный плеер для KDE 2
Открыт исходный код музыкального плеера Shuttle для Android
PulseAudio 10.0 — новая версия свободного звукового сервера 2
В новом релизе свободного звукового редактора Ardour 4.0 полностью переработан интерфейс 4
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Классный логотип. Напоминает персонажа из фильма «Добро пожаловать, или Посторонним вход воспрещён»: «А чё это вы здесь делаете, а?»
Браузеры превращаются, превращаются…
Для полного превращения еще нужно драйвера для работы с периферийными устройствами :)
«MP3-декодер, написанный на чистом JavaScript и основанный на библиотеке libmad» — ерунда какая-то получается. Если на чистом JavaScript, то какая нафиг внешняя библиотека? А если основанный на библиотеке libmad то какой нафиг чистый JavaScript?
Как я понял это просто binding к libmad для JavaScript. Так и надо писать, а то чушь выходит полная.
Нет — черти-злокодеры на JavaScript посмотрели как декодится MPEG поток на С в библиотеке libmad и написали так-же на JavaScript.
Мать-мать-мать привычно отозвалось эхо…
У меня конечно закрадывалась такая мысль, но это же идиотизм - тормозить будет так, что просто обнять и плакать.
С одной стороны — идиотизм, но с другой — консерватизм. Не так уж и тормозит, к слову говоря. Во всяком случае у меня в Firefox 4… Понятно, что это подойдет далеко не для всех (людей, браузеров, устройств, железок), но тенденции налицо.
Дайте мне другой глобус (С) :)
Эти тенденции основательно пугают
Не надо пугаться. Это естественное развитие событий. Мощность процессоров растёт, а сложность декодирования mp3 остаётся всё той же. И поэтому теперь можно декодировать mp3 интерпретируемым языком. Почему бы не сделать это, тем более что это востребовано.
Собственно, я даже не вижу зачем пугаться? Это хорошо. Если jsmad приживётся и завоюет популярность, то есть шансы, что в будущем его api забьют в стандарт на жабаскриптовые библиотеки (не знаю как этот стандарт называется), а тогда всё, что прячется под API браузер будет волен реализовывать хоть на ассемблере.
На самом деле, такой подход сильно напоминает подход к внедрению новых фичей в lisp. Скажем объектная система lisp’а, изначально была реализована на лиспе внутри лиспа. И их было много разных, несовместимых объектных систем. Тогда это было круто, но тормозно. Потом поддержку классов начали реализовывать на С, как неотъемлимую часть лисп-системы. А потом стандартизовали CLOS, и сегодня любой уважающий себя lisp имеет поддержку CLOS. Написанную, естественно на C и быструю настолько, насколько это возможно. Такой подход позволяет легко внедрить API; проверить его жизнеспособность, удобство, полезность; допилить до идеала и лишь после всего этого, заниматься уже более сложной деятельностью, типа пропихивания API на уровень стандарта и внедрения этого стандарта во все браузеры.
Кстати говоря, не так оно и тормозить должно как ожидается. Выбрана libmad как основа знаете почему? Потому как там весь процесс построен на операциях с целыми. В JavaScript не все так уж все и плохо с целыми :D. Вон, виртуалку для ядра linux человек на javascript написал :D.
Да, именно так. Чуть-чуть подправил в тексте новости, чтобы не было разногласий. Спасибо.
«Для прослушивания MP3 достаточно 4 ядерного процессора Intel Core 2…» — примерно так себе это представляю.
На моем i3 330M (2.13GHz) 2 ядра с HT. Загрузка 100% на одно ядро. В общем — 25% от всей системы.
Очередной стимул для оптимизации выполнения кода на JavaScript.
В Google, наверное, одни из первых сделали резкий рывок в этом направлении. Остальные тоже подтягиваются, понимая потенциал JavaScript.