Аудио Видео и потоковая передача

задняя часть

[TOC]

Аудио Видео и потоковая передача

Что побудило меня написать эту статью начального уровня об аудио, видео и потоковой передаче? Это потому, что я поспорил с девушкой на понятие битрейта и проиграл, для технаря обидно, что не до конца понята самая элементарная вероятность битрейта, это просто шутка. С этой предпосылкой я обнаружил, что мне все еще нужно понять принципы и базовые вводные знания.

потоковый фон

В настоящее время аудио, видео и потоковые мультимедиа стали повсеместными, а прямые трансляции популярны уже несколько лет.В последующее время люди в чате не только довольствуются текстом, но больше общаются «лицом к лицу», и могут воспринимать друг друга в режиме реального времени, выражения и действия. Для этого необходимо идти в ногу с веянием времени и разбираться с домашним заданием потокового мультимедиа.

Что такое потоковое мультимедиа? Потоковое мультимедиа относится к мультимедийным форматам, таким как аудио-, видео- или мультимедийные файлы, которые непрерывно воспроизводятся в сети в режиме реального времени с использованием технологии потоковой передачи. Технология потокового мультимедиа также называется технологией потокового мультимедиа. Тогда аудио и видео являются ядром потокового мультимедиа.

Спецификация для определения общих терминов аудио и видео

Аудио и видео композиция

Полный видеофайл, включая аудио, видео и основную метаинформацию, наши распространенные видеофайлы, такие как mp4, mov, flv, avi, rmvb и другие видеофайлы, представляет собой пакет контейнера, который содержит две части аудио и видео, и все они закодированы и сжаты с помощью определенных алгоритмов кодирования.

H264, Xvid и т. д. — это форматы кодирования видео, а MP3, AAC и т. д. — форматы кодирования аудио. Например, после инкапсуляции файла кодировки видео Xvid и файла кодировки аудио MP3 по стандарту инкапсуляции AVI получается видеофайл с суффиксом AVI.

Следовательно, суть преобразования видео должна быть установлена.

  • Установите желаемую кодировку видео
  • Установите нужный аудиокодек
  • Выберите нужный пакет контейнеров

Полная настройка преобразования видео включает как минимум 3 шага, описанных выше.

Формат кодирования

формат кодирования звука

Форматы кодирования аудио следующие:

  • AAC
  • AMR
  • PCM
  • ogg (аудио ogg vorbis)
  • AC3 (аудиокодек для DVD)
  • DTS (специальный аудиокодек DVD)
  • APE (звук обезьяны)
  • AU (солнечный формат)
  • WMA

Результаты сравнения качества звука между схемами кодирования звука (AAC, MP3, WMA и т. д.): AAC+ > MP3PRO > AAC > RealAudio > WMA > MP3

В настоящее время наиболее распространенными аудиоформатами являются Mp3, AC-3, ACC, MP3 имеет самую широкую поддержку, AC-3 — это технология Dolby, ACC — это аудиостандарт в MPEG-4, ACC в настоящее время является более продвинутым и имеет преимущества Технология . В соответствии с записью достаточно знать, что существует несколько наиболее распространенных аудиоформатов.

Формат кодирования видео

Существуют две основные системы стандартов кодирования видео: MPEG и ITU-T. Существуют две международные организации, разрабатывающие технологии кодирования и декодирования видео, одна из них — «Международный союз электросвязи (ITU-T)», а его стандарты — H.261. , H.261, H..263, H.263+, H.264 и т. д., а другой — «Международная организация по стандартизации (ISO)», которая установила такие стандарты, как MPEG-1, MPEG-2, MPEG-4 и др.

Распространенные форматы кодирования:

  • Xvid(MPEG4)
  • H264 (в настоящее время наиболее часто используемый формат кодирования)
  • H263
  • MPEG1, MPEG2
  • AC-1
  • РМ, РМВБ
  • H.265 (в настоящее время используется недостаточно)

Приблизительный рейтинг производительности наиболее распространенных методов кодирования видео выглядит следующим образом: MPEG-1/-2

До появления H.265 форматом сжатия видео с самой высокой степенью сжатия был H264.Его преимущества:

  • Низкий битрейт: по сравнению с такими технологиями сжатия, как MPEG2 и MPEG4 ASP, при одинаковом качестве изображения объем данных, сжатых по технологии H.264, составляет лишь 1/8 от MPEG2 и 1/3 от MPEG4.
  • Высококачественное изображение: H.264 может обеспечить непрерывное плавное изображение высокого качества (качество DVD).
  • Сильная отказоустойчивость: H.264 предоставляет необходимые инструменты для устранения таких ошибок, как потеря пакетов, которые часто возникают в нестабильных сетевых средах.
  • Сильная сетевая адаптируемость: H.264 обеспечивает уровень сетевой абстракции, который позволяет легко передавать файлы H.264 по различным сетям (таким как Интернет, CDMA, GPRS, WCDMA, CDMA2000 и т. д.).

