Концепция мультимедийных кодеков (Container, Format, Codec,Muxer, Demuxer)

Я пошел thorugh много мультимедийных вещей на прошлой неделе и теперь перепутал в нескольких вопросах.Это связано с моей работой по разработке медиаплеера.Мои вопросы ниже основаны только на этом. Я также ищу электронную книгу / ресурс на мультимедийных кодеках?

Я ищу следующую информацию ?

  1. в чем разница между контейнером, форматом, кодеком, пакетом, кадр? Я считаю, что это контейнер - > Audio (streams) + Видео (потоки)

потоки кодируются/декодируются с помощью кодеков Потоки - > Пакеты Пакеты - > Кадры

(2)Как работает лестница muxer, demuxer, coder, decoder?С какой стороны что лежит?

(3) Когда мы говорим, что новый кодек - что это значит? - Кодер/декодер или новый формат файла.AVI-это кодек или формат?Существует ли какая-либо связь между используемым нами кодеком и форматом файла.

(4)в каком смысле один кодек отличается от другого кодек? Скорость воспроизведения, размер, качество, fps?

(5) Если мы разрабатываем новый кодек, что должно быть по другому?- Алгоритм кодирования и декодирования?

(6) Blu ray и DVD rip ? Какой у них новый формат?или новые кодеки?

(7) Если я хочу обеспечить поддержку вышеуказанных кодеков в моем медиаплеере, как я буду интегрировать различные кодеки?В виде некоторых библиотек или прямой ссылки на исходный код?

(8)как различные мультимедийные фреймворк (Gstremaer,ffmpeg, stagefright, OpenCore) отличается по отношению к кодеку.

ниже находятся ссылки, что я прошел через :

http://dranger.com/ffmpeg/tutorial01.html

1 ответов


вот бесплатный онлайн-ресурс для начала (полное раскрытие: я запускаю сайт : -)):MultimediaWiki. Кроме того, вот документ, который я написал давно, который может помочь с большим количеством вашего вопроса:Основы Мультимедийных Технологий. Я постараюсь ответить на ваши вопросы здесь.

1) формат контейнера (например, AVI или QuickTime/MOV) обычно содержит (содержит) различные потоки, обычно по крайней мере один видеопоток и один аудиопоток. Эти видео и аудио потоки обычно кодируются с помощью кодека, который представляет собой алгоритм, описывающий более эффективный метод кодирования данных. Пакеты и фреймы: иногда куски видео-или аудиоданных разбиваются на пакеты или фреймы в соответствии с их спецификациями кодека, но это, как правило, сводится к семантике-пакеты, фреймы, куски, все это просто куски.

2) Когда вы создаете мультимедийный файл, вы используете алгоритмы кодера для кодирования видео и аудио данных, затем вы используете muxer для поместите потоки вместе в файл (контейнер). Чтобы воспроизвести файл, демуксер разбирает потоки и подает их в декодеры для получения видео и аудио данных.

3) кодек означает кодер / декодер и является отдельной концепцией от формата контейнера. Многие форматы контейнеров могут содержать множество различных типов форматов (AVI и QuickTime/MOV очень общие). Другие форматы ограничены одним или двумя типами носителей.

4) кодеки состязаются на много факторов и конструированы для многих целей. Одно большое различие-потеря против потери. Если вам нужно сохранить всю исходную информацию, вы выбираете формат без потерь, но вы не получите лучшее сжатие. Если вы можете позволить себе потерять некоторые данные, вы можете выбрать формат с потерями, который пожертвует (надеюсь, незаметной для людей) информацией в обмен на большее сжатие. Некоторые кодеки оптимизированы для различных типов данных, таких как речевые кодеки, которые предполагают, что входные данные-это люди, говорящие, или экранное видео кодеки, которые предполагают, что входное видео является относительно статическими сеансами рабочего стола компьютера.

5) Создание нового кодека будет означать новый алгоритм, который потребует нового кодера и декодера.

6) я думаю, что они будут считаться контейнерами. DVD rip, вероятно, будет чем-то, что называется потоком программ MPEG (MPEG-PS), который, вероятно, будет содержать видеоданные MPEG-2 и один из нескольких различных типов аудио.

7) Есть много библиотек для воспроизведения этой вещи. Прежде всего, вам нужно рассмотреть вашу платформу (Windows, Mac OS X, Linux, iOS, Android и т. д.). В каждой из них имеются соответствующие библиотеки и структуры.

8) опять же, многие из этих фреймворков и библиотек, вероятно, удовлетворить ваши потребности. Это зависит от вашей платформы и потребностей лицензирования.

надеюсь, это дало вам что-то для работы. Как вы можете видеть из моей ручки, я люблю говорить об этом. :-)