Кроссплатформенный RTSP-плеер: VLC Media Player или SmartPlayer?
Кроссплатформенный RTSP-плеер: VLC Media Player или SmartPlayer?

Многие разработчики не понимают, следует ли использовать VLC Media Player с открытым исходным кодом или SmartPlayer из Daniu Live SDK для потокового воспроизведения RTSP? В ответ на это в этой статье проводится простое техническое обсуждение, которое поможет разработчикам сделать выбор, подходящий для их собственных сценариев, исходя из реальных потребностей:

VLC Media Player

Воспроизведение потокового видео RTSP с помощью VLC Media Player — простой и понятный процесс. VLC Media Player — это мощный кроссплатформенный мультимедийный проигрыватель с открытым исходным кодом, который поддерживает множество аудио- и видеоформатов и протоколов потоковой передачи, включая RTSP. Вот подробная пошаговая инструкция:

1. Установите медиаплеер VLC.

Сначала убедитесь, что в вашей системе Windows установлен VLC Media Player. Если он еще не установлен, вы можете загрузить и установить его с официального сайта VLC или других надежных платформ загрузки программного обеспечения.

2. Откройте медиаплеер VLC.

Дважды щелкните значок «VLC Media Player» на рабочем столе или откройте VLC Media Player с помощью ярлыка в меню «Пуск».

3. Включите потоковую передачу по сети.

В верхней строке меню VLC Media Player выберите параметр «Медиа». Затем выберите «Открыть сетевой поток» в раскрывающемся меню или напрямую нажмите сочетание клавиш «Ctrl+N».

4. Введите URL-адрес RTSP.

Во всплывающем окне «Открыть медиа»,Вы увидите поле ввода текста. В этом поле ввода,Введите URL-адрес потока RTSP, который вы хотите воспроизвести. Этот URL-адрес обычно предоставляется службой потоковой передачи или поставщиком контента.,Формат обычноrtsp://url_ip_address:port_number/mount_point。Например:rtsp://192.168.0.101:8554/stream1

5. Параметры конфигурации (опционально)

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

6. Воспроизвести поток RTSP.

После ввода URL-адреса и настройки параметров нажмите кнопку «Воспроизвести» в правом нижнем углу окна. VLC Media Player начнет подключаться к потоку RTSP и начнет воспроизводить видео после успешного подключения.

SmartPlayer

