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

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、服务器监听 + 
  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在网页上播放RTSP视频,可以使用video.js和videojs-rtsp插件。下面是一个简单的示例代码: 首先,需要引入video.js和videojs-rtsp插件的javascript文件: ```html <link href="https://vjs.zencdn.net/7.8.4/video-js.css" rel="stylesheet" /> <script src="https://vjs.zencdn.net/ie8/1.1.2/videojs-ie8.min.js"></script> <script src="https://vjs.zencdn.net/7.8.4/video.js"></script> <script src="https://cdn.jsdelivr.net/npm/videojs-rtsp/dist/videojs-rtsp.min.js"></script> ``` 然后,在页面添加一个video标签: ```html <video id="my-video" class="video-js" controls preload="auto" width="640" height="264"> <source src="" type="video/rtsp" /> </video> ``` 注意,source标签的type属性应该设置为“video/rtsp”。 最后,在javascript初始化video.js和videojs-rtsp插件: ```javascript var player = videojs('my-video', { techOrder: ['html5', 'rtsp'] }); player.src({ src: 'rtsp://example.com/stream', type: 'video/rtsp' }); player.play(); ``` 其,src的src属性指定了RTSP视频的URL,type属性依然是“video/rtsp”。 这样就可以在网页上播放RTSP视频了。当然,需要注意的是,由于RTSP是一种比较老旧的视频协议,所以有些浏览器可能不支持它。在测试时,可以使用Chrome浏览器,并在地址栏输入chrome://flags/#allow-insecure-localhost,将“Allow invalid certificates for resources loaded from localhost.”设置为Enabled,以允许加载本地的RTSP视频

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值