Самым большим преимуществом H.264 является высокая степень сжатия данных.При одинаковом качестве изображения степень сжатия H.264 более чем в 2 раза выше, чем у MPEG-2, и в 1,5–2 раза выше, чем у MPEG-2. 4. Например, если размер исходного файла составляет 88 ГБ, он станет 3,5 ГБ после сжатия по стандарту сжатия MPEG-2 и степени сжатия 25:1, а после сжатия по стандарту сжатия H.264 станет 879 МБ. , от 88 ГБ до 879 МБ. Коэффициент сжатия H.264 составляет 102:1. Низкий битрейт играет важную роль в высокой степени сжатия H.264.По сравнению с такими технологиями сжатия, как MPEG-2 и MPEG-4 ASP, технология сжатия H.264 значительно экономит время загрузки пользователей и затраты на трафик данных. Особо стоит отметить, что H.264 имеет качественное и плавное изображение при высокой степени сжатия, поэтому видеоданные, сжатые H.264, требуют меньшей полосы пропускания при передаче по сети, а также более экономичны.

В настоящее время эти распространенные форматы кодирования видео на самом деле являются сжатием с потерями, включая H264 и H265, которые также являются кодированием с потерями.Только с кодированием с потерями можно получить более высокую степень сжатия и меньший объем при условии обеспечения качества.

формат пакета хранения

В настоящее время на рынке распространены следующие форматы пакетов хранения:

  • AVI (.avi)
  • АСФ (.asf)
  • WMV (.wmv)
  • QuickTime ( .mov)
  • MPEG (.mpg / .mpeg)
  • MP4 (.mp4)
  • m2ts (.m2ts / .mts)
  • Матроска (.mkv/.mks/.mka)
  • RM ( .rm / .rmvb)
  • TS/PS

AVI: доступны MPEG-2, DIVX, XVID, WMV3, WMV4, AC-1, H.264 WMV: доступны WMV3, WMV4, AC-1 RM/RMVB: доступны RV40, RV50, RV60, RM8, RM9, RM10 MOV: доступны MPEG-2, MPEG4-ASP(XVID), H.264 МКВ: все

封装格式.png

Битрейт видео, частота кадров, разрешение

кодовая скорость

Скорость передачи данных относится к потоку данных, используемому видеофайлом в единицу времени, также называемому битрейтом или битрейтом.Популярное понимание — это частота дискретизации, которая является наиболее важной частью контроля качества изображения при кодировании видео. Мы используем единицы измерения: кбит/с или Мбит/с. Вообще говоря, при одном и том же разрешении, чем больше кодовый поток видеофайла, тем меньше коэффициент сжатия и тем выше качество изображения. Чем больше кодовый поток, тем выше частота дискретизации в единицу времени, чем выше поток данных, тем выше точность, чем ближе обработанный файл к исходному файлу, тем лучше качество изображения, тем четче качество изображения и тем выше требуется декодирующая способность устройства воспроизведения.

Конечно, чем больше кодовая скорость, тем больше размер файла.Формула расчета: размер файла = время X кодовая скорость/8. Например, обычный 90-минутный файл 720P RMVB с битрейтом 1 Мбит/с в Интернете имеет объем = 5400 секунд × 1 Мбит/с/8 = 675 МБ.

Вообще говоря, видеофайл включает в себя изображение (видео) и звук (аудио). Например, видеофайл RMVB содержит видеоинформацию и аудиоинформацию. Аудио и видео имеют разные методы дискретизации и скорости передачи данных. битрейт одного и того же видеофайла неодинаков. И то, о чем мы говорим, — это битрейт видеофайла, который обычно относится к сумме битрейтов аудио- и видеоинформации в видеофайле.

частота кадров

Частота кадров также известна как FPS (кадры в секунду) — — — кадров в секунду. Относится к количеству кадров изображения, обновляемых в секунду, что также можно понять, поскольку графический процессор может обновляться несколько раз в секунду. Более высокая частота кадров обеспечивает более плавную и реалистичную анимацию. Чем больше кадров в секунду (FPS), тем плавнее отображается движение.

Есть несколько основных данных о частоте кадров:

  • Чем выше частота кадров, тем выше потребление процессора
  • Живое видео шоу, общая частота кадров 20 кадров в секунду.
  • Обычная видеотрансляция в прямом эфире, общая частота кадров 15 кадров в секунду.

разрешение

