流媒体协议---RTSP---(朱)在海思3518示例中添加RTSP支持---C项目代码修改自live555

该博客介绍了如何在海思3516A平台的venc示例中添加RTSP服务器支持,详细阐述了RTSP流媒体功能模块的四个组成部分,并提供代码示例,包括RtspServer_init、RTP/RTCP传输、数据存储及发送。同时讨论了RTSP数据传输的TCP和UDP方式。
摘要由CSDN通过智能技术生成

Hi3516A通过RTSP播放H.265视频流的源码
日常生活小技巧 – 文件对比工具 Beyond Compare
参看:Hi3516A如何实现PC实时视频监控–里面有示例代码
代码下载:Hi3516A如何实现PC实时视频监控 代码
编译时放在sample下面。上面用的OV4689,用其他摄像头的在Makefile里面改宏定义。

RTSP 流媒体功能模块主要由四个组成部分:

第一个部分: 应用层服务器构建
第二个部分: RTP/RTCP 传输(应用层和传输层之间)
第三个部分: IP网络层
第四个部分: H264 Stream 及 Audio Stream

在这里插入图片描述

(朱)hisi3518示例venc添加rtsp支持后的venc代码)

在海思venc示例代码中添加rtsp服务器反馈支持(不包括传输控制)

1、在入口Venc/最后面的main函数处 添加RtspServer_init();
  0.一些RTSP环境准备
  1.RTSP服务器线程
  2.RTSP循环检测环装链表并发送
2、s32Ret = SAMPLE_VENC_720P_CLASSIC();//直接选定一路编码格式
3、编码码流由mpp_sample的3码流改为1码流
4、将mpp_sample的保存至文件改为保存至环装链表buff

0、添加rtsp支持后的main函数框架:

int main(int argc, char *argv[])
{
   
	RtspServer_init();
		1、RtspServerListen
			RtspClientMsg
		2vdRTPSendThread(HI_VOID *p)
		
	SAMPLE_VENC_720P_CLASSIC();
		//step 6: stream venc process -- get stream, then save it to file. 
		SAMPLE_COMM_VENC_StartGetStream(s32ChnNum);  即SAMPLE_COMM_VENC_GetVencStreamProc
			//step 2.5 : save frame to file
3种处理方法:
A、保存至本地文件
			SAMPLE_COMM_VENC_SaveStream(enPayLoadType[i], pFile[i], &stStream);
				SAMPLE_COMM_VENC_SaveH264(pFd, pstStream);//写入目标文件
B、直接发送
			SAMPLE_COMM_VENC_Sentjin(&stStream); 	//调用VENC_Sent直接发送
C、保存至环状队列(在线程vdRTPSendThread中检测并发送)
			saveStream(&stStream);
}

1、RtspServer_init

void RtspServer_init(void)
{
   
	int i;
	pthread_t threadId = 0;
	/* 有啥用???
	memset(&g_rtp_playload,0,sizeof(g_rtp_playload));
	strcpy(&g_rtp_playload,"G726-32");//rtsp里面用的是rtp进行发送  G.726是ITU-T ADPCM 语音编解码器标准 32kbit/s
	pthread_mutex_init(&g_sendmutex,NULL);
	pthread_mutex_init(&g_mutex,NULL);
	pthread_cond_init(&g_cond,NULL);
	*/
	memset(&g_rtspClients,0,sizeof(RTSP_CLIENT)*MAX_RTSP_CLIENT);//准备好空间用于将来存储客户端数据
	//to listen visiting
1.1、服务器监听 +
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值