Потоковая передача аудиофайла против его статической обработки - PullRequest
0 голосов
/ 04 декабря 2010

У меня есть веб-сайт, где пользователи могут загружать аудиофайлы (типа aac). Пользователи могут воспроизводить свои аудиофайлы через веб-браузер или мобильные устройства, такие как iPhone или Android. Для веб-браузеров я хотел бы поддерживать новейшую звуковую метку HTML5 и иметь запасной вариант для старых браузеров.

Я провел некоторые исследования, и mp3 выглядит как лучший формат для передачи аудиофайлов в веб-браузер, потому что некоторые современные браузеры изначально поддерживают mp3, а для браузеров, которые не поддерживают (FireFox), можно использовать флэш-память. Как только пользователь загрузит файл aac, я создам другую версию аудиофайла в формате mp3, которую можно использовать для обслуживания.

Как лучше всего подать эти аудиофайлы? Потоковое или статически выступающее? Есть ли преимущества или недостатки? Возможно, есть гибкая серверная технология. Я знаю о Icecast, но я не думаю, что он подходит для моего конкретного случая использования.

Также у меня есть реляционная база данных, в которой хранится ссылка на каждый статический аудиофайл. Я хотел бы использовать потоковую передачу по протоколу HTTP, а не собственный протокол. Самое главное, я хотел бы сделать это максимально эффективно, так как пропускная способность может стать дорогой.

1 Ответ

0 голосов
/ 04 декабря 2010

Подумайте, что потоковые протоколы, поддерживаемые iDevices (iPhone, iPad, iPod) и телефонами Android, не одно и то же. Хотя iDevices поддерживает потоковую передачу HTTP, телефоны Android поддерживают только протокол RTSP.

Итак, если вы хотите обслуживать несколько устройств с потоковым протоколом, подумайте, что вам придется использовать кодировщики / серверы для каждого типа (сегментатор и веб-сервер для iDevices, RTSP-сервер для Android).

С точки зрения эффективности, я не думаю, что вы сильно улучшитесь, но, используя потоковую передачу HTTP, вы получаете другие преимущества, такие как возможность использовать мультибитрейтные файлы, которые позволяют вам использовать разные кодированные версии одного и того же аудио для подачи разных аудио качества в зависимости от скорости соединения с сервером пользователя <->.

Реализация потоковой передачи HTTP очень дешевая. Фактически, вы можете использовать ffmpeg для кодирования файлов и бесплатный сегментатор, предоставленный Apple для этого. Но помните, что это не будет работать для устройств Android.

...