Разрешение видео относится к размеру или размерам изображения, создаваемого продуктом видеоизображения. Распространенные разрешения видео: 352×288, 176×144, 640×480 и 1024×768. В двух наборах чисел для изображения первое — это длина изображения, второе — ширина изображения, произведение двух — это пиксель изображения, а соотношение сторон обычно составляет 4:3.

480P: 640 х 480 пикселей 720P: 1280 x 720 пикселей 1080P: 1920x1080 пикселей

Затем вам также нужно обратить внимание на формат хранения каждого пикселя и размер байта, занимаемый каждым пикселем.

Формат хранения изображений yuv

Каковы основные элементы цветного изображения?

1. Ширина: сколько пикселей в строке. 2. Высота: сколько пикселей в столбце и сколько строк в кадре. 3. Формат YUV или формат RGB? 4. Сколько байтов в строке? ? 5. Каков размер изображения? 6. Какое разрешение изображения?

Грубо говоря, основное, что содержится в изображении, — это двоичные данные, а его емкость — это, по сути, количество двоичных данных. Изображение YUV422 размером 1920x1080 пикселей, размер 1920X1080X2=4147200 (десятичный), что составляет размер 3,95M. Этот размер связан с количеством пикселей и форматом хранения данных.

Связь между YUV и пикселями:

Формат YUV, аналогичный хорошо известному RGB, YUV также является методом цветового кодирования, в основном используемым в телевизионных системах и аналоговых видеополях, он разделяет информацию о яркости (Y) и информацию о цвете (UV) и может отображать полную информацию без УФ-информации. Изображение только черно-белое, и такая конструкция решает проблему совместимости цветного и черно-белого телевизоров. Кроме того, YUV не требует одновременной передачи трех независимых видеосигналов, как RGB, поэтому передача в YUV занимает очень небольшую полосу пропускания.

Есть две основные категории форматов YUV: планарные и упакованные. Для плоскостного формата YUV Y всех пикселей сохраняется последовательно, затем U всех пикселей, а затем V всех пикселей. Для упакованного формата YUV значения Y, U и V каждого пикселя сохраняются непрерывно и попеременно.

YUV делится на три компонента: «Y» представляет яркость (яркость или яркость), т. е. значение серого, а «U» и «V» представляют цветность (цветность или цветность), чтобы описать изображение и насыщенность цвета. , цветовое обозначение пикселя.      Используя яркость YUV (Y), сжимается две цветовые разницы (U, V) вместо традиционного цветного изображения RGB. Используя обычные красный, зеленый и синий, три основных цвета RGB представляют пиксель, каждый основной цвет представляет собой один байт (8 бит), поэтому для отображения пикселя RGB требуется 8 * 3 = 24 бита.

Если пиксель представлен YUV, предполагается частота дискретизации YUV: 4:2:0, т. е. яркость Y каждого пикселя является частотой дискретизации, цветовая разница U и V, каждая из которых является соседними двумя пикселями от каждого a U и V . Для одного пикселя цветность U и V составляют половину частоты дискретизации яркости. Если три соседних пикселя, если они выражены в цвете RGB, то общая потребность занимать: 8 * 3 * 3 = 72 бит; если YUV (4: 2: 0) указывает только на необходимость заполнения: 8 * 3 (Y) + 8 * 3 * 0,5 (U) + 8 * 3 * 0,5 (В) = 36 бит. Только половина исходного пространства, она может представлять исходную скорость сжатия данных изображения удвоилась, в то время как эффект изображения в основном не изменился.

Итак, как посчитать количество байтов, занимаемых конкретным форматом yuv?

Размер памяти формата изображения YUV

  • 4:4:4 означает, что значения цветности (UV) не понижаются. То есть Y, U, V занимают по одному байту, плюс один байт для альфа-канала, что составляет всего 4 байта.Этот формат на самом деле является форматом RGB с 24 битами на пиксель.

  • 4:2:2 означает, что выборка UV-компонента уменьшается вдвое, например, первый пиксель сэмплирует Y, U, второй пиксель сэмплирует Y, V и т. д., так что каждая точка занимает 2 байта Два пикселя образуют макрос пиксель.

    • Требуемая память: w * h * 2
  • 4:2:0 Этот тип выборки не означает, что есть только компоненты Y, Cb и нет компонентов Cr.. Здесь 0 означает, что компоненты U и V отбираются через каждую вторую строку. Например, первая строка имеет выборку 4:2:0, вторая строка — 4:0:2 и т. д. В этом методе выборки каждый пиксель занимает 16 бит или 10 бит пространства.

    • Память: yyyyyyyyuuvv
    • Требуемая память: w * h * 3 / 2
  • 4:1:1 может относиться к компоненту 4:2:2, который дополнительно сжат, а компоненты U и V собираются только через каждые четыре точки. Как правило, первая точка — это Y, U, вторая — Y, третья — YV, четвертая — Y и так далее.

