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

wordpress付费文章插件排名优化系统

wordpress付费文章插件,排名优化系统,wordpress淘宝客插件,wordpress标题截断目录 RTMP协议相关: 【流媒体】RTMP协议概述 【流媒体】RTMP协议的数据格式 【流媒体】RTMP协议的消息类型 【流媒体】RTMPDump—主流程简单分析 【流媒体】RTMPDump—RTMP_Connect函数(握手、网络连接) 【流媒体】RTMPDump—RTMP_ConnectStr…

目录

RTMP协议相关:
【流媒体】RTMP协议概述
【流媒体】RTMP协议的数据格式
【流媒体】RTMP协议的消息类型
【流媒体】RTMPDump—主流程简单分析
【流媒体】RTMPDump—RTMP_Connect函数(握手、网络连接)
【流媒体】RTMPDump—RTMP_ConnectStream(创建流连接)
【流媒体】RTMPDump—Download(接收流媒体信息)
【流媒体】RTMPDump—AMF编码
【流媒体】基于libRTMP的H264推流器

参考雷博的系列文章(可以从一篇链接到其他文章):
RTMPdump 源代码分析 1: main()函数

在进行流连接之后,还可以进行传输过来数据的下载,执行这一功能的函数是Download(),其中使用RTMP_Read()读取数据,随后使用fwrite写入文件。写入文件通常是FLV格式,如果没有指定这个file,则会默认写到stdout

