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

手机网站开发例子吉林学校网站建设

手机网站开发例子,吉林学校网站建设,网站栏目做跳转后不显示,济南优化seo公司Unity下RTMP直播背景方面不再赘述#xff0c;今天主要讨论的是#xff0c;Unity环境下#xff0c;如何实现Camera高帧率RTMP推送#xff0c;这里提到的高帧率#xff0c;不再局限于常规环境下的30帧#xff0c;以VR头显为例#xff0c;更高的帧率#xff08;比如50帧今天主要讨论的是Unity环境下如何实现Camera高帧率RTMP推送这里提到的高帧率不再局限于常规环境下的30帧以VR头显为例更高的帧率比如50帧体验会更好。 Android平台Unity推送Camera Windows平台Unity推送Camera 之前我们老早实现了Unity环境下的RTMP低延迟推送原生环境下比如windows下可轻松实现50帧的编码和RTMP推送需要播放端也有高帧率播放的能力。 好多开发者对这块比较感兴趣今天分享几个点权当抛砖引玉 数据源拿到期望的高帧率数据是基础以Android或Windows的Unity环境为例如果你想推50帧起码camera能每秒读到超过50帧的数据这个在好多开发者看来可能觉得不是难事实际你会发现在复杂场景下ReadPixel()耗时还是比较大的特别是Android端数据读取和数据投递、编码等拆分确保不至于因为数据投递、编码等彼此相互影响针对横竖屏或camera分辨率实时变化的处理编码瓶颈高帧率环境下如果是windows还好android端编超过30帧特别是分辨率比较大的话还是吃力的这时候需要酌情考虑硬编或高效的软编方案一般来说建议H.264帧率控制帧率控制这块好多开发者可能会忽略比如我每秒需要编45帧实际可以拿到60帧数据如何用合理的算法处理数据确保投递60帧数据编码45帧drop 15帧的情况下还能流畅无卡顿感在设备无性能瓶颈的情况下如何实现设置45帧实际编码出来45帧数据音频方面一般来说常用的无非几种组合模式麦克风、Unity内部音频、麦克风unity内部音频混音或Unity下2路内部音频混音麦克风的话可以原生实现然后直接调用即可Unity内部音频可以通过AudioClip读取数据编码的话考虑到通用性一般建议AAC Frame的构建可以参考一下设计 /* * FrameTexture构建 * WebSite: https://github.com/daniulive/SmarterStreaming */ public class FrameTexture {public FrameTexture(Texture2D texture, int is_vertical_flip, int is_horizontal_flip, int scale_width, int scale_height) {texture_ texture;is_vertical_flip_ is_vertical_flip;is_horizontal_flip_ is_horizontal_flip;scale_width_ scale_width;scale_height_ scale_height;}public Texture2D texture_ ;public int is_vertical_flip_ ;public int is_horizontal_flip_;public int scale_width_;public int scale_height_; } 数据投递接口设计Android /*** 投递层RGBA8888图像,如果不需要Aplpha通道的话, 请使用RGBX8888接口, 效率高** param index: 层索引, 必须大于等于0, 注意:如果index是0的话将忽略Alpha通道** param left: 层叠加的左上角坐标, 对于第0层的话传0** param top: 层叠加的左上角坐标, 对于第0层的话传0** param rgba_plane: rgba 图像数据** param offset: 图像偏移, 这个主要目的是用来做clip的, 一般传0** param row_stride: stride information** param width: width, 必须大于1, 如果是奇数, 将减1** param height: height, 必须大于1, 如果是奇数, 将减1** param is_vertical_flip: 是否垂直翻转, 0不翻转, 1翻转** param is_horizontal_flip是否水平翻转, 0不翻转, 1翻转** param scale_width: 缩放宽必须是偶数, 0或负数不缩放** param scale_height: 缩放高, 必须是偶数, 0或负数不缩放** param scale_filter_mode: 缩放质量, 传0使用默认速度,可选等级范围是:[1,3],值越大缩放质量越好, 但速度越慢** param rotation_degree: 顺时针旋转, 必须是0, 90, 180, 270, 注意:旋转是在缩放, 垂直/水品反转之后再做, 请留意顺序** return {0} if successful*/public native int PostLayerImageRGBA8888ByteBuffer(long handle, int index, int left, int top,ByteBuffer rgba_plane, int offset, int row_stride, int width, int height,int is_vertical_flip, int is_horizontal_flip,int scale_width, int scale_height, int scale_filter_mode,int rotation_degree);/*** 投递层RGBA8888图像, 详细说明请参考PostLayerImageRGBA8888ByteBuffer** return {0} if successful*/public native int PostLayerImageRGBA8888ByteArray(long handle, int index, int left, int top,byte[] rgba_plane, int offset, int row_stride, int width, int height,int is_vertical_flip, int is_horizontal_flip,int scale_width, int scale_height, int scale_filter_mode,int rotation_degree); Windows的话构建图层 NT_PB_ExternalVideoFrameLayerConfig external_layer_c1 new NT_PB_ExternalVideoFrameLayerConfig();external_layer_c1.base_.type_ (Int32)NTSmartPublisherDefine.NT_PB_E_LAYER_TYPE.NT_PB_E_LAYER_TYPE_EXTERNAL_VIDEO_FRAME; external_layer_c1.base_.index_ 0; external_layer_c1.base_.enable_ 1; external_layer_c1.base_.region_.x_ 0; external_layer_c1.base_.region_.y_ 0; external_layer_c1.base_.region_.width_ video_width_; external_layer_c1.base_.region_.height_ video_height_;external_layer_c1.base_.offset_ Marshal.OffsetOf(external_layer_c1.GetType(), base_).ToInt32(); external_layer_c1.base_.cb_size_ (uint)Marshal.SizeOf(external_layer_c1);IntPtr external_layer_conf Marshal.AllocHGlobal(Marshal.SizeOf(external_layer_c1));Marshal.StructureToPtr(external_layer_c1, external_layer_conf, true);UInt32 external_r NTSmartPublisherSDK.NT_PB_AddLayerConfig(publisher_handle_, 0,external_layer_conf, (int)NTSmartPublisherDefine.NT_PB_E_LAYER_TYPE.NT_PB_E_LAYER_TYPE_EXTERNAL_VIDEO_FRAME,0, IntPtr.Zero);Marshal.FreeHGlobal(external_layer_conf); 然后通过NT_PB_PostLayerImage()给图层投递数据即可 /** 给index层投递Image数据目前主要是用来把rgb和yuv视频数据传给相关层* reserve: 保留字段请传0* index: 层索引* image: 图像* flag: 请传0* pReserve: 保留字段请传0* * 成功返回 NT_ERC_OK*/ [DllImport(SmartPublisherSDK, EntryPoint NT_PB_PostLayerImage, CallingConvention CallingConvention.StdCall)]public static extern UInt32 NT_PB_PostLayerImage(IntPtr handle, Int32 reserve,Int32 index, IntPtr image,UInt32 flag, IntPtr pReserve); 以上是Unity环境下高帧率RTMP推送一点抛砖引玉的介绍实际开发过程中可能还需要考虑多实例、异常网络环境处理等各种情况如果原生开发这块有很好的积累这块都不难。
http://wiki.neutronadmin.com/news/358169/

