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

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

Оригинальная ссылка: https://blog.csdn.net/zgpeace/article/details/108552358.

иллюстрировать

Эта статья включает принципы/идеи/практику/планы/интерфейс/резюме.

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

Универсальная модель потокового вещания

  1. Прежде всего, якорная сторона, которая является источником потоков, состоит из ряда процессов: во-первых, сбор данных с помощью определенного оборудования; во-вторых, выполнение ряда процессов над собранными видео, таких как водяные знаки и специальные эффекты. Фильтры и другая обработка; в-третьих, кодировать и сжимать обработанное видео-результат в просмотримый и передаваемый видеопоток; в-четвертых, распространять Push-стриминг, то есть передавать сжатый видеопоток по сетевому каналу.
  2. Во-вторых, функции «даиграть» и «играть» имеют два уровня. Первый уровень — это ключевые потребности, второй — уровень бизнеса. Давайте сначала рассмотрим первый уровень. Он включает в себя некоторые очень ключевые показатели, такие как открытие за секунды, которое требуется во многих сценариях, а затем защита авторских прав некоторого важного контента. Чтобы добиться лучших результатов, нам также необходимо сотрудничать с сервером для выполнения интеллектуального анализа, что также является критически важным требованием в определенных сценариях. Давайте рассмотрим второй уровень, то есть функции на бизнес-уровне. Для социальной сети. Что касается трансляционного продукта, то с игровой стороны аудитория надеется увидеть видеопоток, продвигаемый ведущим в реальном времени, и иметь определенное взаимодействие между ведущим и другими зрителями, поэтому оно может включать лайки, чаты. и функции заграждения, а также более продвинутый реквизит, такой как подарки.
  3. Мы знаем, что производители и потребители контента, как правило, не имеют однозначного соответствия. Для прямой Что касается трансляционных продуктов, наиболее интуитивным проявлением является то, что у ведущего может быть много поклонников. Поэтому мы не можем напрямую разрешить якорному терминалу и всем терминалам осуществлять двухточечную связь, что технически невозможно или очень сложно. Прежде чем видеотрансляция ведущего дойдет до конца игры, ей необходимо пройти ряд промежуточных звеньев, о чем мы здесь и говорим. трансляция на стороне сервера.
  4. прямая Основная функция трансляции, обеспечиваемая серверной частью, заключается в сборе видеоPush-стриминга со стороны якоря, его усилении и доставке всем зрителям. В дополнение к этой основной функции существует множество требований оперативного уровня, таких как аутентификация, транскодирование в реальном времени, автоматическая идентификация порно, многоэкранная интеграция, а также запись и хранение в облаке. Кроме того, для потока, запущенного якорем, ему необходимо пройти некоторые ссылки в середине, чтобы достичь конца. Поэтому контроль качества промежуточных каналов и выполнение интеллектуального планирования на основе этого мониторинга также являются очень важными требованиями.
  5. На самом деле, независимо от того, являются ли они ведущими или даиграют, их требования не так просты, как съемка видеоигратьвидео. После того, как этот основной спрос будет удовлетворен, остается еще много ключевых требований, которые необходимо удовлетворить. Например, для прямого Для трансляционных продуктов, помимо этих трех модулей, также необходимо реализовать бизнес-сервер для управления Push-стримингииграть и поддержания статуса всех пользователей. Таким образом, можно использовать прямую линию потребительского уровня. трансляцияпродукт。

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

Архитектура прямой трансляции

Прямая трансляция Архитектура приложения и технические моменты

Бизнес-логика приложения прямой трансляции не сложна, просто используйте базовую структуру MVC.

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

