zoukankan      html  css  js  c++  java
  • 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
    ", 
    __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青犀视频,可以联系我们获取演示方案,直观感受,也可自行进行下载及测试。

  • 相关阅读:
    Linux模拟网络延迟、丢包等
    TestLink汉化操作
    onems设备管理系统(TR-069和OMA)
    Installation Guide Ubuntu 16.04
    Configure GenieACS
    Linux下的tar压缩解压缩命令详解
    genieacs Installation on Ubuntu14.04
    Pyqt中富文本编辑器
    安装MongoDB
    到底什么是贝叶斯?
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/13563901.html
Copyright © 2011-2022 走看看