SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Особенности записи звука нативными
технологиями браузеров
Фёдор Котов, руководитель веб-разработки Penxy
1
Стартап, в команде 3 человека, зарабатываем
Инвестор из России, продукт с фокусом на США
О нас
2
О бизнесе
3
✓ Эксперты озвучивают
слайды
✓ Делятся Говорящими Слайдами
с другими людьми
4
WebRTC
5
Темна, терниста и запутана:
- несколько разных стандартов
- _webkit_moz_ms все сделали по-разному
История WebRTC
6
WebRTC - возможности
Позволяет соединить
несколько клиентов
напрямую и
передавать между
ними данные.
7
- peer-to-peer connections
- peer-to-peer Data API
- SIP, stats, etc
- Media Stream API Extensions
WebRTC - содержание
8
- Видеоконференции
- Передача файлов
- Доступ к экрану
- Игры
- Редактирование звука в браузере
WebRTC - сферы применения
9
Без плагинов!
Почему мы используем WebRTC
➔ Нужен только браузер!
➔ Не нужны Flash или Java
➔ Клиенты довольны
★ Полный Javascript вашего приложения.
10
Запись аудио в браузере
11
12
Нажал – работает
13
Нажал – работает
14
Нажал – работает
Но обо всем по порядку
15
WebRTC API Web Audio API
Media Stream API
микрофон
камера
16
Source Processing Destination
Поток звука
17
Source Processing Destination
Поток звука
- Audio files (+ XHR, etc)
- <audio>, <video> tags
- MediaStream
- (AudioMediaStreamTrack)
18
Source Processing Destination
Поток звука
- Audio files (+ XHR, etc)
- <audio>, <video> tags
- MediaStream
- (AudioMediaStreamTrack)
- Audio effects
- Spliting, Merging
- Spatialization
- Compressing
- etc
19
Source Processing Destination
Поток звука
- Audio files (+ XHR, etc)
- <audio>, <video> tags
- MediaStream
- (AudioMediaStreamTrack)
- Audio effects
- Spliting, Merging
- Spatialization
- Compressing
- etc
- Device (speakers)
- MediaStream
- “Record” audio node
- XHR, Websockets,
etc
20
Destination Buffer, file, etc Server
Передача аудио на сервер
21
Destination Buffer, file, etc Server
Передача аудио на сервер
~ 170 KiB/s
~ 600 MiB в час
~ 1 GiB RAM в час
WAV 44.1Kz,
16 bit depth,
stereo
22
❏ Запись занимает много места на диске
❏ Запись аудио больше часа невозможна
(не в Firefox)
Проблема
23
- mono audio
- ухудшить качество
- записывать кусочками
- ?
Как уменьшить размер?
24
Сжимать на клиенте
Решение
на лету
25
Какой формат выбрать?
26
OGG MP3
Аудио форматы
27
Firefox
RecordRTC из набора
WebRTC experiments
Firefox, Chrome, Safari
LAME,
скомпилированную
emscripten
★ LAME - это просто!
➔ Initialize - на старте записи
➔ Record - кодируем каждый аудио-буфер
➔ Finish - собираем mp3-файл
28
Пишем Recorder
MP3 recorder, init
29
mp3codec = Lame.init();
Lame.set_mode(mp3codec, 3); // mono
Lame.set_num_channels(mp3codec, 1);
Lame.set_out_samplerate(mp3codec, 44100);
Lame.set_in_samplerate(mp3codec, 44100);
Lame.set_bitrate(mp3codec, 128);
Lame.init_params(mp3codec);
MP3 recorder, record
30
audioNode.onaudioprocess = function(e) {
var channelLeft;
channelLeft = e.inputBuffer.getChannelData(0);
encoderMp3Worker.postMessage({
command: 'encode',
buf: channelLeft
});
};
MP3 recorder, encode
31
var mp3data = Lame.encode_buffer_ieee_float(
mp3codec,
e.data.buf,
e.data.buf);
recBuffers.push(mp3data.data);
recLength += mp3data.data.length;
MP3 recorder, finish
32
var mp3data = Lame.encode_flush(mp3codec);
recBuffers.push(mp3data.data);
recLength += mp3data.data.length;
var buffer = mergeBuffers(recBuffers, recLength);
var data = new Uint8Array(buffer);
var audioBlob = new Blob([data], {
type: "audio/mp3"
});
// send audioBlob somewhere
~ 10 KiB/s
~ 30 MiB/час
~ 40 MiB RAM/час
★ ogg - даже лучше
Результат
33
~ 170 KiB/s
~ 600 MiB/час
~ 1 Gib RAM/час
Было Стало
Теперь, можно записывать
длинные аудио-файлы!
34
➔ использовать Audio Web Workers!
➔ сохранять файлы в локальное хранилище
или отдавать юзеру
➔ стримить на сервер или отдавать
кусочками
Советы
35
Фёдор Котов
Руководитель веб-разработки
info@penxy.com
penxy.com
36
http://bit.ly/moscow-js-audio