Полная функция приложения для прямой трансляции

  1. Чат: приватный чат, чат, световой, push, черный список и т. д.;
  2. Подарки: обычные подарки, роскошные подарки, красные конверты, рейтинги, сторонние пополнения, внутриигровые покупки, динамические обновления подарков, снятие наличных и т. д.;
  3. прямая трансляциясписок: сосредоточиться на, популярные, последние, категории прямые список пользователей трансляций и т. д.;
  4. Собственныйпрямая трансляция: Записывать、Push-стриминг、декодирование、играть、Красота、сердцебиение、Переключение фона、Якоря действуют на администраторов、Администраторы пользователям и т.д.;
  5. Логика комнаты: создать комнату, войти в комнату, выйти из комнаты, закрыть комнату, переключить комнату, настройки администратора комнаты, список пользователей комнаты и т. д.;
  6. Логика пользователя: Обычный вход, сторонний вход, регистрация, поиск, изменение личной информации, фокус на список, список поклонников, забытый пароль, просмотреть личную информацию, список доходов, сосредоточиться наи Поиск, поиск и т.п.;
  7. смотретьпрямая трансляция: Информация чата, прокрутка, отображение подарков, интерфейс загрузки и т. д.;
  8. Статистика: бизнес-статистика приложений, статистика третьих сторон и т. д.;
  9. Супер контроль: бан, скрытие, просмотр и т.д.;

Полный процесс внедрения приложения для прямой трансляции

1. Соберите、2. Обработка фильтра、3. Кодирование、4.Push-стриминг、5.Распределение CDN、6.вытягивать поток、7.декодирование、8.играть、9.Взаимодействие в чате

Понимание потокового мультимедиа (для прямой трансляции требуется потоковое мультимедиа)

  1. Разработка потокового мультимедиа: сетевой уровень (сокет или st) отвечает за передачу, уровень протокола (rtmp или hls) отвечает за сетевую упаковку, уровень инкапсуляции (flv, ts) отвечает за инкапсуляцию скомпилированных данных, а кодирование слой (h.264аac) отвечает за сжатие изображений и звука.
  2. Кадр: каждый кадр представляет собой неподвижное изображение.
  3. GOP:(Group of Картинки), GOP — это группа непрерывных изображений, каждое изображение — это кадр, а GOP — это совокупность множества кадров. ☞ прямая Данные трансляции на самом деле представляют собой набор изображений, включающий I-кадры, P-кадры и B-кадры. Когда пользователь просматривает их в первый раз, он будет искать I-кадр, а игровой сервер найдет ближайший I-кадр. и передать его пользователю. Таким образом, Республиканская партия Кэш увеличивает сквозную задержку, поскольку он должен получить самый последний I-кадр. ☞ GOP Чем больше длина кэша, тем лучше качество изображения.
  4. Скорость передачи данных: объем данных, отображаемых в секунду после сжатия изображения.
  5. Частота кадров: количество изображений, отображаемых в секунду. Он влияет на плавность картинки и прямо пропорционален плавности картинки: чем больше частота кадров, тем более плавная картинка, чем меньше частота кадров, тем более дерганная картинка; ☞ Из-за особого физиологического строения человеческого глаза, если частота кадров просматриваемого изображения превышает 16, оно будет считаться когерентным. Это явление называется инерционностью зрения. А когда частота кадров достигнет определенного значения, если она снова увеличится, человеческому глазу будет непросто обнаружить значительное улучшение плавности.
  6. Разрешение: (прямоугольник) Длина и ширина изображения, то есть размер изображения.
  7. Объем данных в секунду до сжатия: частота кадров
  8. Коэффициент сжатия: объем данных в секунду до сжатия/скорость передачи данных. (Для одного и того же источника видео и использования одного и того же алгоритма кодирования видео: чем выше степень сжатия, тем хуже качество изображения.)
  9. формат видеофайла: суффикс файла, например .wmv, .mov, .mp4, .mp3, .avi, ☞ Основная цель заключается в том, что на основе формата файла система автоматически определит, какое программное обеспечение использовать для его открытия. Уведомление: Изменение формата файла по своему желанию не окажет большого влияния на сам файл. Например, если вы измените avi на mp4, файл все равно будет avi.
  10. Формат упаковки видео: контейнер для хранения видеоинформации. Потоковая упаковка может включать TS, FLV и т. д., а индексированная упаковка может включать MP4, MOV, AVI и т. д. ☞ Основная функция: видеофайл часто содержит изображения и аудио, а также некоторую информацию о конфигурации (например, связь изображений и аудио, способы их декодирования и т. д.): это содержимое должно быть организовано и инкапсулировано в соответствии с определенными правилами. ☞ Примечание. Вы обнаружите, что формат инкапсуляции такой же, как и формат файла, поскольку обычно суффикс имени формата видеофайла использует соответствующий Формат. упаковки Название видео, поэтому формат видеофайла — да Формат. упаковки видео。
  11. Формат упаковки Стандарт кодирования сжатия видеоивидео: так же, как проект проекта и язык программирования, формат упаковки — это проект проекта, метод кодирования видео — это язык программирования, проект проекта может быть разработан на разных языках.

