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

wordpress怎么更换站点石材公司网站

wordpress怎么更换站点,石材公司网站,shopnc本地生活o2o网站系统,济南住房与城乡建设官网一.本章节内容: 本章节的内容主要是讲解如何通过低分辨率队列的每一帧数据,并且通过FFMPEG推流器传输到低码流分辨率流媒体服务器,本章节代码在rkmedia_assignment_manage.cpp和rkmedia_data_process.cpp里面。低分辨率编码码流推送的过程和…

一.本章节内容:

本章节的内容主要是讲解如何通过低分辨率队列的每一帧数据,并且通过FFMPEG推流器传输到低码流分辨率流媒体服务器,本章节代码在rkmedia_assignment_manage.cpp和rkmedia_data_process.cpp里面。低分辨率编码码流推送的过程和高分辨率编码码流的推送的过程基本上一致,唯一的区别在于分辨率的设置。

二.低分辨率编码码流推流的流程

上面是低分辨率推流的过程,总共分成6个步骤。分别是初始化RKMEDIA_FFMPEG_CONFIG结构体、调用init_rkmedia_ffmpeg_context设置1280* 720推流器、创建low_video_push_thread线程、从LOW_VIDEO_QUEUE队列获取每一帧视频数据 、每一帧AVPacket计算PTS并进行时间基转换、利用FFMPEG的API推送每一帧视频数据到流媒体服务器,下面我们来具体看每一个步骤的实现过程:

2.1. 初始化RKMEDIA_FFMPEG_CONFIG结构体

我们来看看RKMEDIA_FFMPEG_CONFIG的成员变量

2.2.1. width推流器的width,width和rv1126编码器的width一致

2.2.2. height推流器的height,height和rv1126编码器的height一致

2.2.3. config_idconfig_id,暂时没用到

2.2.4. protocol_type流媒体的类型

2.2.5.network_addr流媒体地址

2.2.6.video_codec视频编码器ID
2.2.7.audio_codec音频编码器ID

2.2.8.video_stream自定义VIDEO的STREAM结构体配置

2.2.9.audio_stream自定义AUDIO的STREAM结构体配置


上面是高分辨率rkmedia_ffmpeg_config的设置

2.2. 调用init_rkmedia_ffmpeg_context来初始化1280* 720推流器

init_rkmedia_ffmpeg_context是初始化rkmedia_ffmpeg_config的设置,关于这个函数的内容在之前的课程已经说了。这里不做过多的介绍。

2.3. 创建low_video_push_thread线程

Low_video_push_thread最主要作用是在LOW_VIDEO_QUEUE队列获取每一帧1280* 720的H264编码视频流,然后再把每一帧H264的码流数据先赋值到AVPacket,再调用FFMPEG的API把视频流传输到流媒体服务器。

2.4. LOW_VIDEO_QUEUE获取每一帧H264数据码流并且赋值到AVPacket

上面的代码是从LOW_VIDEO_QUEUE队列里面取出每一帧1280* 720的H264数据,并且赋值到AVPacket的过程。整个函数封装到deal_low_video_packet里面。在deal_high_video_packet主要是实现从LOW_VIDEO_QUEUE队列获取每一帧数据并赋值到AVPacket的具体实现过程,具体如上图:

这里面有几个比较核心的地方:video_data_packet的视频数据包赋值到AVPacket,这里要赋值两部分:一部分是AVPacket缓冲区数据的赋值,另外一个是AVPacket的长度赋值。

2.4.1. 我们先来看看AVPacket缓冲区的赋值:首先用av_buffer_realloc分配每一个缓冲区数据。要注意的是AVPacket中缓冲区的buf是不能直接赋值的,如: memcpy(pkt->data, video_data_packet->buffer, video_data_packet->frame_size)否则程序就会出现core_dump情况。我们需要先把video_data_packet_t的视频数据(video_data_packet->buffer)先拷贝到pkt->buf->data,然后再把pkt->buf->data的数据赋值到pkt->data。

2.4.2. AVPacket缓冲区长度的赋值:把video_data_packet的video_frame_size长度直接赋值给AVPacket的pkt->size。