Contenu connexe

Tendances

Находим и эксплуатируем уязвимости. Теория и практические примеры уязвимых ре...
Находим и эксплуатируем уязвимости. Теория и практические примеры уязвимых ре...Находим и эксплуатируем уязвимости. Теория и практические примеры уязвимых ре...
Находим и эксплуатируем уязвимости. Теория и практические примеры уязвимых ре...Kristina Pomozova
 
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...Unigine Corp.
 
Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Yandex
 
Cisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференцийCisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференцийКРОК
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1rit2011
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация4ertenka
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация4ertenka
 
SerVal site monitoring presentation - Презентация SerVal
SerVal site monitoring presentation - Презентация SerValSerVal site monitoring presentation - Презентация SerVal
SerVal site monitoring presentation - Презентация SerValElitesru
 
Доктор Веб. Кирилл Тезиков "Dr.Web Enterprise Security Suite. Защита бизнеса ...
Доктор Веб. Кирилл Тезиков "Dr.Web Enterprise Security Suite. Защита бизнеса ...Доктор Веб. Кирилл Тезиков "Dr.Web Enterprise Security Suite. Защита бизнеса ...
Доктор Веб. Кирилл Тезиков "Dr.Web Enterprise Security Suite. Защита бизнеса ...Expolink
 
kranonit S04E01 Антон: Защита от Master Boot Record Locker
kranonit S04E01 Антон: Защита от Master Boot Record Lockerkranonit S04E01 Антон: Защита от Master Boot Record Locker
kranonit S04E01 Антон: Защита от Master Boot Record LockerKrivoy Rog IT Community
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Fwdays
 
Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Сергей Рыжиков, Александр Сербул (1С-Битрикс)Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Сергей Рыжиков, Александр Сербул (1С-Битрикс)Ontico
 
begun Hl Ha
begun Hl Habegun Hl Ha
begun Hl HaOntico
 
Продвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerПродвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerAlexander Feschenko
 
Что надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчикуЧто надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчикуАлександр Майоров
 

Tendances (20)

Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)Спецификация WSGI (PEP-333)
Спецификация WSGI (PEP-333)
 
Находим и эксплуатируем уязвимости. Теория и практические примеры уязвимых ре...
Находим и эксплуатируем уязвимости. Теория и практические примеры уязвимых ре...Находим и эксплуатируем уязвимости. Теория и практические примеры уязвимых ре...
Находим и эксплуатируем уязвимости. Теория и практические примеры уязвимых ре...
 
Fiddler
FiddlerFiddler
Fiddler
 
WWW
WWWWWW
WWW
 
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
Портирование C++ приложений на FLASCC: опыт Unreal Engine 3. Павел Наказненко...
 
Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"Алексей Андросов "HTML5 в Я.Почте"
Алексей Андросов "HTML5 в Я.Почте"
 
Express test BSD desktop
Express test BSD desktopExpress test BSD desktop
Express test BSD desktop
 
Cisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференцийCisco meeting server - переосмысление многоточечных конференций
Cisco meeting server - переосмысление многоточечных конференций
 
мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация
 
браузеры презентация
браузеры презентациябраузеры презентация
браузеры презентация
 
SerVal site monitoring presentation - Презентация SerVal
SerVal site monitoring presentation - Презентация SerValSerVal site monitoring presentation - Презентация SerVal
SerVal site monitoring presentation - Презентация SerVal
 
Доктор Веб. Кирилл Тезиков "Dr.Web Enterprise Security Suite. Защита бизнеса ...
Доктор Веб. Кирилл Тезиков "Dr.Web Enterprise Security Suite. Защита бизнеса ...Доктор Веб. Кирилл Тезиков "Dr.Web Enterprise Security Suite. Защита бизнеса ...
Доктор Веб. Кирилл Тезиков "Dr.Web Enterprise Security Suite. Защита бизнеса ...
 
kranonit S04E01 Антон: Защита от Master Boot Record Locker
kranonit S04E01 Антон: Защита от Master Boot Record Lockerkranonit S04E01 Антон: Защита от Master Boot Record Locker
kranonit S04E01 Антон: Защита от Master Boot Record Locker
 
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...Alexandr Serbul "The Rust language for a high-load network service - a quick ...
Alexandr Serbul "The Rust language for a high-load network service - a quick ...
 
Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Сергей Рыжиков, Александр Сербул (1С-Битрикс)Сергей Рыжиков, Александр Сербул (1С-Битрикс)
Сергей Рыжиков, Александр Сербул (1С-Битрикс)
 