Введение в базовые знания о прямых трансляциях

Собираем видео и аудио

Собираем видео и аудиоструктура кодирования:AVFoundation:AVFoundationдаиспользуется дляигратьи Платформа для создания аудиовизуальных медиаданных в реальном времени.,В то же время для работы с этими аудиовизуальными данными предоставляется интерфейс Objective-C.,Например, редактирование,вращать,Перекодировать

Видео и аудио аппаратное оборудование

  • ПЗС: датчик изображения: используется для процесса получения и обработки изображений, преобразования изображений в электрические сигналы.
  • Звукосниматель: Датчик звука: используется для процесса сбора и обработки звука, преобразования звука в электрические сигналы.
  • Данные выборки звука: обычно в формате PCM.
  • видео Выборочные данные: Вообще да ЮВ,илиRGBФормат,Громкость собранного оригинального звука очень велика.,Для повышения эффективности передачи необходима технология сжатия.

Обработка видео (оформление, водяные знаки)

  • принцип обработки видео: потому что видео в конечном итоге проходит через графический процессор,Покадровый рендеринг на экране,Таким образом, мы можем воспользоваться преимуществами OpenGL ES.,Различная обработка видеокадров,Таким образом видео различные эффекты,Как вода, текущая из крана,После нескольких секций труб,а затем перейти к разным целям
  • различные сейчас Красотаивидео Добавить спецэффектыappВседаиспользоватьGPUImageЭта структура реализует,.

Платформа обработки видео

  • GPUImage : GPUImage — это программа на основе OpenGL. Мощный имидж ES/Платформы обработки видео,Различные фильтры упакованы, также можно написать собственные фильтры.,Он имеет встроенное более 120 общих эффектов фильтров.
  • OpenGL: OpenGL (полная открытая графическая библиотека) — это спецификация, определяющая кросс-язык программирования и кросс-платформенный интерфейс программирования для трехмерных изображений (в том числе и двумерных). OpenGL — это профессиональный графический программный интерфейс, мощная и простая в использовании базовая графическая библиотека.
  • OpenGL ES: OpenGL ES (OpenGL для встраиваемых систем) — это подмножество API трехмерной графики OpenGL, разработанное для встроенных устройств, таких как мобильные телефоны, КПК и игровые консоли.