SmartPlayer — это кроссплатформенный проигрыватель с низкой задержкой, разработанный Daniu Live SDK. Он был запущен в 2015 году. Многие сцены постепенно перешли из режима по требованию в прямую трансляцию. У людей все более высокие требования к задержке прямой трансляции RTSP, поэтому она изменилась. Полностью самостоятельно разработанное ядро ​​SmartPlayer после нескольких лет итераций в настоящее время поддерживает следующие функции:

  • [Поддержка протокола воспроизведения] Задержка RTSP в миллисекундах;
  • [Воспроизведение нескольких экземпляров] Поддерживает воспроизведение нескольких экземпляров;
  • [Обратный вызов по событию] поддерживает состояние сети, состояние буфера и другие обратные вызовы;
  • [Формат видео] H.265, H.264;
  • [Аудиоформат] Поддержка AAC/PCMA/PCMU;
  • [Мягкое декодирование H.264/H.265] Поддержка мягкого декодирования H.264/H.265;
  • [Жесткое декодирование H.264] Windows/Android/iOS поддерживает жесткое декодирование H.264;
  • [Жесткое декодирование H.265] Windows/Android/iOS поддерживает жесткое декодирование H.265;
  • [H.264/H.265 Hard Decoding] Android поддерживает настройку жесткого декодирования в режиме Surface и жесткого декодирования в обычном режиме;
  • [Настройка буферного времени]Поддержка буфера настройка времени;
  • [Открыть за секунды на первом экране] Поддерживает режим открытия за секунды на первом экране;
  • [Режим низкой задержки] Поддерживает настройки режима со сверхнизкой задержкой, аналогичные решениям для потоковой передачи в реальном времени, таким как онлайн-машины с когтями;
  • [Сложная сетевая обработка] Поддерживает автоматическую адаптацию к различным сетевым средам, например отключение и повторное подключение к сети;
  • [Быстрое переключение URL-адресов] Поддерживает быстрое переключение других URL-адресов во время воспроизведения, а переключение контента происходит быстрее;
  • [Множественные механизмы рендеринга аудио и видео] Платформа Android, видео: Surfaceview/OpenGL ES, аудио: AudioTrack/OpenSL ES;
  • [Отключение звука в реальном времени] Поддерживает отключение/включение звука в режиме реального времени во время воспроизведения;
  • [Снимок в реальном времени] поддерживает захват текущего экрана воспроизведения во время воспроизведения;
  • [Воспроизведение только ключевых кадров] Платформа Windows поддерживает настройку в режиме реального времени, следует ли воспроизводить только ключевые кадры;
  • [Угол рендеринга] Поддерживает четыре настройки угла рендеринга видеоэкрана: 0°, 90°, 180° и 270°;
  • [Зеркало рендеринга] поддерживает настройки режима горизонтальной инверсии и вертикальной инверсии;
  • [Обновление скорости загрузки в реальном времени] Поддерживает обратный вызов текущей скорости загрузки в реальном времени (поддерживает настройку интервала обратного вызова);
  • [Наложение ARGB] Платформа Windows поддерживает наложение изображений ARGB для отображения видео;
  • [Обратный вызов видеоданных перед декодированием] Поддерживает обратный вызов данных H.264/H.265;
  • [Обратный вызов видеоданных после декодирования] Поддерживает обратный вызов данных YUV/RGB после декодирования;
  • [Обратный вызов масштабирования декодированных видеоданных] Платформа Windows поддерживает интерфейс для указания размера обратного изображения (вы можете масштабировать исходное изображение просмотра, а затем выполнить обратный вызов на верхний уровень);
  • [Обратный вызов аудиоданных перед декодированием] Поддерживает обратный вызов данных AAC/PCMA/PCMU;
  • [Адаптивная аудио и видео] поддерживает адаптивную адаптацию после изменения аудио и видео информации во время воспроизведения;
  • [Расширенная функция записи] Поддержка RTSP/RTMP H.264, расширенная запись потока H.265, поддержка записи после преобразования PCMA/PCMU в AAC, поддержка настройки записи только аудио или видео и т. д.

VLC или SmartPlayer?

