文章整理- RTSP-音频

 

安防: 

一种场景,安防厂家通过RTSP协议交互,再通过RTP回传音频数据,音频为G711格式,不过传输的数据采用了A-law algorithm压缩,所以如果需要播放,则需要先解压缩,然后再SDL_OpenAudio播放。

 

概念:

PCMA:   G.711A(PCMU:   G.711U)  :  采样频率8000,采样精度16bit,单声道

G.711 标准下主要有两种压缩算法。一种是µ-law algorithm (又称often u-law, ulaw, mu-law),主要运用于北美和日本;另一种是A-law algorithm,主要运用于欧洲和世界其他地区。中国使用的是A-law algorithm。

以海康设备为例:G722编码时,音频数据的采样频率为16000,16位采样且是单通道的

音频为G711或者G726编码时,音频数据的采样频率为8000,16位采样且是单通道的

 

算法

PCM音频压缩A-Law算法,uLaw :测试成功

 

SDL方案:--单路验证成功


SDL播放音频(PCM) :    SDL函数调用范例,有注释

SDL官方范例: https://wiki.libsdl.org/SDL_OpenAudio

最简单的视音频播放示例9:SDL2播放PCM :   有源码工程,推荐。  测试成功

SDL 第七篇PCM音频播放器的实现 :  

Rtsp之音频 :    a=rtpmap:8 PCMA/8000  可以看出是g711a格式,采样率是8000

SDL播放音频的时候发现SDL_OpenAudioDevice打开一直失败 :  多线程问题, 注意CoInitialize(NULL);

SDL_OpenAudioDevice :   无法播放,很奇怪。

SDL_OpenAudio: 可以播放。(但由于需要支持多路RTSP音频播放,放弃)

 

Qt方案:-多路播放验证成功

Qt播放PCM音频  : 测试成功

 

对比工具:

RTSP Windows专用播放器EasyPlayer : 稳定、兼容、高效、超低延时

VLC:   百度下载

 

 

SDL函数相关:

 

int SDL_OpenAudio(SDL_AudioSpec* desired,    SDL_AudioSpec* obtained)

打开音频设备

void SDL_CloseAudio(void)

关闭音频设备

void SDL_PauseAudio(int pause_on)

pause_on: 0, 暂停播放;1, 播放;

void SDL_MixAudio(Uint8*    dst,   const Uint8* src,   Uint32       len ,  int          volume)

dst: 目的缓冲区
src: 源缓冲区
len: 音频数据长度
volume: 音量大小,0-128 之间的数。SDL_MIX_MAXVOLUME代表最大音量。
 

 
 
 
 

 

 

 

 

 

gst-rtsp-server是一个基于GStreamer的RTSP服务器,它用于处理音频流。通过gst-rtsp-server可以搭建一个高性能的音频流服务器,并通过RTSP协议将音频流发送给客户端播放。 gst-rtsp-server的工作原理是通过GStreamer的插件来处理音频流。首先,用户需要创建一个RTSP服务器实例,并指定监听的端口号。然后,可以使用GStreamer的插件将音频流从输入源(例如音频文件、实时音频输入等)获取,并通过RTSP服务器发送给客户端。 通过gst-rtsp-server处理音频流,可以实现音频的传输和播放控制。客户端可以通过RTSP协议与服务器建立连接,并向服务器发送播放、暂停、停止等控制命令。服务器接收到这些命令后,可以通过GStreamer的插件对音频流进行相应的处理,然后将处理后的音频流发送给客户端。 gst-rtsp-server的优势在于其高度可扩展性和可配置性。用户可以根据自己的需求选择合适的GStreamer插件来处理音频流,如音频编码、码率控制、媒体格式转换等。此外,通过RTSP协议,可以轻松地与其他多媒体设备(如IP摄像头、音频播放器等)进行互动,使得音频流的传输更加灵活和方便。 总而言之,gst-rtsp-server是一个功能强大的音频流服务器,通过GStreamer的插件可以高效地处理音频流,并通过RTSP协议与客户端进行音频流的传输和播放控制。通过灵活的配置和扩展,gst-rtsp-server可以满足不同场景下的音频流处理需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值