Платформа кодирования и декодирования видео

  • FFmpeg: кроссплатформенная платформа видео с открытым исходным кодом,Может реализовать кодирование, такое как видео,декодирование,Перекодировать,потоковая передача,игра и другие богатые функции. Он поддерживает широкий спектр видеоформатов и игровых протоколов.,Содержит почти все звукивидеокомпилироватьдекодирование、инкапсуляция Формата такжеигратьпротокол。 ☞ -Libswresample: может выполнять повторную дискретизацию и перематризацию звука. И такие операции, как преобразование форматов выборки делать. ☞ -Libavcodec: обеспечивает общую структуру кодирования, включая множество потоков видео, аудио и субтитров. и т.д. Кодировщик/декодирование. ☞ -Libavformat: используется для инкапсуляции видео/Декапсуляция. ☞ -Libavutil: содержит некоторые общие функции, такие как генерация случайных чисел, структуры данных, математические операции и т. д. ☞ -Libpostproc: используется для некоторой постобработки. ☞ -Libswscale: используется для масштабирования изображения, преобразования цветового пространства и т. д. ☞ -Libavfilter: обеспечивает функцию фильтра.
  • X264: сжатие исходных данных в кодировке YUV в формат H.264.
  • VideoToolbox: собственный жестко запрограммированный API видеодекодирования Apple, но он был открыт только после iOS8.
  • AudioToolbox:Apple идет с этим АудиожесткийдекодированиеижесткийкомпилироватькодAPI

технология кодирования видео

  • стандарт кодирования сжатия видео: технология кодирования для сжатия (кодирование видео) или распаковки (видеодекодирование),Например, MPEG, H.264.,Этитехнология кодирования видео сжатие кодирования видео ☞ Основная функция: да сжимает данные видеопикселей в поток видеокода, тем самым уменьшая объем видеоданных. Если он не сжат и не закодирован, размер обычно очень велик, и фильму могут потребоваться сотни гигабайт места. ☞ Уведомление:самый влиятельныйвидеокачествода Чтовидеокомпилироватькодданныеи Аудиокомпилироватькодданные,К формату упаковки это не имеет никакого отношения.
  • MPEG: метод сжатия,Он использует межкадровое сжатие,Сохраняются только различия между последовательными кадрами.
  • H.264/AVC: метод сжатия.,Сжатый с использованием того же метода прогнозирования кадров, что и кадры P-B в MPEG, он может при необходимости генерировать поток, подходящий для передачи по сети.,Также имеется более высокая степень сжатия и лучшее качество изображения. ☞ Примечание 1. Если сравнивать четкость одного изображения, MPEG4 имеет преимущество с точки зрения четкости непрерывности действия, преимущество имеет H.264; ☞ Примечание 2. Поскольку алгоритм 264 более сложен, а реализация программы громоздка, его запуск требует больше ресурсов процессора и памяти. Таким образом, запуск 264 требует относительно высоких системных требований. ☞ Уведомление3:потому что264Реализация более гибкая,Это оставляет некоторую реализацию самим производителям,Хотя это приносит много преимуществ для реализации,Но совместимость между различными продуктами стала большой проблемой.,в результате данные, собранные кодировщиком компании А,Вы должны использовать инструмент декодирования компании А, чтобы решить такие неловкие вещи.
  • H.265/HEVC: метод сжатия.,На основе H.264 сохраняются некоторые исходные технологии, а некоторые связанные технологии улучшаются для улучшения взаимосвязи между потоком кода, качеством кодирования, задержкой и сложностью алгоритма для достижения оптимальных настроек. ☞ H.265 Это более эффективный стандарт кодирования., который позволяет сжимать контент до меньшего размера с тем же качеством изображения, что ускоряет передачу и экономит полосу пропускания. ☞ I кадр: (ключевой кадр) сохраняет полную картинку. При декодировании нужны только данные этого кадра (поскольку он содержит полную картинку).
  • P-образная кадр: (разностный кадр) сохраняет разницу между этим кадром и предыдущим кадром.,при декодировании необходимо использовать ранее кэшированное изображение для наложения разницы, определенной в этом кадре.,Создайте финальный экран. (Кадр P не содержит полных данных изображения.,Только данные, отличающиеся от предыдущего кадра)
  • Кадр B: (кадр двунаправленной разности) разница между сохраненным кадром да и предыдущим и следующим кадрами.,декодированиеBрамка,Вам нужно не только получить предыдущий кэшированный экран,Также хочу сцену после декодирования,Итоговое изображение получается путем наложения предыдущего и последующего изображения на данные этого кадра. Высокая степень сжатия B-кадров.,Но процессор будет больше уставать при дадекодировании
  • Внутрикадровое сжатие: при сжатии кадра изображения учитываются только данные этого кадра без учета избыточной информации между соседними кадрами. Внутри кадра обычно используется алгоритм сжатия с потерями.
  • Межкадровое сжатие: временное сжатие, при котором данные сжимаются путем сравнения данных между разными кадрами на временной шкале. Межкадровое сжатие обычно происходит без потерь.
  • мультиплексирование: смешивание видео в поток、Аудиостримить дажеда Инкапсулировать поток субтитров в файл(Позволятьустройство Формат(FLV,TS)),Передается как сигнал.