相关文章:

  • 网站建设的作用外企公司网站开发设计
  • c 网站开发需要学什么平面设计软件名称
  • 网页设计站点为违法网站做推广进去要几年
  • 建设银行管官方网站网站建设要多久豆瓣
  • wordpress 单页主题合肥seo网站推广外包
  • 广州网站制作开发公司哪家好便宜的网站设计企业
  • vi设计网站运动康复wordpress theme options
  • 人才招聘网站开发 源代码湖北省建设教育协会网站
  • 商城网站解决方案社群营销方案
  • 中国菲律宾南海seo的名词解释
  • 站长网站潍坊网站建设外贸
  • 磁力网站怎么做拼多多电商网站建设
  • 精美旅游网站案例网站建设公司业务在哪里来
  • asp.net 做网站好吗重庆观音桥附近酒店
  • 网页设计网站作业酷炫的网站
  • 顺的网站建设报价管城郑州网站建设
  • 深圳企业网站建设公司昆明旅行社网站开发
  • 网站技术解决方案不包括手机网站建设的企业
  • 新兴县做网站的什么是wordpress主题
  • 多用户建站系统源码网站备案好不好
  • 微信小程序 连接网站微信公众号怎么做网页
  • 建设工程造价员网站例点估算网站开发项目工作量
  • 有关性的网站网页设计制作网站用什么软件
  • 网站模板代理电话wordpress更换icon
  • 沈阳建设厅官方网站中山网站建设思
  • 做网站 英语php网站开发工程
  • 个人资料库网站怎么做优创智汇高端网站建设
  • 设计师网站导航胶州网站设计
  • 网站宝搭建网站环境黑龙江省建设安全监督网站
  • seo移动网站页面怎么做中国网站建设新闻