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

wordpress 网站统计插件福建省建设工程职业注册网站

wordpress 网站统计插件,福建省建设工程职业注册网站,河北建设工程招标网,广州网站建设报价表好多开发者苦于很难在unity3d下实现RTMP直播推送#xff0c;本次以大牛直播SDK#xff08;Github#xff09;的Windows平台RTMP推送模块#xff08;以推摄像头为例#xff0c;如需推屏幕数据#xff0c;设置相关参数即可#xff09;为例#xff0c;介绍下unity3d的RTMP…好多开发者苦于很难在unity3d下实现RTMP直播推送本次以大牛直播SDKGithub的Windows平台RTMP推送模块以推摄像头为例如需推屏幕数据设置相关参数即可为例介绍下unity3d的RTMP推送集成。 简单来说Unity3D环境下可以直接调用C#的接口封装针对此我们先做了一层封装 nt_publisher_wrapper.cs核心代码如下 初始化和基础参数设置 private bool InitSDK(){if (!is_pusher_sdk_init_){// 设置日志路径(请确保目录存在)String log_path D:\\pulisherlog;NTSmartLog.NT_SL_SetPath(log_path);UInt32 isInited NTSmartPublisherSDK.NT_PB_Init(0, IntPtr.Zero);if (isInited ! 0){Debug.Log(调用NT_PB_Init失败..);return false;}is_pusher_sdk_init_ true;}return true;} public bool OpenPublisherHandle(uint video_option, uint audio_option){if (publisher_handle_ ! IntPtr.Zero){return true;}publisher_handle_count_ 0;if (NTBaseCodeDefine.NT_ERC_OK ! NTSmartPublisherSDK.NT_PB_Open(out publisher_handle_,video_option, audio_option, 0, IntPtr.Zero)){return false;}if (publisher_handle_ ! IntPtr.Zero){pb_event_call_back_ new NT_PB_SDKEventCallBack(PbEventCallBack);NTSmartPublisherSDK.NT_PB_SetEventCallBack(publisher_handle_, IntPtr.Zero, pb_event_call_back_);return true;}else{return false;}} private void SetCommonOptionToPublisherSDK(){if (!IsPublisherHandleAvailable()){Debug.Log(SetCommonOptionToPublisherSDK, publisher handle with null..);return;}CameraInfo camera cameras_[cur_sel_camera_index_];NT_PB_VideoCaptureCapability cap camera.capabilities_[cur_sel_camera_resolutions_index_];SetVideoCaptureDeviceBaseParameter(camera.id_.ToString(), (UInt32)cap.width_, (UInt32)cap.height_);SetFrameRate((UInt32)CalBitRate(edit_key_frame_, cap.width_, cap.height_));SetVideoEncoderType(is_h264_encoder ? 1 : 2);SetVideoQualityV2(CalVideoQuality(cap.width_, cap.height_, is_h264_encoder));SetVideoMaxBitRate((CalMaxKBitRate(edit_key_frame_, cap.width_, cap.height_, false)));SetVideoKeyFrameInterval((edit_key_frame_));if (is_h264_encoder){SetVideoEncoderProfile(1);}SetVideoEncoderSpeed(CalVideoEncoderSpeed(cap.width_, cap.height_, is_h264_encoder));// 音频相关设置SetAuidoInputDeviceId(0);SetPublisherAudioCodecType(1);SetPublisherMute(is_mute);SetInputAudioVolume(Convert.ToSingle(edit_audio_input_volume_));} 预览、停止预览 public bool StartPreview(){if(CheckPublisherHandleAvailable() false)return false;video_preview_image_callback_ new NT_PB_SDKVideoPreviewImageCallBack(SDKVideoPreviewImageCallBack);NTSmartPublisherSDK.NT_PB_SetVideoPreviewImageCallBack(publisher_handle_, (int)NTSmartPublisherDefine.NT_PB_E_IMAGE_FORMAT.NT_PB_E_IMAGE_FORMAT_RGB32, IntPtr.Zero, video_preview_image_callback_);if (NTBaseCodeDefine.NT_ERC_OK ! NTSmartPublisherSDK.NT_PB_StartPreview(publisher_handle_, 0, IntPtr.Zero)){if (0 publisher_handle_count_){NTSmartPublisherSDK.NT_PB_Close(publisher_handle_);publisher_handle_ IntPtr.Zero;}return false;}publisher_handle_count_;is_previewing_ true;return true;}public void StopPreview(){if (is_previewing_ false) return;is_previewing_ false;publisher_handle_count_--;NTSmartPublisherSDK.NT_PB_StopPreview(publisher_handle_);if (0 publisher_handle_count_){NTSmartPublisherSDK.NT_PB_Close(publisher_handle_);publisher_handle_ IntPtr.Zero;}} 开始推送、停止推送 public bool StartPublisher(String url){if (CheckPublisherHandleAvailable() false) return false;if (publisher_handle_ IntPtr.Zero){return false;}if (!String.IsNullOrEmpty(url)){NTSmartPublisherSDK.NT_PB_SetURL(publisher_handle_, url, IntPtr.Zero);}if (NTBaseCodeDefine.NT_ERC_OK ! NTSmartPublisherSDK.NT_PB_StartPublisher(publisher_handle_, IntPtr.Zero)){if (0 publisher_handle_count_){NTSmartPublisherSDK.NT_PB_Close(publisher_handle_);publisher_handle_ IntPtr.Zero;}is_publishing_ false;return false;}publisher_handle_count_;is_publishing_ true;return true;}public void StopPublisher(){if (is_publishing_ false) return;publisher_handle_count_--;NTSmartPublisherSDK.NT_PB_StopPublisher(publisher_handle_);if (0 publisher_handle_count_){NTSmartPublisherSDK.NT_PB_Close(publisher_handle_);publisher_handle_ IntPtr.Zero;}is_publishing_ false;} 相关event事件回调 private void PbEventCallBack(IntPtr handle, IntPtr user_data, UInt32 event_id,Int64 param1,Int64 param2,UInt64 param3,UInt64 param4,[MarshalAs(UnmanagedType.LPStr)] String param5,[MarshalAs(UnmanagedType.LPStr)] String param6,IntPtr param7){String event_log ;switch (event_id){case (uint)NTSmartPublisherDefine.NT_PB_E_EVENT_ID.NT_PB_E_EVENT_ID_CONNECTING:event_log 连接中;if (!String.IsNullOrEmpty(param5)){event_log event_log url: param5;}break;case (uint)NTSmartPublisherDefine.NT_PB_E_EVENT_ID.NT_PB_E_EVENT_ID_CONNECTION_FAILED:event_log 连接失败;if (!String.IsNullOrEmpty(param5)){event_log event_log url: param5;}break;case (uint)NTSmartPublisherDefine.NT_PB_E_EVENT_ID.NT_PB_E_EVENT_ID_CONNECTED:event_log 已连接;if (!String.IsNullOrEmpty(param5)){event_log event_log url: param5;}break;case (uint)NTSmartPublisherDefine.NT_PB_E_EVENT_ID.NT_PB_E_EVENT_ID_DISCONNECTED:event_log 断开连接;if (!String.IsNullOrEmpty(param5)){event_log event_log url: param5;}break;default:break;}if(OnLogEventMsg ! null) OnLogEventMsg.Invoke(event_id, event_log);} SmartPublishWinMono.cs 调用上述封装的代码即可本地预览的话拿到回调的RGB数据在unity3d上层刷下即可如下图 经测试unity3d下RTMP推送配合RTMP播放端依然可以实现毫秒级延迟的推拉流体验。
http://www.zqtcl.cn/news/915125/

