zoukankan      html  css  js  c++  java
  • 多线程RTSPServer组件EasyRTSPServer对接海康NVR视频正常音频不能播放问题解析

    背景分析

    众所周知,RTSP协议是一个流媒体协议,可以实现直播和点播形式的音频与视频流的播放。RTSP协议定义了多种服务器-客户端之间交互的接口,主要有OPTIONS,DESCRIBE,SETUP,PLAY,TEARDOWN,RECORD,ANNOUNCE。网络上已经有很多针对RTSP协议的文章,我这里不准备进行过多介绍。RTSP并不包括具体数据的传输,该功能一般由RTP与RTCP协议来实现,并可以通过TCP或UDP两种底层传输方式进行。

    下图是典型的RTSP直播过程中服务端-客户端主要交互过程:

    EasyRTSPServer架构.png

    EasyRTSPServer就是一套稳定、高效、可靠、多平台支持的RTSP-Server组件,今天为大家分享用户在使用EasyRTSPServer对接海康NVR时G726时,音频不能正常播放的问题

    提出问题

    近期我们遇到了EasyRTSPServer对接海康NVR,视频正常,但音频不能正常播放这样的问题。

    分析问题

    EasyRTSPServer输出视频为H264,音频格式为G726,源都来自海康的摄像机,而该摄像机直接接入NVR是可以正常播放的。

    36.png

    关于EasyRTSPServer

    我们可以排除摄像机源,问题就在EasyRTSPServer,通过抓包对比,发现海康每次发包大小是固定的,而EasyRTSPServer的音频发包则是很大的一帧,说明是将多个音频帧组成一个大的帧发出了。

    解决问题

    在创建SimpleRTPSink中,指定allowMultipleFramesPerPacket参数为false即可。

    37.png

    EasyRTSPServer是一套稳定、高效、可靠、多平台支持的RTSP-Server组件,接口调用非常简单成熟,无需关注RTSPServer中关于客户端监听接入、音视频多路复用、RTSP具体流程、RTP打包与发送等相关问题,支持多种音视频格式,再也不用去处理整个RTSP OPTIONS/DESCRIBE/SETUP/PLAY/RTP/RTCP的复杂流程和担心内存释放的问题了,非常适合于安防领域、教育领域、互联网直播领域等。

  • 相关阅读:
    Fody is only supported on MSBuild 16 and above
    abp发送邮件AbpMailKit
    看一位老司机的博文,分享一下。
    nginx PC 移动配置
    微信开放平台登录
    flask 中 session的源码解析
    python mac环境搭建
    前端换mac可以参考搭一下简单的环境
    vue 导航钩子
    HTML5 History 模式
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/12021235.html
Copyright © 2011-2022 走看看