当前位置: 首页 > news >正文

展会电子商务网站如何建设万盛网站建设公司

展会电子商务网站如何建设,万盛网站建设公司,用路由器做网站,北京十大必逛的商场上节课我们已经拿到了摄像头数据和麦克风数据,这节课我们来看一下如何将二者合并起来推送到rtmp服务器。推送音视频合成流到rtmp服务器地址的流程如下: 1.创建输出流 //初始化输出流上下文 avformat_alloc_output_context2(&outFormatCtx, NULL, &…

上节课我们已经拿到了摄像头数据和麦克风数据,这节课我们来看一下如何将二者合并起来推送到rtmp服务器。推送音视频合成流到rtmp服务器地址的流程如下:

1.创建输出流

//初始化输出流上下文
avformat_alloc_output_context2(&outFormatCtx, NULL, "flv", outFileName);
outFormat = outFormatCtx->oformat;
outFormat->video_codec = AV_CODEC_ID_H264;
outFormat->audio_codec = AV_CODEC_ID_AAC;

2.创建视频编码器

vEncodec = avcodec_find_encoder(AV_CODEC_ID_H264);
vEncodeCtx = avcodec_alloc_context3(vEncodec);
vEncodeCtx->codec_id = vEncodec->id;
vEncodeCtx->codec_type = AVMEDIA_TYPE_VIDEO;
vEncodeCtx->bit_rate = 1000000;
vEncodeCtx->width = backWidth;
vEncodeCtx->height = backHeight;
vEncodeCtx->time_base = { 1, 25 };
vEncodeCtx->framerate = { 25, 1 };
vEncodeCtx->gop_size = 25 * 10;
vEncodeCtx->pix_fmt = *vEncodec->pix_fmts;
vEncodeCtx->max_b_frames = 0;
vEncodeCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
av_dict_set(&vEncodeOpts, "profile", "baseline", 0);
av_dict_set(&vEncodeOpts, "preset", "ultrafast", 0);
av_dict_set(&vEncodeOpts, "tune", "zerolatency", 0);
avcodec_open2(vEncodeCtx, vEncodec, &vEncodeOpts);

3.创建音频编码器

//音频编码器
aEncodec = avcodec_find_encoder(AV_CODEC_ID_AAC);;
aEncodeCtx = avcodec_alloc_context3(aEncodec);
aEncodeCtx->bit_rate = 64000;
aEncodeCtx->sample_rate = 44100;
aEncodeCtx->block_align = 0;
aEncodeCtx->sample_fmt = AV_SAMPLE_FMT_FLTP;
aEncodeCtx->channel_layout = AV_CH_LAYOUT_STEREO;
aEncodeCtx->channels = 2;
aEncodeCtx->time_base.num = 1;
aEncodeCtx->time_base.den = aEncodeCtx->sample_rate;aEncodeCtx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
avcodec_open2(aEncodeCtx, aEncodec, NULL);

4.创建输出视频流

//创建输出视频流
videoStream = avformat_new_stream(outFormatCtx, vEncodec);
videoStream->id = outFormatCtx->nb_streams - 1;
videoStream->codecpar->codec_tag = 0;
avcodec_parameters_from_context(videoStream->codecpar, vEncodeCtx);

5.创建输出音频流

//创建输出音频流
audioStream = avformat_new_stream(outFormatCtx, NULL);
audioStream->codecpar->codec_tag = 0;
audioStream->id = outFormatCtx->nb_streams - 1;
avcodec_parameters_from_context(audioStream->codecpar, aEncodeCtx);

6.打开输出流并写入文件头

//打开输出流
av_dump_format(outFormatCtx, 0, outFileName, 1);
ret = avio_open2(&outFormatCtx->pb, outFileName, AVIO_FLAG_READ_WRITE, nullptr, nullptr);//写文件头
ret = avformat_write_header(outFormatCtx, NULL);

7.分别封装音视频帧并送入编码器

ret = avcodec_send_frame(vEncodeCtx, deVideoFrame);
ret = avcodec_receive_packet(vEncodeCtx, &enVideoPacket);ret = avcodec_send_frame(aEncodeCtx, deAudioFrame);
ret = avcodec_receive_packet(aEncodeCtx, &enAudioPacket);

8.分别推送音视频流

if (enVideoPacket.size > 0){ret = av_interleaved_write_frame(outFormatCtx, &enVideoPacket);				
}if (enAudioPacket.size > 0){ret = av_interleaved_write_frame(outFormatCtx, &enAudioPacket);				
}

9.播放测试rtmp流

打开vlc或第一章写好的rtmp播放器测试,对着麦克风说话如果能从播放器听到声音并看到图像说明成功。

http://www.yayakq.cn/news/654654/

相关文章:

  • 国外有哪些网站可以做电商wordpress主页面编辑器
  • 展会邀请函在哪个网站做国外的跨境电商平台有哪些
  • 洪梅做网站wordpress 微信朋友圈
  • 制作营销网站模板免费下载河北省城乡规划建设局官方网站
  • 德州聊城网站建设软件开发案例展示
  • porto 4wordpress下载seo优化推广
  • 建设银行鞍山网站网站经营许可备案
  • 唐山网站建设唐山做网站建设青岛公司网站
  • 网站建设 销售建筑企业资质证书
  • 包装材料营销型网站六安网站
  • 网站建设播放vr视频教程摄影网站网络促销方式
  • 网站备案怎么注销深圳住建厅官方网站
  • 做网站需要到什么技术潍坊网站建设报价费用
  • 对接 网站后台网站集约建设原因
  • 模板网站的坏处编程培训心得
  • 做网站投资太大 网站也没搞起来宝塔面板wordpress静态化
  • 中英文双语网站怎么做网站做系统叫什么
  • html5国外网站模板html源码下载wordpress主题在线制作
  • 一个完整网站制作的实例app商城开发定制
  • wordpress多站点不同主题图片展示型网站模板下载
  • 腾讯云域名备案需要提供网站建设方案书建网站前途
  • 网站首页建设图文教程做网络销售哪些网站比较好
  • 可以做微课ppt模板 网站有哪些内容婚纱网站设计素材
  • 网站建设寻求做毕业设计免费网站建设
  • 下载专门做初中数学题的网站wordpress幻灯片不显示
  • 重庆网站排名优化教程商会网站建设方案书
  • 网站动画特效建筑工程网上教育平台
  • 油金地 做网站wordpress 怎么加页面
  • 个人网站建站申请网站关键词太多好不好
  • 医社保增减员在什么网站做格尔木有做网站的吗