спо
споспо
спо
 
begun Hl Ha
begun Hl Habegun Hl Ha
begun Hl Ha
 
Продвинутая web-отладка с Fiddler
Продвинутая web-отладка с FiddlerПродвинутая web-отладка с Fiddler
Продвинутая web-отладка с Fiddler
 
Что надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчикуЧто надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчику
 

Similaire à "Особенности записи звука нативными технологиями браузеров" — Федор Котов, MoscowJS 18

Devpoint2 video in internet
Devpoint2 video in internetDevpoint2 video in internet
Devpoint2 video in internetMax Lapshin
 
ОМНИКАНАЛЬНЫЙ контроль-качества: новые функции 6-го релиза системы
ОМНИКАНАЛЬНЫЙ контроль-качества: новые функции 6-го релиза системыОМНИКАНАЛЬНЫЙ контроль-качества: новые функции 6-го релиза системы
ОМНИКАНАЛЬНЫЙ контроль-качества: новые функции 6-го релиза системыCisco Russia
 
Темное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCТемное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCVoximplant
 
Электронный архив на Alfresco
Электронный архив на AlfrescoЭлектронный архив на Alfresco
Электронный архив на AlfrescoOksana Kurysheva
 
TrueConf Server 4.2. Учебный курс.
 TrueConf Server 4.2. Учебный курс. TrueConf Server 4.2. Учебный курс.
TrueConf Server 4.2. Учебный курс.TrueConf
 
Система подготовки видео для стриминга на платформе ivi / Евгений Россинский ...
Система подготовки видео для стриминга на платформе ivi / Евгений Россинский ...Система подготовки видео для стриминга на платформе ivi / Евгений Россинский ...
Система подготовки видео для стриминга на платформе ivi / Евгений Россинский ...Ontico
 
Технологии и архитектура систем ВКС
Технологии и архитектура систем ВКСТехнологии и архитектура систем ВКС
Технологии и архитектура систем ВКСAndrew Vlaskin
 
DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...
DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...
DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...it-people
 
Видео в сети
Видео в сетиВидео в сети
Видео в сетиGetDev.NET
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02Newlink
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02LLC NewLink
 
Построение системы видеокоммуникаций для большого числа пользователей в сети ...
Построение системы видеокоммуникаций для большого числа пользователей в сети ...Построение системы видеокоммуникаций для большого числа пользователей в сети ...
Построение системы видеокоммуникаций для большого числа пользователей в сети ...yaevents
 
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...TrueConf
 
Вячеслав Борилин, SPIRITDSP - Построение системы видеокоммуникаций для большо...
Вячеслав Борилин, SPIRITDSP - Построение системы видеокоммуникаций для большо...Вячеслав Борилин, SPIRITDSP - Построение системы видеокоммуникаций для большо...
Вячеслав Борилин, SPIRITDSP - Построение системы видеокоммуникаций для большо...Media Gorod
 
Tech Talks @NSU: Архитектура Skype
Tech Talks @NSU: Архитектура SkypeTech Talks @NSU: Архитектура Skype
Tech Talks @NSU: Архитектура SkypeTech Talks @NSU
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, CiscoЭволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, CiscoTrueConf
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Max Lapshin
 

Similaire à "Особенности записи звука нативными технологиями браузеров" — Федор Котов, MoscowJS 18 (20)

Devpoint2 video in internet
Devpoint2 video in internetDevpoint2 video in internet
Devpoint2 video in internet
 
ОМНИКАНАЛЬНЫЙ контроль-качества: новые функции 6-го релиза системы
ОМНИКАНАЛЬНЫЙ контроль-качества: новые функции 6-го релиза системыОМНИКАНАЛЬНЫЙ контроль-качества: новые функции 6-го релиза системы
ОМНИКАНАЛЬНЫЙ контроль-качества: новые функции 6-го релиза системы
 
Темное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTCТемное настоящее и светлое будущее WebRTC
Темное настоящее и светлое будущее WebRTC
 
Электронный архив на Alfresco
Электронный архив на AlfrescoЭлектронный архив на Alfresco
Электронный архив на Alfresco
 
TrueConf Server 4.2. Учебный курс.
 TrueConf Server 4.2. Учебный курс. TrueConf Server 4.2. Учебный курс.
TrueConf Server 4.2. Учебный курс.
 
Система подготовки видео для стриминга на платформе ivi / Евгений Россинский ...
Система подготовки видео для стриминга на платформе ivi / Евгений Россинский ...Система подготовки видео для стриминга на платформе ivi / Евгений Россинский ...
Система подготовки видео для стриминга на платформе ivi / Евгений Россинский ...
 