相关文章:

  • 手机移动端网站是什么上海网站设计服务商
  • 多语言网站建设推广孝感门户网
  • 外贸soho 网站建设旅游电子商务网站建设调查问卷
  • 北京专业制作网站seo优化技术教程
  • 网站建设最低多少钱珠海在线网站制作公司
  • 网站建设完成之后要索取哪些医疗网站建设服务
  • 长沙招聘网站有哪些深圳seo论坛
  • 网站如何做网络推广山西住房建设厅官方网站
  • 优化排名推广技术网站平面设计创意
  • 山西网站建设哪家有tv域名的网站
  • 个人博客网站怎么赚钱公司招聘一个网站建设来做推广
  • 功能型网站有哪些中国门户网站有哪些
  • 网站制作教程步骤软件公司怎么赚钱
  • 看世界杯网址网站更新seo
  • 深圳网站做的好的公司商洛做网站电话
  • 环保部网站官网建设项目审批做网站推广赚钱吗
  • 北仑建设局网站东莞市seo网络推广价格
  • 大专学历怎么自考优化建站
  • 网站上的图片怎么替换中国电力建设集团网站
  • 开发手机网站步骤手机网站前端开发布局技巧
  • 文山文山市网站建设网站建设管理教程视频
  • 深圳建筑业协会官网seo短视频新地址在哪里
  • 学院宣传网站制作大型网站团队人数
  • 新品发布会ppt参考友山建站优化
  • 做网站云服务器装系统厦门网站建设哪家强
  • 网站建设顶呱呱东莞建设信息网官网
  • 化妆品网站下载企业宣传片报价明细
  • php建设网站怎么用网站建设忽悠
  • 网站软件app免费注册账号qq
  • 清河网站建设公司西安开发网站的公司