IP摄像头RTSP协议网页无插件直播视频平台EasyNVR如何在直播或录像中添加定制化音频?
在我们接触的关于景区、餐饮安全等场景的可视化监控方案当中,有的用户提出了一些需求,想为直播流增加一些背景音,比如音乐,或者直播现场的介绍等等。这个需求我们也可以通过优化代码来实现,下面TSINGSEE青犀视频就以EasyNVR视频平台举例,来讲一下如何在EasyNVR里添加音频。
为EasyNVR增加背景音,可以通过在EasyNVR的拉流库中添加音频流的方式实现。合成音视频流,则能够在直播或录像中增加定制化的音频。
在EasyNVR中增加音频的主要问题在于:
1.音频视频的打包处理
2.视频实时流,音频是一段流,需要做到循环使用
增加音频播放,则设计到音视频的循环播放,我们使用av_compare_ts进行音视频的写入。
{ 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{ //写入音频 }
在音频读到文件结尾后,需要重新读取文件
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; } }
这样增加音频完成,在EasyNVR上,接入rtsp视频流后,即可在直播页面听到新增的音频。
EasyNVR直播界面
EasyNVR视频平台的使用范围广泛,除了以上我们说到的风景区监控之外,还有不少智慧校园、智慧工地的项目场景。视频相关解决方案均可访问TSINGSEE青犀视频,可以联系我们获取演示方案,直观感受,也可自行进行下载及测试。