Xpoint
XpointXpoint
Xpoint
 
Технологии и архитектура систем ВКС
Технологии и архитектура систем ВКСТехнологии и архитектура систем ВКС
Технологии и архитектура систем ВКС
 
DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...
DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...
DUMP-2013 Serverside - Когда же мы сможем нормально "звонить браузером"? - Па...
 
Видео в сети
Видео в сетиВидео в сети
Видео в сети
 
Видео в сети
Видео в сетиВидео в сети
Видео в сети
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02
 
Video 111127013709-phpapp02
Video 111127013709-phpapp02Video 111127013709-phpapp02
Video 111127013709-phpapp02
 
Построение системы видеокоммуникаций для большого числа пользователей в сети ...
Построение системы видеокоммуникаций для большого числа пользователей в сети ...Построение системы видеокоммуникаций для большого числа пользователей в сети ...
Построение системы видеокоммуникаций для большого числа пользователей в сети ...
 
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
Лучшие практики использования ВКС. Обзор системы видеоконференцсвязи TrueConf...
 
Вячеслав Борилин, SPIRITDSP - Построение системы видеокоммуникаций для большо...
Вячеслав Борилин, SPIRITDSP - Построение системы видеокоммуникаций для большо...Вячеслав Борилин, SPIRITDSP - Построение системы видеокоммуникаций для большо...
Вячеслав Борилин, SPIRITDSP - Построение системы видеокоммуникаций для большо...
 
Tech Talks @NSU: Архитектура Skype
Tech Talks @NSU: Архитектура SkypeTech Talks @NSU: Архитектура Skype
Tech Talks @NSU: Архитектура Skype
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, CiscoЭволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
Эволюция стандартов и технологий видеосвязи. Докладчик: Cергей Юцайтис, Cisco
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.
 

Plus de MoscowJS

Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionMoscowJS
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIMoscowJS
 
Favicon на стероидах
Favicon на стероидахFavicon на стероидах
Favicon на стероидахMoscowJS
 
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийE2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийMoscowJS
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyMoscowJS
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkMoscowJS
 
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31MoscowJS
 
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31MoscowJS
 
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31MoscowJS
 
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31MoscowJS
 
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33MoscowJS
 
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33MoscowJS
 
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33MoscowJS
 
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...MoscowJS
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...MoscowJS
 
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29MoscowJS
 
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29MoscowJS
 
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29MoscowJS
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28MoscowJS
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27MoscowJS
 

Plus de MoscowJS (20)

Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in action
 
Виктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public APIВиктор Розаев - Как не сломать обратную совместимость в Public API
Виктор Розаев - Как не сломать обратную совместимость в Public API
 
Favicon на стероидах
Favicon на стероидахFavicon на стероидах
Favicon на стероидах
 
E2E-тестирование мобильных приложений
E2E-тестирование мобильных приложенийE2E-тестирование мобильных приложений
E2E-тестирование мобильных приложений
 
Reliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkeyReliable DOM testing with browser-monkey
Reliable DOM testing with browser-monkey
 
Basis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA FrameworkBasis.js - Production Ready SPA Framework
Basis.js - Production Ready SPA Framework
 
Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31Контекст в React, Николай Надоричев, MoscowJS 31
Контекст в React, Николай Надоричев, MoscowJS 31
 
Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31Верстка Canvas, Алексей Охрименко, MoscowJS 31
Верстка Canvas, Алексей Охрименко, MoscowJS 31
 
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
Веб без интернет соединения, Михаил Дунаев, MoscowJS 31
 
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
Angular2 Change Detection, Тимофей Яценко, MoscowJS 31
 
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
Создание WYSIWIG-редакторов для веба, Егор Яковишен, Setka, MoscowJs 33
 
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
Предсказуемый Viewport, Вопиловский Константин, KamaGames Studio, MoscowJs 33
 
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
Promise me an Image... Антон Корзунов, Яндекс, MoscowJs 33
 
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
Регрессионное тестирование на lenta.ru, Кондратенко Павел, Rambler&Co, Moscow...
 
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter..."Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
"Опыт разработки универсальной библиотеки визуальных компонентов в HeadHunter...
 
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
"Во все тяжкие с responsive images", Павел Померанцев, MoscowJS 29
 
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
"AMP - технология на три буквы", Макс Фролов, MoscowJS 29
 
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
"Observable и Computed на пример KnockoutJS", Ольга Кобец, MoscowJS 29
 
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
«Пиринговый веб на JavaScript», Денис Глазков, MoscowJS 28
 
"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27"Доклад не про React", Антон Виноградов, MoscowJS 27
"Доклад не про React", Антон Виноградов, MoscowJS 27
 

"Особенности записи звука нативными технологиями браузеров" — Федор Котов, MoscowJS 18