технология кодирования звука

AAC, mp3: это технология кодирования звука,сжатие Аудиоиспользовать

контроль скорости

  • Несколько скоростей передачи данных: ситуация с сетью, в которой находится аудитория, очень сложна. Это может быть Wi-Fi, 4G, 3G или даже 2G. Так как же удовлетворить потребности нескольких сторон? Создайте больше линий и настройте скорость передачи данных в соответствии с текущей сетевой средой. ☞ Например:часто виделивидеоигратьв программном обеспечении1024,720,HD,СД,Гладкая и т. д.,Это относится к различным скоростям кода.

Формат упаковки видео

  • TS : Формат инкапсуляции потокового мультимедиа. Одним из преимуществ инкапсуляции потокового мультимедиа является отсутствие необходимости повторно загружать индекс, что значительно уменьшает начальную задержку загрузки. Если фильм относительно длинный, индекс файла mp4 довольно велик. влияет на пользовательский опыт. ☞ Зачем использовать TS: Это потому, что два клипа TS можно легко соединить, а конвертер может работать непрерывно.
  • FLV: формат упаковки потокового мультимедиа.,Поскольку файлы, которые он формирует, чрезвычайно малы, а скорость загрузки чрезвычайно высока, видеофайлы можно смотреть в Интернете.,Таким образом, формат FLV сегодня стал основным форматом.

Push-стриминг

