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

网站如何做权重注册网站借钱平台犯不犯法

网站如何做权重,注册网站借钱平台犯不犯法,网上打字兼职正规网站,英文公司网站前言 本文主要介绍自研的RtmpStreamSender.dll#xff0c;rtmp库提供接口接收裸流数据#xff0c;支持将裸流数据封装为flv格式并通过rtmp协议发流。 关于rtmp协议基础介绍可查看#xff1a;https://blog.csdn.net/www_dong/article/details/131026072 关于rtmp收流介绍可…前言 本文主要介绍自研的RtmpStreamSender.dllrtmp库提供接口接收裸流数据支持将裸流数据封装为flv格式并通过rtmp协议发流。 关于rtmp协议基础介绍可查看https://blog.csdn.net/www_dong/article/details/131026072 关于rtmp收流介绍可查看https://blog.csdn.net/www_dong/article/details/135073488 设计 主要流程 rtmp服务端启动tcp端口:1935监听创建rtmp server对象rtmp客户端发起tcp连接连接成功后等到收流rtmp服务端以动态库的形式呈现提供SendData接口有上层应用调用时塞入数据rtmp服务端接收数据将数据封装为flv格式rtmp服务端将flv格式的流发送给rtmp客户端rtmp客户端将数据解复用、解码和播放 流程 创建tcp、启动端口监听 int RtmpServerThread(void* param) {assert(param);CRtmpStreamSender* receiver (CRtmpStreamSender*)param;receiver-RtmpServerWorker();return 0; }int CRtmpStreamSender::InitRtmpSession_() {if (0 ! ParseUrl_()){printf(parse url failed\n);return -1;}do{m_tcpServer std::make_sharedZDTcpServer(nullptr, this);if (!m_tcpServer.get()|| 0 ! m_tcpServer-TcpCreate()|| 0 ! m_tcpServer-TcpBind(m_rtmpPort)|| 0 ! m_tcpServer-TcpListen(5)){break;}m_command std::make_sharedCRtmpServerCommand(m_tcpServer);if (!m_command.get()|| 0 ! m_command-Create()){break;}m_thread std::thread(RtmpServerThread, this);return 0;} while (0);Stop();return 0; }// 在线程中等待连接 void CRtmpStreamSender::RtmpServerWorker() {bool bAccept false;while (m_running){if (!bAccept){if (0 m_tcpServer-TcpAccept()){bAccept true;}continue;}std::this_thread::sleep_for(std::chrono::seconds(5));} }创建rtmp server // CRtmpServerCommand:librtmp封装类 m_command std::make_sharedCRtmpServerCommand(m_tcpServer); if (!m_command.get()|| 0 ! m_command-Create()) {break; }// 创建rtmp server int CRtmpServerCommand::Create() {// 创建flv复用对象m_flvMuxer flv_muxer_create(SendRtmpDataMutexFLV, this);if (!m_flvMuxer)return -1;struct rtmp_server_handler_t handler;memset(handler, 0, sizeof(handler));handler.send SendCallback;// 创建rtmp serverm_rtmp rtmp_server_create(this, handler);if (!m_rtmp)return -1;return 0; }数据封装 // 上层通过SendData塞数据 int CRtmpStreamSender::SendData(void* data, int len, char* codec) {if (!m_command.get())return -1;return m_command-InputData(data, len, codec); }// 数据做flv封装 int CRtmpServerCommand::InputData(void* data, int len, const std::string codec) {if (!m_flvMuxer || !data || len 0 || codec.empty())return -1;int ret -1;if (0 codec.compare(H264)){ret flv_muxer_avc(m_flvMuxer, data, len, 0, 0);}else if (0 codec.compare(H265)){ret flv_muxer_hevc(m_flvMuxer, data, len, 0, 0);}else if (0 codec.compare(AAC)){ret flv_muxer_aac(m_flvMuxer, data, len, 0, 0);}return 0; }发送数据 int CRtmpServerCommand::Package(int type, const void* data, size_t bytes, uint32_t timestamp) {if (!m_rtmp || !data || bytes 0)return -1;int ret -1;if (FLV_TYPE_AUDIO type){ret rtmp_server_send_audio(m_rtmp, data, bytes, timestamp);}else if (FLV_TYPE_VIDEO type){ret rtmp_server_send_video(m_rtmp, data, bytes, timestamp);}else if (FLV_TYPE_SCRIPT type){ret rtmp_server_send_script(m_rtmp, data, bytes, timestamp);}if (0 ! ret)return ret;return 0; }资源销毁 void CRtmpServerCommand::Destroy() {if (m_rtmp){rtmp_server_destroy(m_rtmp);m_rtmp nullptr;}if (m_flvMuxer){flv_muxer_destroy(m_flvMuxer);m_flvMuxer nullptr;} }
http://www.pierceye.com/news/493711/

相关文章:

  • 找工程项目信息网站早那么做商城网站
  • 做网站优化销售管理系统排名
  • wordpress导入网站模板wordpress部分图片
  • 无锡做网站365caiyi秘密直播
  • 无锡企业网站制作报价公司做网站需要哪些手续
  • 最好的营销型网站保险购买平台有哪些
  • 网站建设实训的目的网站开发的框架协议
  • 本地郑州网站建设搭建一个网站
  • 如何做网站竞品分析哪个网站可以接任务做兼职
  • 佛山网站关键词网站建设需求分析文档
  • 网站收录地址旅游网站建设的相关报价
  • seo月薪seo优化方法网站快速排名推广渠道
  • 企业网站设计理念如何seo网站
  • 河南移动商城网站建设怎么创建平台卖自己的产品
  • 网上做网站钱被骗了报案有用吗文章自定义wordpress
  • 网站设置成灰色市场监督管理局是什么单位
  • 北京国贸网站建设wordpress需要付费才能看某些页面
  • 郸城网站建设wordpress教程cms
  • 做本地网站赚钱吗?php网站制作过程中遇到的问题及解决办法
  • 上海网站快速排名提升ui是网站建设吗
  • 中信建设有限责任公司洪波seo外链工具
  • 网站服务器和空间有什么区别网站制作的公司哪家效果好
  • 做网站具体收费梅州南站
  • 淘宝禁止了网站建设类wordpress极速优化
  • 山东app网站制作网站建设优化广告流量
  • 做阿里云网站浏览器编程语言
  • 青岛市网站制作企业邮箱密码忘了怎么重置密码
  • 文交所网站开发和业务多一样的平台
  • 如何免费自己做网站wordpress成品图
  • thinkphp做中英文网站电子商务网站建设的步骤一般为