Без лишних слов, давайте начнем с изображения выше, во время воспроизведения потоковых данных Hikvision с разрешением 2560*1440 и скоростью передачи данных 8M (камера Hikvision обращена к таймеру мобильного телефона. Эффект следующий. Вы можете видеть, что задержка. SmartPlayer составляет около 220 миллисекунд, а VLC. Задержка vlc составляет около 1,4 секунды. Если он выполняет контроль баланса и другие сценарии, задержка vlc превышает 1 секунду, что больше не соответствует сценариям управления с низкой задержкой:

Ранее мы писали в блоге о разработке и дизайне прямых трансляций RTSP, и они заключаются в следующем:

1. Низкая задержка:большинствоRTSPВоспроизведение ориентировано на сценарии прямой трансляции.,так,Если задержка слишком велика,Серьезно влияет на впечатления,так,Низкая задержка — очень важный показатель для измерения хорошего RTSP.,В настоящее время задержка живого воспроизведения RTSP в Daniu Live SDK лучше, чем у проигрывателя с открытым исходным кодом.,И долго бежать,Никакого накопления задержки не произойдет;

2. Обработка синхронизации аудио и видео:некоторыйигрок В погоне за низкой задержкой,Нет даже синхронизации аудио и видео.,получить аудио Видео воспроизводится напрямую, что приводит к рассинхронизации аудио/видео и различным проблемам, таким как случайные скачки временных меток. Плеер, предоставляемый Daniu Live SDK, имеет хорошую синхронизацию временных меток и ненормальные механизмы исправления временных меток;

3. Поддержка нескольких экземпляров:Дэниел в прямом эфиреSDKпредоставилигрок Поддерживает одновременное воспроизведение нескольких аудио- и видеоданных.,Например, окно 4-8-9.,Большинство инструментов с открытым исходным кодом не поддерживают поддержку нескольких экземпляров;

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

5. Настройка режима TCP/UDP и автоматическое переключение:Учитывая, что многие серверы поддерживают толькоTCPилиUDPмодель,Хороший RTSP должен поддерживать настройки режима TCP/UDP.,Если ссылка не поддерживает TCP или UDP,Daniu Live SDK может автоматически переключаться,,Плеер с открытым исходным кодом не имеет возможности автоматического переключения TCP/UDP;

6. Отключение звука в реальном времени:например,несколько окон Воспроизвести RTSP-поток,Если каждый звук воспроизводится,Очень плохой опыт,так Функция отключения звука в реальном времени очень необходима,Плеер с открытым исходным кодом не имеет функции отключения звука в реальном времени;

7. Ротация просмотра видео:Многие камеры имеют ограничения по установке.,вызывая инвертирование изображения,Хороший RTSP-плеер должен поддерживать поворот видеоизображения в реальном времени (0° 90° 180° 270°), горизонтальная инверсия, вертикальная инверсия, проигрыватели с открытым исходным кодом не имеют этой функции;

8. Поддержка вывода аудио/видео данных после декодирования:Дэниел в прямом эфиреSDKПознакомился со многими разработчиками,Я надеюсь, что в это можно играть одновременно,Получить данные YUV или RGB,Выполните анализ алгоритма, например сопоставление лиц.,Проигрыватель с открытым исходным кодом не имеет этой функции;

9. Снимок в реальном времени:заинтересованныйиливажная картина,Очень нужно заснять это в реальном времени,Обычно у игрока нет возможности делать снимки.,Проигрыватель с открытым исходным кодом не имеет этой функции;

10. Обработка джиттера сети (например, отключение и повторное подключение):Стабильный механизм сетевой обработки、Поддерживает повторное подключение после отключения сети и т. д.,Проигрыватель с открытым исходным кодом имеет плохую поддержку обработки сетевых исключений;

11. Долгосрочная стабильность работы:Отличие от открытого исходного кода на рынкеигрок,SDK прямой трансляции RTSP на платформе Windows, предоставляемый Daniu Live SDK, подходит для долгосрочной работы в течение нескольких дней.,Плеер с открытым исходным кодом имеет плохую поддержку долгосрочной стабильности работы;

12. Информационная запись журнала:Общий механизм процесса фиксируетсяLOGдокумент,Убедитесь, что если что-то пойдет не так,Есть доказательства, на которые можно положиться,Плеер с открытым исходным кодом практически не имеет записей в журнале.

13. Обратная связь по скорости загрузки в режиме реального времени:Дэниел в прямом эфиреSDKОбеспечить обратный вызов для загрузки аудио- и видеопотоков в режиме реального времени.,И вы можете установить интервал времени обратного вызова,Обеспечьте обратную связь о скорости загрузки в режиме реального времени.,Используйте это для мониторинга состояния сети,Проигрыватель с открытым исходным кодом не имеет такой возможности;

14. Обработка статуса исключения, обратный вызов статуса события:Во время воспроизведения,Различные сценарии, такие как отключение сети, дрожание сети и т. д.,Игрок, предоставленный Daniu Live SDK, может проверить соответствующий статус в режиме реального времени.,Обеспечить обработку с учетом модуля верхнего уровня,Плеер с открытым исходным кодом не поддерживает это должным образом;

15. Переключение ключевого кадра/полнокадрового воспроизведения в реальном времени:Особенно при воспроизведении многоканальных изображений,Если слишком много способов,Расшифруй и нарисуй все,Использование системных ресурсов увеличится,Если вы можете гибко справиться с этим,В любое время вы можете воспроизводить только ключевые кадры,Переключатель полнокадрового просмотра,Требования к производительности системы значительно снижены.

Подвести итог

Я считаю, что благодаря приведенному выше функциональному описанию и техническому сравнению двух проигрывателей, VLC Media Player и SmartPlayer, каждому легко сделать свой собственный выбор. Если это требование по требованию, VLC Media Player достаточно. кросс-платформенную прямую трансляцию со сверхмалой задержкой, вы можете попробовать SmartPlayer, который лучше соответствует техническим требованиям с малой задержкой. Вышеуказанное является лишь введением. Заинтересованные разработчики могут связаться со мной индивидуально.

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.