Платформа передачи данных

  • librtmp: используется для передачи данных в формате протокола RTMP.

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

  • RTMP(Real Time Messaging Протокол (протокол передачи сообщений в реальном времени) принадлежит к прикладному уровню в пятиуровневой системе TCP/IP. Это протокол потоковой передачи данных, основанный на передаче TCP. Порт по умолчанию — 1935. Это семейство протоколов, включая базовый RTMP. протокол и RTMPT, RTMPS, REMPE и т. д. Множество вариаций. Протокол RTMP — Adobe Частный протокол, разработанный компанией System для передачи аудиоданных между серверами Flash и FMS. Он используется для решения проблемы мультиплексирования и пакетирования потоков передачи мультимедийных данных. На основе этого протокола компания abobe предоставляет комплексные аудиорешения, такие как on-line. спрос, прямой трансляция、интерактивный. ☞ Протокол RTMP используется для передачи объектов, видео и аудио. ☞ Этот протокол построен на основе протокола TCP или протокола опроса HTTP. ☞ Протокол RTMP подобен контейнеру для пакетов данных, которые могут представлять собой видео- и аудиоданные в формате FLV. Одно соединение может передавать несколько сетевых потоков по разным каналам, а пакеты в этих каналах передаются пакетами фиксированного размера. ☞ чанк: пакет сообщения

потоковый сервер

Общие серверы

  • SRS: превосходный потоковый сервис с открытым исходным кодом, разработанный китайцами. серверная система
  • BMS:такжедаодинпотоковый серверная система,Но не с открытым исходным кодом,Коммерческая версия даSRS,Больше возможностей, чем у SRS
  • nginx: бесплатный веб-сервер с открытым исходным кодом, часто используемый для настройки потокового сервера.

распределение данных

  • CDN:(Content Delivery сеть), то есть сеть распространения контента, которая публикует контент веб-сайта на «границе» сети, ближайшей к пользователю, чтобы пользователь мог получить необходимый контент поблизости и решить проблему Перегрузка сети Интернет повышает скорость реакции пользователей, заходящих на веб-сайты. ☞ CDN: прокси-сервер, эквивалентный посреднику. ☞ Как работает CDN: например, запрос потоковых медиаданных. ☞☞ 1. Загрузите данные потокового мультимедиа на сервер (исходный сайт). ☞☞ 2. Исходный сайт хранит данные потокового мультимедиа. ☞☞ 3. Клиент воспроизводит потоковое мультимедиа и запрашивает закодированные данные потокового мультимедиа из CDN. ☞☞ 4. Сервер CDN отвечает на запрос. Если данные потокового мультимедиа не существуют на узле, он продолжит запрашивать данные потокового мультимедиа с исходного сайта, если видеофайл был кэширован на узле, перейдите к шагу; 6. ☞☞ 5. Исходный сайт отвечает на запрос CDN и распределяет потоковые мультимедиа на соответствующий узел CDN. ☞☞ 6.CDN отправляет потоковые данные клиенту.
  • Возврат к источнику: когда пользователь обращается к определенному URL-адресу, если проанализированный узел CDN не кэширует содержимое ответа или срок действия кеша истек, он возвращается на исходный сайт для выполнения поиска. Если никто не посещает, узел CDN не возьмет на себя инициативу получить его с исходного сайта.
  • Пропускная способность: общий объем данных, который может быть передан в фиксированное время. ☞ Например, 64-битная、800MHzпередний боковой автобус,Его скорость передачи данных равна64bit×800MHz÷8(Byte)=6.4GB/s
  • Балансировка нагрузки: набор серверов состоит из нескольких серверов симметрично. Каждый сервер имеет одинаковый статус и может предоставлять внешние услуги независимо, без помощи других серверов. ☞ Благодаря какой-то технологии распределения нагрузки запросы, отправленные извне, равномерно распределяются на определенный сервер в симметричной структуре, и сервер, получивший запрос, самостоятельно отвечает на запрос клиента. ☞ Сбалансированная нагрузка позволяет равномерно распределять запросы клиентов на массив серверов, обеспечивая тем самым быстрый доступ к важным данным и решая проблему массового одновременного доступа к сервисам. ☞ Эта кластерная технология позволяет достичь производительности, близкой к производительности мэйнфрейма, при минимальных инвестициях.
  • QoS (управление пропускной способностью): Ограничьте пропускную способность каждой группы, чтобы максимизировать эффективность ограниченной пропускной способности.

вытягивать поток

  • прямая Выбор протокола трансляции: ☞ Те, у кого более высокие требования к оперативности или интерактивным потребностям, могут использовать RTMP и RTSP. ☞ Для воспроизведения или кросс-платформенных требований рекомендуется использовать HLS.
  • HLS: протокол, определенный Apple для потоковой передачи в реальном времени, реализован на основе протокола HTTP. Содержимое передачи состоит из двух частей: одного файла описания daM3U8 и двух медиафайлов daTS. прямой, что позволяет осуществлять потоковую передачу мультимедиа трансляция по требованию, в основном используется в системе iOS ☞ HLSда реализуется напрямую через технологию по требованию трансляция ☞ Потоковая передача с адаптивной скоростью передачи данных HLSда: клиент автоматически выбирает видеопотоки с различной скоростью передачи данных в зависимости от условий сети. Используйте высокие скорости передачи данных, когда позволяют условия, используйте низкие скорости передачи данных, когда сеть занята, и автоматически переключайтесь между ними по желанию. Это очень полезно для обеспечения бесперебойного доступа, когда состояние сети мобильных устройств нестабильно. ☞ Способ реализации да Сервер обеспечивает видеопотоки с мультикодовой скоростью,и укажите это в файле списка,Инструмент игры автоматически настраивается в зависимости от хода игры и скорости загрузки.
  • Сравнение HLS и RTMP: HLS в основном имеет большую задержку, тогда как основным преимуществом RTMP является низкая задержка. ☞ Метод мелкой срезки протокола HLS будет генерировать большое количество файлов, а хранение или обработка этих файлов приведет к большой трате ресурсов. ☞ Преимущество по сравнению с использованием протокола RTSP заключается в том, что после завершения сегментации последующий процесс распределения не требует использования какого-либо дополнительного специального программного обеспечения. Можно использовать обычный сетевой сервер, что значительно снижает требования к конфигурации границы CDN. сервер и может использовать любой готовый CDN, тогда как обычные серверы редко поддерживают RTSP.
  • HTTP-FLV: потоковая передача мультимедийного контента на основе протокола HTTP. ☞ По сравнению с RTMP HTTP более прост и известен. Задержка контента также может составлять 1–3 секунды, а скорость открытия выше, поскольку сам HTTP не имеет сложных взаимодействий со статусом. Таким образом, с точки зрения задержки HTTP-FLV лучше, чем RTMP.
  • RTSP: протокол потоковой передачи в реальном времени, определяет, как приложения «один ко многим» могут эффективно передавать мультимедийные данные по IP-сетям.
  • RTP: Транспортный протокол реального времени. RTP построен на протоколе UDP и часто используется вместе с RTCP. Он сам по себе не обеспечивает механизм своевременной доставки или другие гарантии качества обслуживания (QoS). Он основан на низкоуровневом уровне. сервисы для реализации этого процесса.
  • RTCP: протокол поддержки RTP. Его основная функция — предоставить обратную связь о качестве обслуживания (QoS), предоставляемом RTP, и собрать статистическую информацию о связанных медиа-соединениях, таких как количество переданных байтов, количество переданных пакетов, количество переданных пакетов. количество потерянных пакетов, односторонние и двусторонние сети, задержка и так далее.

декодирование

Декапсуляция

  • демультиплексирование: поток из видео、Аудиопоток,Синтезированный файл потока субтитров (формат контейнера (FLV),ТС)) Средний, разлагатьвидео、Аудиоилисубтитры,Каждый выполняет декодирование.

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

  • fdk_aac:Аудиокомпилироватькоддекодированиерамка,PCMАудиоданныеиAACАудиоданныепередача