yuv格式.png

Взаимосвязь между частотой кадров, битрейтом и разрешением

Нет никакой связи между битрейтом и частотой кадров

Отношения между скоростью полосы пропускания, размер файла

Частота кадров связана с плавностью изображения и потреблением ресурсов процессора.

Разрешение связано с размером изображения и резкостью

Размер видеофайла составляет 5,86 МБ, а время воспроизведения — 3 минуты 7 секунд.

  • 1. Кодовая скорость, соответствующая файлу, равна

    • 5.86 * 1024 * 1024 * 8 / (3 * 60 + 7) = 262872.95657754bps
  • 2. Количество одновременных онлайн-пользователей, которое может поддерживать 10-мегабитная эксклюзивная полоса пропускания.

    • 10 * 1024 * 1024 / 262872.95657754 = 39.889078498294
  • 3. Минимальная пропускная способность, необходимая для системы, поддерживающей 1000 человек в сети одновременно, составляет

    • 262872 * 1000 / (1024 * 1024) = 250.69427490234M

10 мин, потребление потока 41587 КБ

41587/10*60 = 69KB/s = 69 * 8 Kb/s = 532Kb/s

Получаем скорость 532Кб/с

формула размера выходного файла

Файл со скоростью кодирования аудио 128 Кбит/с и скоростью кодирования видео 800 Кбит/с имеет общую скорость кодирования 928 Кбит/с, что означает, что закодированные данные должны быть представлены со скоростью 928 Кбит/с.

Формула размера файла: (скорость кодирования аудио (в кбит)/8 + скорость кодирования видео (в кбит)/8) × общая длина видео (в секундах) = размер файла (в МБ)

размер изображения в один кадр

Исходный размер кадра изображения = ширина пикселя * длина пикселя, конечно, необходимо учитывать формат данных, потому что формат данных другой, и капитализация не та.Как правило, данные в формате rgb, yuv , такие как rgb32, yuv420, yuv422 и т. д. Наиболее часто используемый должен принадлежать yuv420. Следовательно, формула расчета:

Количество байтов файла = разрешение изображения * биты квантования изображения / 8 Разрешение изображения = количество пикселей в направлении X * количество пикселей в направлении Y число квантования изображения = биты двоичного цвета

  • Размер каждого кадра RGB24

    • размер=ширина×высота×3 бит
  • Размер каждого кадра RGB32 составляет

    • размер=ширина×высота×4
  • Размер каждого кадра YUV420 составляет

    • размер=ширина×высота×1,5 бит

Например, для изображения 1024*768 фактический размер потока данных YUV422 составляет: 1024 * 768 * 2 = 1572864 бит.

Частота дискретизации звука, битовое число

1. Количество каналов: количество каналов является важным показателем передачи звука, и сейчас в основном есть моно и двойные каналы. Двухканальный, также известный как стерео, занимает в аппаратном обеспечении две строки, и качество звука и тембр хорошие, но пространство, занимаемое стерео, после оцифровки в два раза больше, чем моно.

2. Биты квантования: биты квантования оцифровывают ось амплитуды аналогового аудиосигнала, которая определяет динамический диапазон аналогового сигнала после его оцифровки. Поскольку компьютеры работают с байтами, обычные биты квантования составляют 8 и 16 бит. Чем выше бит квантования, тем больше динамический диапазон сигнала и тем более вероятно, что оцифрованный аудиосигнал близок к исходному сигналу, но тем больше места для хранения требуется.

   3. Частота дискретизации: также известная как скорость дискретизации или частота дискретизации, определяет количество выборок в секунду, которые извлекаются из непрерывных сигналов для формирования дискретных сигналов.Она выражается в герцах (Гц). Частота дискретизации относится к частоте дискретизации при преобразовании аналогового сигнала в цифровой сигнал, то есть к тому, сколько точек дискретизируется в единицу времени. Сколько битов содержится в данных точки выборки. Битрейт относится к количеству битов (битов), передаваемых в секунду. Единицей измерения является бит/с (бит в секунду).Чем выше битрейт, тем больше объем передаваемых данных и тем лучше качество звука.