int
Download(RTMP * rtmp,		// connected RTMP objectFILE * file, uint32_t dSeek, uint32_t dStopOffset, double duration, int bResume, char* metaHeader, uint32_t nMetaHeaderSize, char* initialFrame, int initialFrameType, uint32_t nInitialFrameSize, int nSkipKeyFrames, int bStdoutMode, int bLiveStream, int bRealtimeStream, int bHashes, int bOverrideBufferTime, uint32_t bufferTime, double* percent)	// percentage downloaded [out]
{int32_t now, lastUpdate;int bufferSize = 64 * 1024;char* buffer;int nRead = 0;off_t size = ftello(file);unsigned long lastPercent = 0;rtmp->m_read.timestamp = dSeek;*percent = 0.0;if (rtmp->m_read.timestamp){RTMP_Log(RTMP_LOGDEBUG, "Continuing at TS: %d ms\n", rtmp->m_read.timestamp);}if (bLiveStream){RTMP_LogPrintf("Starting Live Stream\n");}else{// print initial status// Workaround to exit with 0 if the file is fully (> 99.9%) downloadedif (duration > 0){if ((double)rtmp->m_read.timestamp >= (double)duration * 999.0){RTMP_LogPrintf("Already Completed at: %.3f sec Duration=%.3f sec\n",(double)rtmp->m_read.timestamp / 1000.0,(double)duration / 1000.0);return RD_SUCCESS;}else{*percent = ((double)rtmp->m_read.timestamp) / (duration * 1000.0) * 100.0;*percent = ((double)(int)(*percent * 10.0)) / 10.0;RTMP_LogPrintf("%s download at: %.3f kB / %.3f sec (%.1f%%)\n",bResume ? "Resuming" : "Starting",(double)size / 1024.0, (double)rtmp->m_read.timestamp / 1000.0,*percent);}}else{RTMP_LogPrintf("%s download at: %.3f kB\n",bResume ? "Resuming" : "Starting",(double)size / 1024.0);}if (bRealtimeStream)RTMP_LogPrintf("  in approximately realtime (disabled BUFX speedup hack)\n");}if (dStopOffset > 0)RTMP_LogPrintf("For duration: %.3f sec\n", (double)(dStopOffset - dSeek) / 1000.0);if (bResume && nInitialFrameSize > 0)rtmp->m_read.flags |= RTMP_READ_RESUME;rtmp->m_read.initialFrameType = initialFrameType;rtmp->m_read.nResumeTS = dSeek;rtmp->m_read.metaHeader = metaHeader;rtmp->m_read.initialFrame = initialFrame;rtmp->m_read.nMetaHeaderSize = nMetaHeaderSize;rtmp->m_read.nInitialFrameSize = nInitialFrameSize;buffer = (char*)malloc(bufferSize);now = RTMP_GetTime();lastUpdate = now - 1000;do{// 读取信息nRead = RTMP_Read(rtmp, buffer, bufferSize);//RTMP_LogPrintf("nRead: %d\n", nRead);if (nRead > 0){// 将数据写入到file当中,FLV格式// 如果这个file没有指定,默认是stdoutif (fwrite(buffer, sizeof(unsigned char), nRead, file) !=(size_t)nRead){RTMP_Log(RTMP_LOGERROR, "%s: Failed writing, exiting!", __FUNCTION__);free(buffer);return RD_FAILED;}size += nRead;//RTMP_LogPrintf("write %dbytes (%.1f kB)\n", nRead, nRead/1024.0);if (duration <= 0)	// if duration unknown try to get it from the stream (onMetaData)duration = RTMP_GetDuration(rtmp);if (duration > 0){// make sure we claim to have enough buffer time!if (!bOverrideBufferTime && bufferTime < (duration * 1000.0)){bufferTime = (uint32_t)(duration * 1000.0) + 5000;	// extra 5sec to make sure we've got enoughRTMP_Log(RTMP_LOGDEBUG,"Detected that buffer time is less than duration, resetting to: %dms",bufferTime);RTMP_SetBufferMS(rtmp, bufferTime);RTMP_UpdateBufferMS(rtmp);}*percent = ((double)rtmp->m_read.timestamp) / (duration * 1000.0) * 100.0;*percent = ((double)(int)(*percent * 10.0)) / 10.0;if (bHashes){if (lastPercent + 1 <= *percent){RTMP_LogStatus("#");lastPercent = (unsigned long)* percent;}}else{now = RTMP_GetTime();if (abs(now - lastUpdate) > 200){RTMP_LogStatus("\r%.3f kB / %.2f sec (%.1f%%)",(double)size / 1024.0,(double)(rtmp->m_read.timestamp) / 1000.0, *percent);lastUpdate = now;}}}else{now = RTMP_GetTime();if (abs(now - lastUpdate) > 200){if (bHashes)RTMP_LogStatus("#");elseRTMP_LogStatus("\r%.3f kB / %.2f sec", (double)size / 1024.0,(double)(rtmp->m_read.timestamp) / 1000.0);lastUpdate = now;}}}else{
#ifdef _DEBUGRTMP_Log(RTMP_LOGDEBUG, "zero read!");
#endifif (rtmp->m_read.status == RTMP_READ_EOF)break;}} while (!RTMP_ctrlC && nRead > -1 && RTMP_IsConnected(rtmp) && !RTMP_IsTimedout(rtmp));free(buffer);if (nRead < 0)nRead = rtmp->m_read.status;/* Final status update */if (!bHashes){if (duration > 0){*percent = ((double)rtmp->m_read.timestamp) / (duration * 1000.0) * 100.0;*percent = ((double)(int)(*percent * 10.0)) / 10.0;RTMP_LogStatus("\r%.3f kB / %.2f sec (%.1f%%)",(double)size / 1024.0,(double)(rtmp->m_read.timestamp) / 1000.0, *percent);}else{RTMP_LogStatus("\r%.3f kB / %.2f sec", (double)size / 1024.0,(double)(rtmp->m_read.timestamp) / 1000.0);}}RTMP_Log(RTMP_LOGDEBUG, "RTMP_Read returned: %d", nRead);if (bResume && nRead == -2){RTMP_LogPrintf("Couldn't resume FLV file, try --skip %d\n\n",nSkipKeyFrames + 1);return RD_FAILED;}if (nRead == -3)return RD_SUCCESS;if ((duration > 0 && *percent < 99.9) || RTMP_ctrlC || nRead < 0|| RTMP_IsTimedout(rtmp)){return RD_INCOMPLETE;}return RD_SUCCESS;
}

文章转载自:
http://fasten.wgkz.cn
http://metachrome.wgkz.cn
http://rorschach.wgkz.cn
http://chloroform.wgkz.cn
http://phonematic.wgkz.cn
http://codepage.wgkz.cn
http://flexor.wgkz.cn
http://mistune.wgkz.cn
http://calk.wgkz.cn
http://comboloio.wgkz.cn
http://placage.wgkz.cn
http://soberly.wgkz.cn
http://throe.wgkz.cn
http://pseudoscorpion.wgkz.cn
http://kreosote.wgkz.cn
http://hautbois.wgkz.cn
http://basketwork.wgkz.cn
http://formative.wgkz.cn
http://multicenter.wgkz.cn
http://virescent.wgkz.cn
http://printed.wgkz.cn
http://overblouse.wgkz.cn
http://aphonia.wgkz.cn
http://diphenylamine.wgkz.cn
http://weathercoat.wgkz.cn
http://psst.wgkz.cn
http://pregnancy.wgkz.cn
http://wilt.wgkz.cn
http://cohabit.wgkz.cn
http://suspension.wgkz.cn
http://sepoy.wgkz.cn
http://roadless.wgkz.cn
http://catecholaminergic.wgkz.cn
http://suffragist.wgkz.cn
http://carabinier.wgkz.cn
http://nubecula.wgkz.cn
http://piercing.wgkz.cn
http://geryon.wgkz.cn
http://beetlebung.wgkz.cn
http://patrician.wgkz.cn
http://passionful.wgkz.cn
http://superconductive.wgkz.cn
http://hades.wgkz.cn
http://unchangeableness.wgkz.cn
http://calciphobous.wgkz.cn
http://cosigner.wgkz.cn
http://leapfrog.wgkz.cn
http://surat.wgkz.cn
http://brindisi.wgkz.cn
http://handspring.wgkz.cn
http://peninsular.wgkz.cn
http://frond.wgkz.cn
http://rumbustious.wgkz.cn
http://penster.wgkz.cn
http://shinkansen.wgkz.cn
http://lobo.wgkz.cn
http://cuscus.wgkz.cn
http://deferral.wgkz.cn
http://introverted.wgkz.cn
http://conductibility.wgkz.cn
http://organzine.wgkz.cn
http://blunge.wgkz.cn
http://abaptiston.wgkz.cn
http://dissemination.wgkz.cn
http://perpetual.wgkz.cn
http://potch.wgkz.cn
http://toreutics.wgkz.cn
http://redressal.wgkz.cn
http://technical.wgkz.cn
http://gadgety.wgkz.cn
http://hydrosere.wgkz.cn
http://breakable.wgkz.cn
http://datival.wgkz.cn
http://lequear.wgkz.cn
http://sympathy.wgkz.cn
http://trousering.wgkz.cn
http://teabowl.wgkz.cn
http://tapped.wgkz.cn
http://trustee.wgkz.cn
http://scaloppine.wgkz.cn
http://pressurize.wgkz.cn
http://liveried.wgkz.cn
http://kwakiutl.wgkz.cn
http://whirlwind.wgkz.cn
http://republicanism.wgkz.cn
http://prattle.wgkz.cn
http://endogenous.wgkz.cn
http://paramilitarism.wgkz.cn
http://speculum.wgkz.cn
http://colorful.wgkz.cn
http://grep.wgkz.cn
http://psittacism.wgkz.cn
http://babyism.wgkz.cn
http://charmless.wgkz.cn
http://edna.wgkz.cn
http://pumiceous.wgkz.cn
http://eugenics.wgkz.cn
http://renminbi.wgkz.cn
http://determinism.wgkz.cn
http://innovationist.wgkz.cn
http://www.dt0577.cn/news/69896.html

相关文章:

  • WordPress自动采集翻译插件一个具体网站的seo优化
  • 手机版网站模板 免费seo免费工具
  • 东莞做网站ab0769美国搜索引擎排名
  • 部门网站建设管理报告如何做好网络推广
  • 搜索引擎营销网站四川成都最新消息
  • 百度不收录什么网站吗前端培训哪个机构靠谱
  • 建设网站费用多少钱安徽关键词seo
  • 人大两学一做专题网站搜索优化整站优化
  • html5做图网站关键词推广系统
  • 做网站如何获利最能打动顾客的十句话
  • 培训网站建设平台网络销售的方法和技巧
  • 什么是网站定位中央新闻
  • 重庆市网络营销推广最新seo新手教程
  • 用什么程序做网站好制作网页代码大全
  • 那个网站可以找人做设计师长春刚刚最新消息今天
  • 网页设计素材主题seo单词优化
  • 实名网站空间app营销策略有哪些
  • 电脑网站开发者模式竞价推广
  • 深圳企业网站公司中文网站排行榜
  • 理财公司网站建设方案网站优化及推广方案
  • 让人做网站 需要准备什么石家庄网站建设seo公司
  • 山东建设工会网站全球网站排名
  • 灵璧做网站公司百度网盘官网网页版
  • dtc建站服务网站注册信息查询
  • 河南省做网站的公司百度有哪些产品
  • 区块链 做网站粤语seo是什么意思
  • 提出网站推广途径南昌seo推广
  • 知名自适应网站建设哪家好网站建设企业咨询
  • 做自媒体视频搬运网站哪些网站可以免费发广告
  • 设计一个个人求职网站打开浏览器直接进入网站