декодированиепредставлять

  • Жесткое декодирование: используйте графический процессор для декодирования и сокращения операций ЦП. ☞ Достоинства: плавная игра, низкое энергопотребление, быстрое декодирование, ☞ Недостатки: плохая совместимость.
  • мягкийдекодирование:использоватьCPUПриходитьдекодирование ☞ Достоинства: хорошая совместимость. ☞ недостаток:увеличиватьCPUгруз,Повышенное энергопотребление, не такое плавное, как жесткое декодирование,декодирование происходит относительно медленно

играть

  • ijkplayer:один на основеFFmpegоткрытого исходного кодаAndroid/iOSвидеоигратьустройство ☞ API легко интегрировать; ☞ Конфигурацию компиляции можно настроить для облегчения управления размером установочного пакета; ☞ Поддержка декодирования аппаратного ускорения, больше энергосбережения ☞ Простой и удобный в использовании, укажите вытягивание. потокURL,автоматическийдекодированиеиграть.

Взаимодействие в чате

*IM: (Мгновенный обмен сообщениями) Мгновенный обмен сообщениями: это система связи в реальном времени, которая позволяет двум или более людям общаться в реальном времени с помощью Интернета для передачи текстовых сообщений, файлов, голоса и видео. ☞ Основная роль IM в системе прямого вещания — реализация текстового взаимодействия между аудиторией и ведущим, а также между аудиторией и аудиторией.

  • Сторонний SDK ☞ Тенсент Облако:Мгновенный обмен сообщениями от TencentSDK,доступен какпрямая чат трансляции ☞ Ронгюн:Более распространенныйиспользоватьобмен мгновенными сообщениямиSDK,доступен какпрямая чат трансляции

