1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Tinywan-html5-dash-hls-rtmp

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 15 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 20:19 e13dae3

Многомедийная архитектура проектирования

Изображение: многомедийная архитектура проектирования

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

  • RTMP используется для получения и публикации потоков.
  • RTSP используется для получения и объявления потоков.
  • MPEG-TS используется для потоков HTTP и UDP.
  • SRT используется для прослушивания, получения и объединения потоков.
  • UDT используется для прослушивания, получения и объединения потоков.
  • HLS используется для получения потоков.

Изображение: однонаправленная передача в реальном времени с кодированием (RTMP)

Передача в реальном времени с мультикодированием (RTMP)

Изображение: передача в реальном времени с мультикодированием (RTMP)

Потоки ввода/вывода HLS и MPEG-DASH

Изображение: потоки ввода/вывода HLS и MPEG-DASH

Шифрование SSL и открытый доступ к источникам HLS

Изображение: шифрование SSL и открытый доступ к источникам HLS

Дизайн системы видео по запросу (VOD)

Изображение: дизайн системы VOD

Список обновлений

2018 год, 17 ноября, пятница:

  • Битва кодеков: AV1, HEVC, VP9 и VVC.
  • Аппаратное ускорение и оптимизация FFMpeg на Intel GPU.
  • Следующее поколение CDN с низкой задержкой: HLS, RTMP и UDP + WebRTC.

2018 год, 13 сентября, четверг:

  • Анализ RTMP-приложений и задержек.
  • Исследование технологий потоковой передачи данных в реальном времени на основе протокола RTMP.
  • Преобразование протокола RTSP в протокол RTMP для прямых трансляций.

2018 год, 31 августа, пятница:

  • Реализация пользовательского аудиоплеера.
  • Глубокое исследование архитектуры сервиса воспроизведения видео HLS-iOS (часть 2).
  • Глубокое исследование архитектуры сервиса воспроизведения видео HLS-iOS (часть 1).
  • HTTP Live Streaming (HLS) — концепция.

2018 год, 22 марта, пятница:

  • Использование видеоплагина video.js.
  • Сводка решений распространённых проблем с прямыми трансляциями.
  • Установка Nginx-RTMP на Ubuntu 14.04.

2018 год, 16 января, вторник:

  • Решение NGINX-RTMP-TS-DASH для аудио- и видеорешений.

2017 год, 18 апреля, вторник:

  • Решения проблемы междоменной трансляции VideoJs на платформе Али облако.

2017 год, 6 июня, вторник:

  • Открытые плееры:
    • Aliplayer.
    • Video-dev-Hls.
    • Sewise-Player.
    • Clappr (поддерживает форматы hls, dash, ogg, webm, mp4, rtmp как для прямых трансляций, так и для видео по запросу; онлайн-демонстрация).
    • Mediaelement player (поддерживает MP4, WebM и MP3, а также HLS, Dash, YouTube, Facebook, SoundCloud и другие HTML5 MediaElement API для HTML5 или ; онлайн-демонстрация).

2017 год, 7 июня, среда:

  • Оптимизация кода метода Play-RTMP-HLS-Stream.

Источники прямых трансляций

Подробное описание

  • Ниже приведены результаты тестирования задержки в основном для среды тестирования локальной сети (онлайн-тестирование проводится на платформе Alibaba Cloud).
  • M3U8 прямые трансляции или видео по запросу DEMO.

VideoJs-M3U8

  • Поддерживаются прямые трансляции HSL m3u8.
  • Как использовать: можно скачать напрямую, обратите внимание, что воспроизведение m3u8 должно быть размещено на сервере.
  • По умолчанию: воспроизведение m3u8.
  • Тестирование задержки (среда тестирования локальной сети):
    • RTMP задержка: 2 секунды.
    • HLS задержка: 18 секунд.
    • VLC задержка (не рекомендуется): 18 секунд.
  • Авторизация: возможна.
  • Поддержка скинов:

Поддержка m3u8-IE

  • Совместимость со всеми браузерами.
  • Поддержка воспроизведения IE11.

Видео Js 2017

    1. Поддержка RTMP воспроизведения.
    1. Поддержка авторизации.
    1. M3U8 поддержка IE временно не воспроизводится. 4. Задержка тестирования (тестирование в локальной сети)
    • RTMP задержка: 2 с
    • HLS задержка: 18 с
    • VLC задержка (не рекомендуется): 18 с
  • Тестирование плейлиста

    • [1] RTMP прямой эфир: rtmp-stream.html
    • [2] HLS прямой эфир и по запросу: hls-stream.html
    • [3] Прямой эфир и по запросу HLS с M3U8 воспроизведением (можно вводить динамическое изменение адреса HLS): auto-input-hls-player.html
      • Возникновение проблемы с междоменным доступом JavaScript:
        • Значение заголовка «Access-Control-Allow-Origin» в ответе не должно быть подстановочным знаком «*», если режим учетных данных запроса — «include». Origin — http://127.0.0.1.
      • Решение (метод настройки сервера Nginx, Apache настроить самостоятельно):
      location /record {
          add_header Cache-Control no-cache;
          add_header 'Access-Control-Allow-Origin' '*' always;
          add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
          add_header 'Access-Control-Allow-Headers' 'Range';
          types{
                  application/dash+xml mpd;
                  application/vnd.apple.mpegurl m3u8;
                  video/mp2t ts;
           }
          alias /home/tinywan/hls;
       }
      
      • Адрес тестирования: http://192.168.18.143/record/stream_name/index.m3u8
  • Тестирование прогресса

    • [2017 год, 16:00, 10 апреля] тестирование задержки потоков HSL и RTMP в локальной сети

      Результаты тестирования: задержка RTMP: 2 с, задержка HLS: 18 с.

    • [2017 год, 13:00, 11 апреля] воспроизведение M3U8 по запросу с прямым эфиром HLS, проблема с междоменным доступом JavaScript.

:umbrella: Play-RTMP-HLS-Stream (Obj-Flash)

  • Поддержка воспроизведения прямых трансляций RTMP и M3U8
  • Описание параметров
    • Синтаксис: embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn)
      1. swfUrlStr: укажите URL вашего SWF-файла (StrobeMediaPlayback.swf).
      2. replaceElemIdStr: укажите ID элемента HTML, который содержит заменяемый элемент, можно использовать содержимое вашего флэш-контента для замены.
      3. widthStr: укажите ширину SWF.
      4. heightStr: укажите высоту SWF.
      5. swfVersionStr: укажите версию Flash Player, необходимую для воспроизведения SWF.
      6. xiSwfUrlStr: укажите путь быстрой установки, активируйте быструю установку. Обратите внимание, что быстрая установка будет срабатывать только один раз (при первом вызове).
      7. flashvarsObj: укажите переменные, которые необходимо передать во Flash (используя пары ключ-значение).
      8. parObj: укажите параметры внедряемого объекта (используя пары ключ-значение).
      9. attObj: укажите атрибуты объекта (используя пары ключ-значение).
      10. callbackFn: (функция JavaScript, необязательная) позволяет определить функцию обратного вызова, которая может быть вызвана независимо от того, успешно создан флэш или нет.
  • Документация
    • Поддержка: воспроизведение прямых трансляций RTMP и HSL.
    • Использование: просто скачайте и используйте, обратите внимание: M3U8 воспроизведение должно размещаться на сервере, возникают проблемы с междоменными запросами.
    • По умолчанию: воспроизведение RTMP.
    • Задержка:
      • задержка RTMP: 3 с
      • задержка HLS: 20 с
    • Междоменный доступ: ОК.
    • Авторизация: ОК (добавьте XML-файл междоменного доступа к серверу).
    • Проблемы, требующие решения: проблемы с вызовом JavaScript SWF.
    • Тестирование прогресса:
      • [2017 год, 16:00, 10 апреля] Тестирование задержки потоков HSL и RTMP в локальной сети, результаты тестирования: задержка RTMP: 3 с, задержка HLS: 20 с.
      • [2017 год, 16:00, 7 июня] Оптимизация кода, эта страница была оптимизирована, play2video2.html, по умолчанию без звука.

:apple: Документы по аудио и видео технологиям

:melon: FFmpeg HLS запись команд

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/Tinywan-html5-dash-hls-rtmp.git
git@api.gitlife.ru:oschina-mirror/Tinywan-html5-dash-hls-rtmp.git
oschina-mirror
Tinywan-html5-dash-hls-rtmp
Tinywan-html5-dash-hls-rtmp
master