Выбор частоты дискретизации должен следовать теории дискретизации Найквиста (Гарри Найквиста) (если дискретизируется аналоговый сигнал, самая высокая частота сигнала, которая может быть восстановлена ​​после дискретизации, составляет только половину частоты дискретизации, или до тех пор, пока частота дискретизации выше, чем входной сигнал (в два раза выше самой высокой частоты, исходный сигнал может быть восстановлен из серии дискретизированных сигналов). Согласно теории дискретизации, частота дискретизации компакт-диска CD составляет 44 кГц, а самая высокая звуковая частота, которая может быть записана, составляет 22 кГц. Частота, используемая для цифровых телефонов в системах связи, обычно составляет 8 кГц, что согласуется с исходным звуком с полосой пропускания 4 кГц.

Битрейт (аудио) = частота дискретизации x используемые биты x количество каналов.

Возьмем для примера телефон, 3000 выборок в секунду, каждая выборка 7 бит, тогда битрейт телефона 21000. И CD - 44100 выборок в секунду, два канала, каждая выборка - 13-битное кодирование PCM, поэтому скорость передачи CD составляет 44100.213 = 1146600, то есть объем данных в секунду составляет около 144кб, а емкость компакт-диска равна 74 точкам, равным 4440 секундам, что составляет 639360кб = 640Мб.

I-кадр, P-кадр, B-кадр, IDR-кадр

Кадр I: кадр с внутренним кодированием

Особенности I рамы:

  1. Это кодированный кадр со сжатием полного кадра. Он выполняет кодирование со сжатием JPEG и передачу информации о полнокадровом изображении;
  2. Только данные I кадра могут быть использованы для восстановления полного изображения во время декодирования;
  3. I-кадры описывают детали фона изображения и движущихся объектов;
  4. I-кадры генерируются без привязки к другим изображениям;
  5. I-кадр является опорным кадром P-кадра и B-кадра (его качество напрямую влияет на качество последующих кадров в той же группе);
  6. I-кадр является базовым кадром (первым кадром) GOP группы кадров, и в группе есть только один I-кадр;
  7. I-кадры не должны учитывать векторы движения;
  8. Информационное количество данных, занимаемых I-кадром, относительно велико.

P-кадр: кодированный кадр с предсказанием вперед

Прогнозирование и реконструкция P-кадра: P-кадр является опорным кадром с I-кадром, а предсказанное значение и вектор движения "точки" P-кадра находятся в I-кадре, а разница предсказания и вектор движения передаются вместе. На принимающей стороне полный P-кадр может быть получен из p-кадра «точка» из I-кадра из I-кадра в соответствии с вектором движения и получает значение выборки P-кадра «точка». Также известный как ПРОГНОЗИРУЮЩИЙ КАДР, за счет значительного уменьшения объема кодированного изображения объема передаваемых данных ниже информации о временной избыточности ранее закодированного кадра в последовательности изображений, также называемой прогнозируемым кадром.

Особенности P-рамки:

  1. Рамка P - это кодированная рамка, которая составляет 1 ~ 2 кадра, кроме рамы i;
  2. P-кадр передается с компенсацией движения для передачи разницы и вектора движения (прогностической ошибки) предыдущего I- или P-кадра;
  3. При декодировании значение предсказания в I-кадре должно быть суммировано с ошибкой предсказания, чтобы восстановить полное изображение P-кадра;
  4. P-кадры относятся к межкадровому кодированию с предсказанием вперед. Он относится только к предыдущему I-кадру или ближайшему к нему P-кадру;
  5. P-кадр может быть опорным кадром P-кадра позади него или опорным кадром B-кадра до и после него;
  6. Поскольку эталонная рама представляет собой P-рамка, это может привести к диффузии ошибки декодирования;
  7. Поскольку это дифференциальная коробка передач, сжатие рамы P относительно высока.

B-кадр: кодированный кадр с двунаправленной предиктивной интерполяцией.

Прогнозирование и реконструкция B-кадра: B-кадр берет предыдущий I- или P-кадр и следующий P-кадр в качестве опорного кадра, «находит» предсказанное значение и два вектора движения «точки» B-кадра и принимает разность предсказаний и перенос вектора движения. В соответствии с вектором движения приемник «находит (вычисляет)» прогнозируемое значение в двух опорных кадрах и суммирует его с разницей, чтобы получить «точечное» значение выборки кадра B, чтобы можно было получить полный кадр B. . Также известный как двунаправленный интерполированный кадр предсказания, он учитывает как кодированный кадр перед последовательностью исходного изображения, так и информацию о временной избыточности между кодированными кадрами после последовательности исходного изображения для сжатия кодированного изображения, которое передает объем данных, а также называется кадром двунаправленного предсказания.

Особенности B-рамы:

  1. B-кадры предсказываются по предшествующим I- или P-кадрам и последующим P-кадрам;
  2. Кадр B передает ошибку предсказания и вектор движения между ним и предыдущим кадром I или P и последующим кадром P;
  3. B-кадры представляют собой кадры с двунаправленным кодированием с предсказанием;
  4. Коэффициент сжатия кадра B является самым высоким, поскольку он отражает только изменения основной части движения опорного кадра CHV, и прогнозирование является относительно точным;
  5. Кадр B не является опорным кадром и не вызывает распространения ошибок декодирования.

кадр IDR

IDR (Instantaneous Decoding Refresh) — мгновенное обновление декодирования.

Кадры I и IDR прогнозируются с использованием внутрикадрового. Это все одно и то же.Для удобства кодирования и декодирования первый I-кадр нужно отличать от других I-кадров, поэтому первый и первый I-кадр называются IDR, что удобно для управления процессом кодирования и декодирования. Роль кадра IDR заключается в немедленном обновлении, чтобы ошибка не распространялась, начиная с кадра IDR, пересчитать новую последовательность и начать кодирование. I-кадр не имеет возможности произвольного доступа, эту функцию берет на себя IDR. IDR приведет к тому, что DPB (список опорных кадров DecodedPictureBuffer — это ключ) будет очищен, а я — нет. IDR-изображение должно быть IDR-изображением, но IDR-изображение не обязательно является IDR-изображением. В последовательности может быть много I-изображений, и изображения после I-изображения могут ссылаться на изображения между I-изображениями для ссылки на движение. В последовательности может быть много I-изображений, и изображения после I-изображения могут ссылаться на изображения между I-изображениями для ссылки на движение.

Для кадра IDR все кадры после кадра IDR не могут ссылаться на содержимое какого-либо кадра до кадра IDR, в отличие от обычного I-кадра, B- и P-кадры после него могут ссылаться на I-кадр, предшествующий кадру IDR. обычный I-кадр. Из видеопотока с произвольным доступом проигрыватель всегда может воспроизвести кадр IDR, потому что ни один кадр после него не ссылается на предыдущий кадр. Однако невозможно начать воспроизведение с произвольной точки видео без кадра IDR, поскольку более поздние кадры всегда относятся к более ранним кадрам.

резюме

I Рамка представляет собой ключевой кадр, вы можете понять его как полное бронирование этой рамки изображения; только этот кадр данных может быть завершен при декодировании (потому что он содержит полное изображение).

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

Кадр B является двунаправленным разностным кадром, то есть кадр B записывает разницу между текущим кадром и предыдущим кадром.Другими словами, для декодирования кадра B необходимо не только предыдущее кэшированное изображение, но и декодированное изображение. Наложение данных кадра дает окончательное изображение. Скорость сжатия B-кадров высока, но при декодировании процессор будет больше уставать.

PTS: Отметка времени презентации. PTS в основном используется для измерения времени отображения декодированного видеокадра.

DTS: отметка времени декодирования. DTS в основном идентифицирует, когда битовый поток, считанный в память, начинает отправляться в декодер для декодирования.

DTS в основном используется для декодирования видео и используется на этапе декодирования.PTS в основном используется для синхронизации и вывода видео.Он используется на дисплее.При отсутствии B-кадра порядок вывода DTS и PTS одинаков.

GOP

GOP.png

GOP формируется между двумя I кадрами, а размер bf может задаваться параметрами в x264 одновременно, то есть: количество B между I и p или двумя Ps. Последним кадром GOP должен быть P, если есть кадр B.

Общее среднее значение сжатия I - 7 (аналогично jpg), а p равно 20, b может достигать 50, что можно увидеть с помощью рамы B может сэкономить много места, сохранение пространства можно использовать для экономии больше Рамка, поэтому лучшее качество может быть предоставлено под тем же битовой скоростью. Под предпосылкой кодовой скорости, тем больше ценность Республиканской партии, тем больше количество p, и кадр будет, тем больше количество байтов, занятых в среднем каждым I, P и B, что более легко получается , Качество изображения; Чем больше ссылка, тем больше количество кадров B, то же самое большее вероятность достижения лучшего качества изображения.

Если I-кадр потерян в GOP, последующие P- и B-кадры будут бесполезны, поэтому они должны быть потеряны, но общая стратегия гарантирует, что I-кадр не будет потерян (например, через протокол tcp). используется, то также будет больше стратегий для обеспечения корректной передачи I-кадров.

Кодек

жесткий кодек

Кодирование и декодирование с помощью аппаратного обеспечения, что снижает нагрузку на процессорные вычисления, такие как графический процессор и т. д.

программный кодек

Алгоритмы кодеков, такие как H264, H265, MPEG-4 и т. д., потребляют больше ресурсов ЦП.

Оптимизация данных

Оптимизация данных и алгоритмы кодирования и декодирования, вообще говоря, тесно связаны между собой.

размер кадра видео

  • Как правило, коэффициент сжатия I-кадра равен 7, P-кадра — 20, а B-кадра может достигать 50 (данные неточны).
  • Кадр P составляет около 3 ~ 4 КБ (480P, битрейт 1200k, базовый профиль)

размер звукового кадра

  • (Частота дискретизации (Гц) * Биты дискретизации (бит) * Количество каналов) / 8
  • 48000 Гц должно быть около 12 КБ/с после сжатия AAC.

Протокол передачи потокового мультимедиа

Обычно используемые протоколы потоковой передачи мультимедиа в основном включают в себя прогрессивную загрузку HTTP и протоколы потоковой передачи мультимедиа в реальном времени на основе RTSP/RTP, которые, по сути, являются совершенно разными вещами.

Протоколы потокового мультимедиа, обычно используемые в прямой трансляции CDN, включают RTMP, HLS, HTTP FLV.

РТП, РТКП

Транспортный протокол в реальном времени (транспортный протокол в реальном времени), протокол RTP часто используется в системах потоковой передачи мультимедиа (с протоколом RTCP), видеоконференциях и системах push-to-talk (с H.323 или SIP), что делает его техническим основа индустрии IP-телефонии. Протокол RTP используется вместе с протоколом управления RTP RTCP и основан на протоколе UDP.

Протокол управления транспортировкой в ​​реальном времени (протокол управления транспортировкой в ​​реальном времени или протокол управления RTP или RTCP для короткого RTCP) является сестринским протоколом транспорта в реальном времени. RTCP предоставляет Out-Cannal Control для потоков носителей RTP. Сама RTCP не передает данные, но работает с RTP для пакета и отправки мультимедийных данных. RTCP периодически передает управляющие данные между участниками потокового мультимедийного сеанса. Основная функция RTCP заключается в предоставлении обратной связи по качеству услуги, предоставляемой RTP.

RTP.png

RTSP + RTP часто используется в сфере IPTV. Поскольку он использует передачу видео-аудио UDP, поддерживает многоадресную передачу, высокую эффективность. Однако его недостаток в том, что могут пропадать сети, что сказывается на качестве видео.

резюме

TCP_UDP_RTCP.png

RTMP

RTMP (Real Time Messaging Protocol) — это открытый протокол, разработанный Adobe Systems для передачи аудио, видео и данных между Flash-плеерами и серверами.

Он имеет три варианта:

  • Открытый текстовый протокол, который работает через TCP, используя порт 1935;
  • RTMPT инкапсулируется в HTTP-запросы и может проходить через брандмауэры;
  • Аналогично RTMPS RTMPT, но с использованием HTTPS-соединения;

Резюме: протокол RTMP реализован на основе TCP, каждый раз данные немедленно пересылаются, обычно с задержкой около 1-3 с.

HLS

HTTP Live Streaming (HLS) — это протокол передачи потокового мультимедиа на основе HTTP, реализованный Apple Inc., который может реализовывать потоковое мультимедиа в реальном времени и по запросу. HLS по запросу — это в основном обычный сегментированный HTTP по запросу, разница в том, что его сегменты очень малы. Основной принцип — разрезать видео или поток на мелкие кусочки (TS) и создать индекс (M3U8).

По сравнению с обычными протоколами прямой трансляции потокового мультимедиа, такими как протокол RTMP, протокол RTSP, протокол MMS и т. д., самое большое отличие прямой трансляции HLS заключается в том, что клиент прямой трансляции получает не полный поток данных. Протокол HLS сохраняет поток данных в режиме реального времени в виде непрерывных коротких медиафайлов (формат MPEG-TS) на стороне сервера, а клиентская сторона постоянно загружает и воспроизводит эти небольшие файлы, поскольку серверная сторона всегда отправляет последнюю прямую трансляцию. Данные генерируют новые небольшие файлы, так что, пока клиент непрерывно последовательно воспроизводит файлы, полученные с сервера, осуществляется прямая трансляция. Видно, что в принципе можно считать, что HLS осуществляет прямую трансляцию посредством технологии on-demand. Поскольку данные передаются по HTTP-протоколу, нет необходимости учитывать проблему брандмауэра или прокси, а длительность сегментированного файла очень мала, и клиент может быстро выбрать и переключить битрейт для адаптации к воспроизведению под различные условия полосы пропускания. Однако эта техническая особенность HLS определяет, что его задержка, как правило, выше, чем у обычных протоколов потоковой передачи в реальном времени.

Резюме: протокол HLS реализован на основе коротких HTTP-соединений.Он собирает данные в течение определенного периода времени, генерирует файлы фрагментов ts, а затем обновляет m3u8 (индексный файл для HTTP Live Streaming).Как правило, задержка будет больше 10 сек. .

HTTP-FLV

HTTP-FLV основан на длинных HTTP-соединениях, как и RTMP, данные в каждый момент пересылаются сразу после их получения, но используется протокол HTTP, а задержка обычно составляет 1-3 секунды.

CDN

Дизайн архитектуры CDN более сложен. Различные поставщики CDN также постоянно оптимизируют свою архитектуру, поэтому архитектуру нельзя унифицировать. Вот лишь краткий анализ некоторых базовых архитектур.

CDN в основном включает в себя несколько основных компонентов: исходный сайт, кеш-сервер, интеллектуальный DNS и клиент.

Происхождение: относится к исходному сайту, на котором публикуется контент. Добавление, удаление и изменение файлов веб-сайта выполняются на исходном сайте; кроме того, все объекты, извлекаемые кэш-сервером, поступают с исходного сайта. Для прямых трансляций исходным сайтом является широковещательный клиент.

Кэш-сервер: это ресурс сайта, непосредственно предоставляемый пользователям и состоящий из одного или нескольких серверов; когда пользователь инициирует доступ, его запрос на доступ направляется интеллектуальным DNS на ближайший к нему кеш-сервер. Если содержимое, запрошенное пользователем, оказывается в кеше, содержимое возвращается непосредственно пользователю; если содержимое, необходимое для доступа, не кэшируется, сервер кеша извлекает содержимое с соседнего сервера кеша или непосредственно с исходного сайта. , а затем возвращает его пользователю.

Smart DNS: это ядро ​​всей технологии CDN, которое в основном направляет свои запросы на доступ к кэш-серверу, который находится ближе к пользователю и имеет меньшую нагрузку в зависимости от источника пользователя и текущей загрузки кэш-сервера. Благодаря интеллектуальному разрешению DNS пользователи могут получать доступ к серверам того же поставщика услуг с меньшей нагрузкой, что может устранить проблему медленного доступа к сети и добиться ускорения.

Клиент: то есть обычный пользователь, который инициирует доступ. Для прямой трансляции это клиент аудитории.

Слабая оптимизация сети

Стратегии слабой сетевой оптимизации включают следующее:

  • Буфер игрока

  • Стратегия пропуска кадров (первый отбрасывается P-кадр, вторым I-кадр, последним аудио)

  • Адаптивный алгоритм битрейта

  • Оптимизация двунаправленной связи

  • Алгоритм резервирования аудио FEC (уровень потери пакетов 20 %)

выпадающая рамка

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

Адаптивный битрейт

В случае слабой сети другой надежной стратегией является адаптивный алгоритм скорости передачи данных, который понижается до нескольких уровней путем установки скорости передачи данных. Таким образом, когда сеть не очень хороша, прогноз может быть сделан путем уменьшения скорости передачи скорость.После уменьшения буфера буфера недостаточно, затем продолжайте уменьшать оценку, это процесс кругового обнаружения, если вы обнаружите, что буферного буфера достаточно после понижения оценки снова, это означает, что текущая сеть может адаптироваться к этой скорости кода, поэтому будет принят текущий код. То же самое касается повышения передачи. Но это относится к основному алгоритму производителя,

Задача живого чата

Просто оцените приблизительную задержку сети. Как мы все знаем, скорость света в вакууме составляет около 300 000 км/с, в то время как в других средах скорость света будет сильно снижена, поэтому в обычных оптических волокнах скорость передачи обычно считается равной 200 000 км/с в инженерия. Практически говоря, вы можете обратиться к следующему:

距离光纤延迟.png

距离往返延迟.png

Проблемы живого чата в основном заключаются в следующих моментах:

  • В режиме реального времени: в пределах 600 мс

  • сетевая асимметрия

  • расстояние

Часто задаваемые вопросы и решения

  • Huaping и проблемы с зеленым экраном

    • Проблемы со сбором данных, проблемы с кодированием и декодированием, проблемы с потерей кадров при передаче звука по сети.
  • Аудио и видео не синхронизированы

    • Проблемы с коллекцией или проблемы SDK общедоступного облака
  • Иногда экран немного размыт

    • Слабая сеть, адаптивный код кода
  • Звук есть, а изображения нет

    • Слабая сеть, срабатывание политики пропуска кадров
  • Воспроизведение экрана иногда зависает

    • Высокая загрузка ЦП приводит к зависаниям, например, модулям AR
    • слабая сеть
  • Не могу подключиться к сети

    • слабая сеть
    • Или в коде есть ошибки, или в общедоступном облачном SDK есть ошибки
  • Феномен мозаики?

    • Это похоже на Хуапин?

TODO

Другие распространенные индикаторы и решения проблем

["Добро пожаловать, обратите внимание на мою общедоступную учетную запись WeChat: разработка серверной системы Linux, и позже я буду активно отправлять высококачественные статьи через общедоступную учетную запись WeChat"]

我的微信公众号