Как быстро разработать полноценное приложение для прямых трансляций для iOS

1. Используйте сторонний SDK для прямых трансляций для быстрой разработки.

  • Цинюпрямая Прямая трансляция в облаке Глобализация, созданная трансляционной платформой сервис потоковой трансляции и комплексное внедрение SDK сквозной прямой трансляция сцен уровня предприятия прямая трансляция платформы облачных сервисов. ☞ Panda TV, Dragon Ball TV и т. д. в прямом эфире платформу трансляции использует да
  • NetEase видео Облако:Профессиональная кроссплатформенностьвидеокомпилироватьдекодированиетехнологияикрупный масштабвидеосеть доставки контента,Предоставляйте стабильные, плавные аудиосервисы в реальном времени с низкой задержкой и высокой степенью параллелизма.,может бытьвидеопрямая трансляция легко подключается к собственному приложению.

2. Почему сторонние компании-разработчики SDK предоставляют нам SDK?

  • Мы надеемся привязать наши продукты к одной лодке и стать более зависимыми от нее.
  • Технологии приносят деньги, помогая поддерживать большое количество замечательных программистов.

3. Функция прямой трансляции: разработана самостоятельно или с использованием стороннего SDK для прямой трансляции?

  • Сторонний Разработка SDK: Для стартап-команды — прямое самоисследование трансляция имеет очень высокий порог с точки зрения технического порога, CDN и пропускной способности, а производство готового продукта занимает много времени, что не способствует привлечению инвестиций.
  • Самоисследование: Компания прямая трансляция имеет большую платформу. В долгосрочной перспективе самостоятельные исследования могут сэкономить затраты, а технические аспекты гораздо более контролируемы, чем непосредственное использование SDK.

4. Преимущества стороннего SDK

  • Сокращение затрат ☞ Используя хорошие сторонние корпоративные услуги, вам больше не придется платить высокую цену хедхантерам за поиск дорогих громких имен, а также вам не придется потакать индивидуальному характеру крупных коров.
  • Повышение эффективности ☞ Сосредоточение внимания на сторонних сервисах и удобстве, обеспечиваемом интеграцией кода, может занять всего 1-2 часа, что сэкономит почти 99% времени, чего достаточно, чтобы обменять больше времени на конкуренцию с конкурентами и повысить вероятность успеха.
  • Снизить риск ☞ С помощью профессиональных сторонних услуг благодаря своим быстрым, профессиональным, стабильным и другим характеристикам он может значительно повысить конкурентоспособность продукции (качественное обслуживание, скорость исследований и разработок и т. д.) и сократить время проб и ошибок. , что, безусловно, станет одним из средств спасения жизней в сфере предпринимательства.
  • Что касается профессиональных дел, найдите для этого профессионалов. ☞ Сторонние сервисы требуют, чтобы команда из минимум 10–20 человек сосредоточилась на решении одной и той же проблемы и делала одно и то же дело. Эффект поддержки, который дают сторонние сервисы, не могут сравниться 1-2 человека, верно?

Ресурсы высокого качества

Если вам понравилось, пожалуйста, поставьте палец вверх и поставьте лайк! ! !

ссылка

https://github.com/f2e-journey/xueqianban/issues/61

https://www.jianshu.com/p/bd42bacbe4cc

https://www.jianshu.com/p/d99e83cab39a

Издатель: Full stack программист и руководитель стека, укажите источник для перепечатки: https://javaforall.cn/162840.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose