前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IP摄像头RTSP协议网页无插件直播视频平台EasyNVR如何在直播或录像中添加定制化音频?

IP摄像头RTSP协议网页无插件直播视频平台EasyNVR如何在直播或录像中添加定制化音频?

作者头像
EasyNVR
发布2020-08-31 15:53:25
1.1K0
发布2020-08-31 15:53:25
举报
文章被收录于专栏:EasyNVREasyNVR

在我们接触的关于景区、餐饮安全等场景的可视化监控方案当中,有的用户提出了一些需求,想为直播流增加一些背景音,比如音乐,或者直播现场的介绍等等。这个需求我们也可以通过优化代码来实现,下面TSINGSEE青犀视频就以EasyNVR视频平台举例,来讲一下如何在EasyNVR里添加音频。

为EasyNVR增加背景音,可以通过在EasyNVR的拉流库中添加音频流的方式实现。合成音视频流,则能够在直播或录像中增加定制化的音频。

在EasyNVR中增加音频的主要问题在于: 1.音频视频的打包处理 2.视频实时流,音频是一段流,需要做到循环使用

增加音频播放,则设计到音视频的循环播放,我们使用av_compare_ts进行音视频的写入。

代码语言:javascript
复制
{
int av_ts_ret = 0;
av_ts_ret = av_compare_ts(cur_pts_v,
          m_icodec->streams[m_video_stream_idx]->time_base,
			 cur_pts_a, p_input_format_ctx_a->streams[m_audio_stream_idx]->time_base);
	printf("<<F:%s,Line:%d>> cur_pts_v:%d,cur_pts_a:%d,av_ts_ret:%d\n", 
__FUNCTION__, `ls_line` , cur_pts_v, cur_pts_a, av_ts_ret);
	if (av_ts_ret <= 0){
//写入视频
}else{
//写入音频
}

在音频读到文件结尾后,需要重新读取文件

代码语言:javascript
复制
int decode_done = av_read_frame(p_input_format_ctx_a, &packet);
if (decode_done < 0)
{
if (decode_done == AVERROR_EOF) //文件结尾
{
	  is_read_end = true;
	  av_seek_frame(p_input_format_ctx_a, m_audio_stream_idx, 0, AVSEEK_FLAG_BACKWARD);
	  continue;
	}
}
代码语言:javascript
复制
这样增加音频完成,在EasyNVR上,接入rtsp视频流后,即可在直播页面听到新增的音频。

EasyNVR直播界面

EasyNVR视频平台的使用范围广泛,除了以上我们说到的风景区监控之外,还有不少智慧校园智慧工地的项目场景。视频相关解决方案均可访问TSINGSEE青犀视频,可以联系我们获取演示方案,直观感受,也可自行进行下载及测试。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • EasyNVR直播界面
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档