2.4.3. AVPacket关键帧标识符的赋值:添加了这个标识符后,每个AVPacket中都进行关键帧设置,这个标识符必须要加,否则播放器则无法正常解码出视频。

2.5. 每一帧AVPacket计算PTS时间戳

根据AVPacket的数据去计算视频的PTS,若AVPacket的数据不为空。则让视频pts = ost->next_timestamp++(关于videoPTS计算,上一节课已经讲了)

把视频PTS进行时间基的转换,调用av_packet_rescale_ts把采集的视频时间基转换成复合流的时间基。

2.6. 把每一帧视频数据传输到流媒体服务器

时间基转换完成之后,就把视频数据写入到复合流文件里面,调用的API是av_interleaved_write_frame (注意:复合流文件可以是本地文件也可以是流媒体地址)。


文章转载自:

http://s4vyTftQ.cfmrb.cn
http://HzPoAb2c.cfmrb.cn
http://JBiDHdEI.cfmrb.cn
http://l9lw9DfQ.cfmrb.cn
http://1mOaPrZn.cfmrb.cn
http://iqRQdHjF.cfmrb.cn
http://hV6OeAk4.cfmrb.cn
http://sDvTjuYt.cfmrb.cn
http://6E43HWBh.cfmrb.cn
http://PDGz90Rw.cfmrb.cn
http://MB5CIJzW.cfmrb.cn
http://KZsme4AG.cfmrb.cn
http://JrTEu5VG.cfmrb.cn
http://jyKs4lfS.cfmrb.cn
http://xtDXijmP.cfmrb.cn
http://Z0VWfrih.cfmrb.cn
http://jb93BVh9.cfmrb.cn
http://VikXky0F.cfmrb.cn
http://tFKoPjqE.cfmrb.cn
http://yQjHvfsu.cfmrb.cn
http://U7jIkhhv.cfmrb.cn
http://NusPId5O.cfmrb.cn
http://1rQFrKzR.cfmrb.cn
http://2yRZROV0.cfmrb.cn
http://muW486NC.cfmrb.cn
http://RqdD2eCn.cfmrb.cn
http://2hmpHNX5.cfmrb.cn
http://h34ys1yH.cfmrb.cn
http://o8bqDHvD.cfmrb.cn
http://ysyft8yB.cfmrb.cn
http://www.dtcms.com/wzjs/640790.html

相关文章:

  • 美团网站建设规划书提高网站公信力 单仁
  • cms网站是什么企业网站备案要多少钱
  • 北京网页设计公司网站网站建设哪个公司好知乎
  • 1 网站建设的目标是什么app开发一个多少钱
  • 河南做网站最好的公司wordpress xmmpp
  • 网站建设项目策划书深圳网络服务有限公司
  • 网站产品的详情页怎么做中国卫生人才网
  • 企业只有建立了自己的网站网络推广发展
  • 深圳住建设局网站网站修改报价
  • 环评怎么在网站做公示做网站能不备案么
  • 网站开发合同审核要点html制作手机网站
  • 免费做文字图网站平面设计图数字标识
  • 网站开发工资多少稳定么wordpress js失效
  • 网站标题应怎设置wordpress+歌曲列表
  • 做韩国网站有哪些网站建设费用不用摊销
  • 网站设计与制作说明wordpress 用户组
  • 网站建设需要域名吗?微信小程序开发需要什么
  • 城阳 网站建设网站团队介绍
  • 公司网站建设收费站酷网网址
  • 网站运营岗位介绍自建平台
  • 西安专业做淘宝网站的公司做网站免费服务器哪家好
  • 长沙建设公司网站网站怎么免费做推广
  • 洛阳网站设计展厅宣传片
  • 查看一个网站的源代码做评价电脑可以做网站吗
  • 做特卖的网站雅美盛典wordpress商业模板破解
  • 杭州 兼职 网站建设如何注册一个域名
  • 电子商务网站建设的参考文献利鑫做彩票网站
  • 如何在网站上做跳转代码去除wordpress主题头部作者信息
  • 网站建设与管理是什么工作互联网金融网站建设
  • 广州seo网站设计公众号制作代运营