You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SoftwareEngineering/直播工具包/librtmp分析/LibRTMP源代码分析1 - wongainia15...

5874 lines
984 KiB

5 years ago
<!DOCTYPE html>
<html lang="zh-CN"><head><style>.login-box{position: fixed;display: none;left: 50%;top: 50%;z-index: 10000;-webkit-transform: translate(-50%, -50%);-ms-transform: translate(-50%, -50%);-o-transform: translate(-50%, -50%);-moz-transform: translate(-50%, -50%);transform: translate(-50%, -50%);background-color: #fff;}.login-mark{position: fixed;top: 0;left: 0;z-index: 9999;background-color: rgba(0, 0, 0, 0.5);width: 100%;height: 100%;display: none;}</style><script type="text/javascript" async="" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/auto_dup"></script><script type="text/javascript" charset="utf-8" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/apiaccept"></script>
<meta charset="UTF-8">
<link rel="canonical" href="https://blog.csdn.net/wongainia158158/article/details/48624409">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="renderer" content="webkit">
<meta name="force-rendering" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="referrer" content="always">
<meta http-equiv="Cache-Control" content="no-siteapp"><link rel="alternate" media="handheld" href="#">
<meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
<meta name="csdn-baidu-search" content="{&quot;autorun&quot;:true,&quot;install&quot;:true,&quot;keyword&quot;:&quot;LibRTMP源代码分析1 - wongainia158158的博客&quot;}">
<link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON">
<title>LibRTMP源代码分析1 - wongainia158158的博客 - CSDN博客</title>
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/detail-a0a545005c.css">
<script type="text/javascript" async="" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pr.js"></script><script type="text/javascript" async="" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/icgkglf.js"></script><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/hm.js"></script><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/hm.js"></script><script type="application/ld+json">{"@context":"https:\/\/ziyuan.baidu.com\/contexts\/cambrian.jsonld","@id":"https:\/\/blog.csdn.net\/wongainia158158\/article\/details\/48624409","appid":"1563894916825412","title":"LibRTMP\u6e90\u4ee3\u7801\u5206\u67901 - wongainia158158\u7684\u535a\u5ba2","images":["http:\/\/img1.ph.126.net\/Fjfp_eaabTHBWmb9_WQAyg==\/3664522721896108900.jpg","http:\/\/img1.ph.126.net\/I_-yPuqW_FwDOEVH1gOzlA==\/2080100077991870875.jpg","http:\/\/img0.ph.126.net\/wGodFj3jK2hsCR9GWD4H4w==\/1827617023882644153.jpg"],"pubDate":"2019-03-05T14:01:23"}</script>
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/skin3-template-9b39979775.css">
<script type="text/javascript">
var username = "wongainia158158";
var blog_address = "https://blog.csdn.net/wongainia158158";
var static_host = "https://csdnimg.cn/release/phoenix/";
var currentUserName = "";
var isShowAds = true;
var isOwner = false;
var loginUrl = "http://passport.csdn.net/account/login?from=https://blog.csdn.net/wongainia158158/article/details/48624409"
var blogUrl = "https://blog.csdn.net/";
//页面皮肤样式
var curSkin = "skin3-template";
// 第四范式所需数据
var articleTitles = "LibRTMP源代码分析1 - wongainia158158的博客";
var articleID = "48624409";
var nickName = "wongainia158158";
var isCorporate = false;
var subDomainBlogUrl = "https://blog.csdn.net/"
</script>
<script type="text/javascript">
// Traffic Stats of the entire Web site By baidu
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6bcd52f51e9b3dce32bec4a3997715ac";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
// Traffic Stats of the entire Web site By baidu end
</script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/jquery-1.js" type="text/javascript"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/main-1.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/fixed-sidebar.js" type="text/javascript"></script>
<!-- 新版上报 -->
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/track.js" type="text/javascript"></script>
<!-- 新版上报end -->
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/sandalstrap.css">
<style>
.MathJax, .MathJax_Message, .MathJax_Preview{
display: none
}
</style>
<style type="text/css" id="QIHOO_FEED_CSS">newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551765686072_588 info-div{display:block}.QIHOO__WEB__SO__1551765686072_588
.singleImage{
background-color:#fff;
padding: 20px 0px 0px 20px;
overflow: hidden;
width: 880px;
height: 80px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .wrap{
position:relative;
width: 880px;
height: 80px;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-img{
width: 90px;
height: 68px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-img .img{
width: 90px;
height: 68px;
border-radius: 0px;
position: relative;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-body{
width: 790px;
height: 80px;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft YaHei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686072_588
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551765686072_588 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage{.QIHOO__WEB__SO__1551765686072_588
padding: {paddingTop}.QIHOO__WEB__SO__1551765686072_588 px {paddingRight}.QIHOO__WEB__SO__1551765686072_588 px {paddingBottom}.QIHOO__WEB__SO__1551765686072_588 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686072_588
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686072_588
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686072_588
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686072_588
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686072_588
color: {titleFontColor};.QIHOO__WEB__SO__1551765686072_588
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686072_588 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686072_588 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686072_588 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551765686072_588
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686072_588
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551765686072_588
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686072_588
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686072_588
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686072_588 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow{.QIHOO__WEB__SO__1551765686072_588
padding: {paddingTop}.QIHOO__WEB__SO__1551765686072_588 px {paddingRight}.QIHOO__WEB__SO__1551765686072_588 px {paddingBottom}.QIHOO__WEB__SO__1551765686072_588 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686072_588
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686072_588
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686072_588
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686072_588
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686072_588
color: {titleFontColor};.QIHOO__WEB__SO__1551765686072_588
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686072_588 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686072_588 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686072_588 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551765686072_588
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686072_588
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551765686072_588
height:{imgH}px;.QIHOO__WEB__SO__1551765686072_588
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551765686072_588
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686072_588
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686072_588 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage{.QIHOO__WEB__SO__1551765686072_588
padding: {paddingTop}.QIHOO__WEB__SO__1551765686072_588 px {paddingRight}.QIHOO__WEB__SO__1551765686072_588 px {paddingBottom}.QIHOO__WEB__SO__1551765686072_588 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686072_588
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551765686072_588
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686072_588
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686072_588
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686072_588
color: {titleFontColor};.QIHOO__WEB__SO__1551765686072_588
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686072_588 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686072_588 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686072_588 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551765686072_588
color:{hoverColor};
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551765686072_588
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686072_588
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686072_588
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551765686175_883 info-div{display:block}.QIHOO__WEB__SO__1551765686175_883
.singleImage{
background-color:#fff;
padding: 10px 0px 0px 0px;
overflow: hidden;
width: 900px;
height: 74px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .wrap{
position:relative;
width: 900px;
height: 74px;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-body{
width: 810px;
height: 74px;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686175_883
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551765686175_883 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage{.QIHOO__WEB__SO__1551765686175_883
padding: {paddingTop}.QIHOO__WEB__SO__1551765686175_883 px {paddingRight}.QIHOO__WEB__SO__1551765686175_883 px {paddingBottom}.QIHOO__WEB__SO__1551765686175_883 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686175_883
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686175_883
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686175_883
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686175_883
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686175_883
color: {titleFontColor};.QIHOO__WEB__SO__1551765686175_883
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686175_883 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686175_883 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686175_883 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551765686175_883
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686175_883
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551765686175_883
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686175_883
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686175_883
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686175_883 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow{.QIHOO__WEB__SO__1551765686175_883
padding: {paddingTop}.QIHOO__WEB__SO__1551765686175_883 px {paddingRight}.QIHOO__WEB__SO__1551765686175_883 px {paddingBottom}.QIHOO__WEB__SO__1551765686175_883 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686175_883
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686175_883
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686175_883
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686175_883
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686175_883
color: {titleFontColor};.QIHOO__WEB__SO__1551765686175_883
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686175_883 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686175_883 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686175_883 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551765686175_883
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686175_883
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551765686175_883
height:{imgH}px;.QIHOO__WEB__SO__1551765686175_883
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551765686175_883
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686175_883
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686175_883 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage{.QIHOO__WEB__SO__1551765686175_883
padding: {paddingTop}.QIHOO__WEB__SO__1551765686175_883 px {paddingRight}.QIHOO__WEB__SO__1551765686175_883 px {paddingBottom}.QIHOO__WEB__SO__1551765686175_883 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686175_883
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551765686175_883
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686175_883
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686175_883
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686175_883
color: {titleFontColor};.QIHOO__WEB__SO__1551765686175_883
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686175_883 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686175_883 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686175_883 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551765686175_883
color:{hoverColor};
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551765686175_883
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686175_883
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686175_883
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551765686266_794 info-div{display:block}.QIHOO__WEB__SO__1551765686266_794
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686266_794
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551765686266_794 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage{.QIHOO__WEB__SO__1551765686266_794
padding: {paddingTop}.QIHOO__WEB__SO__1551765686266_794 px {paddingRight}.QIHOO__WEB__SO__1551765686266_794 px {paddingBottom}.QIHOO__WEB__SO__1551765686266_794 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686266_794
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686266_794
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686266_794
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686266_794
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686266_794
color: {titleFontColor};.QIHOO__WEB__SO__1551765686266_794
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686266_794 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686266_794 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686266_794 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551765686266_794
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686266_794
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551765686266_794
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686266_794
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686266_794
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686266_794 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow{.QIHOO__WEB__SO__1551765686266_794
padding: {paddingTop}.QIHOO__WEB__SO__1551765686266_794 px {paddingRight}.QIHOO__WEB__SO__1551765686266_794 px {paddingBottom}.QIHOO__WEB__SO__1551765686266_794 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686266_794
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686266_794
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686266_794
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686266_794
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686266_794
color: {titleFontColor};.QIHOO__WEB__SO__1551765686266_794
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686266_794 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686266_794 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686266_794 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551765686266_794
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686266_794
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551765686266_794
height:{imgH}px;.QIHOO__WEB__SO__1551765686266_794
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551765686266_794
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686266_794
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686266_794 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage{.QIHOO__WEB__SO__1551765686266_794
padding: {paddingTop}.QIHOO__WEB__SO__1551765686266_794 px {paddingRight}.QIHOO__WEB__SO__1551765686266_794 px {paddingBottom}.QIHOO__WEB__SO__1551765686266_794 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686266_794
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551765686266_794
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686266_794
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686266_794
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686266_794
color: {titleFontColor};.QIHOO__WEB__SO__1551765686266_794
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686266_794 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686266_794 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686266_794 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551765686266_794
color:{hoverColor};
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551765686266_794
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686266_794
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686266_794
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551765686351_645 info-div{display:block}.QIHOO__WEB__SO__1551765686351_645
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686351_645
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551765686351_645 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage{.QIHOO__WEB__SO__1551765686351_645
padding: {paddingTop}.QIHOO__WEB__SO__1551765686351_645 px {paddingRight}.QIHOO__WEB__SO__1551765686351_645 px {paddingBottom}.QIHOO__WEB__SO__1551765686351_645 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686351_645
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686351_645
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686351_645
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686351_645
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686351_645
color: {titleFontColor};.QIHOO__WEB__SO__1551765686351_645
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686351_645 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686351_645 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686351_645 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551765686351_645
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686351_645
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551765686351_645
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686351_645
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686351_645
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686351_645 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow{.QIHOO__WEB__SO__1551765686351_645
padding: {paddingTop}.QIHOO__WEB__SO__1551765686351_645 px {paddingRight}.QIHOO__WEB__SO__1551765686351_645 px {paddingBottom}.QIHOO__WEB__SO__1551765686351_645 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686351_645
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686351_645
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686351_645
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686351_645
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686351_645
color: {titleFontColor};.QIHOO__WEB__SO__1551765686351_645
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686351_645 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686351_645 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686351_645 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551765686351_645
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686351_645
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551765686351_645
height:{imgH}px;.QIHOO__WEB__SO__1551765686351_645
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551765686351_645
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686351_645
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686351_645 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage{.QIHOO__WEB__SO__1551765686351_645
padding: {paddingTop}.QIHOO__WEB__SO__1551765686351_645 px {paddingRight}.QIHOO__WEB__SO__1551765686351_645 px {paddingBottom}.QIHOO__WEB__SO__1551765686351_645 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686351_645
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551765686351_645
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686351_645
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686351_645
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686351_645
color: {titleFontColor};.QIHOO__WEB__SO__1551765686351_645
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686351_645 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686351_645 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686351_645 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551765686351_645
color:{hoverColor};
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551765686351_645
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686351_645
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686351_645
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551765686488_844 info-div{display:block}.QIHOO__WEB__SO__1551765686488_844
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686488_844
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551765686488_844 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage{.QIHOO__WEB__SO__1551765686488_844
padding: {paddingTop}.QIHOO__WEB__SO__1551765686488_844 px {paddingRight}.QIHOO__WEB__SO__1551765686488_844 px {paddingBottom}.QIHOO__WEB__SO__1551765686488_844 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686488_844
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686488_844
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686488_844
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686488_844
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686488_844
color: {titleFontColor};.QIHOO__WEB__SO__1551765686488_844
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686488_844 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686488_844 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686488_844 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551765686488_844
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686488_844
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551765686488_844
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686488_844
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686488_844
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686488_844 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow{.QIHOO__WEB__SO__1551765686488_844
padding: {paddingTop}.QIHOO__WEB__SO__1551765686488_844 px {paddingRight}.QIHOO__WEB__SO__1551765686488_844 px {paddingBottom}.QIHOO__WEB__SO__1551765686488_844 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686488_844
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686488_844
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686488_844
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686488_844
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686488_844
color: {titleFontColor};.QIHOO__WEB__SO__1551765686488_844
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686488_844 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686488_844 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686488_844 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551765686488_844
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686488_844
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551765686488_844
height:{imgH}px;.QIHOO__WEB__SO__1551765686488_844
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551765686488_844
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686488_844
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686488_844 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage{.QIHOO__WEB__SO__1551765686488_844
padding: {paddingTop}.QIHOO__WEB__SO__1551765686488_844 px {paddingRight}.QIHOO__WEB__SO__1551765686488_844 px {paddingBottom}.QIHOO__WEB__SO__1551765686488_844 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686488_844
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551765686488_844
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686488_844
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686488_844
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686488_844
color: {titleFontColor};.QIHOO__WEB__SO__1551765686488_844
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686488_844 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686488_844 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686488_844 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551765686488_844
color:{hoverColor};
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551765686488_844
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686488_844
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686488_844
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551765686543_629 info-div{display:block}.QIHOO__WEB__SO__1551765686543_629
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686543_629
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551765686543_629 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage{.QIHOO__WEB__SO__1551765686543_629
padding: {paddingTop}.QIHOO__WEB__SO__1551765686543_629 px {paddingRight}.QIHOO__WEB__SO__1551765686543_629 px {paddingBottom}.QIHOO__WEB__SO__1551765686543_629 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686543_629
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686543_629
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686543_629
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686543_629
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686543_629
color: {titleFontColor};.QIHOO__WEB__SO__1551765686543_629
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686543_629 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686543_629 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686543_629 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551765686543_629
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686543_629
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551765686543_629
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686543_629
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686543_629
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686543_629 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow{.QIHOO__WEB__SO__1551765686543_629
padding: {paddingTop}.QIHOO__WEB__SO__1551765686543_629 px {paddingRight}.QIHOO__WEB__SO__1551765686543_629 px {paddingBottom}.QIHOO__WEB__SO__1551765686543_629 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686543_629
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686543_629
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686543_629
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686543_629
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686543_629
color: {titleFontColor};.QIHOO__WEB__SO__1551765686543_629
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686543_629 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686543_629 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686543_629 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551765686543_629
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686543_629
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551765686543_629
height:{imgH}px;.QIHOO__WEB__SO__1551765686543_629
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551765686543_629
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686543_629
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686543_629 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage{.QIHOO__WEB__SO__1551765686543_629
padding: {paddingTop}.QIHOO__WEB__SO__1551765686543_629 px {paddingRight}.QIHOO__WEB__SO__1551765686543_629 px {paddingBottom}.QIHOO__WEB__SO__1551765686543_629 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686543_629
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551765686543_629
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686543_629
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686543_629
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686543_629
color: {titleFontColor};.QIHOO__WEB__SO__1551765686543_629
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686543_629 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686543_629 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686543_629 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551765686543_629
color:{hoverColor};
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551765686543_629
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686543_629
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686543_629
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551765686555_448 info-div{display:block}.QIHOO__WEB__SO__1551765686555_448
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686555_448
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551765686555_448 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage{.QIHOO__WEB__SO__1551765686555_448
padding: {paddingTop}.QIHOO__WEB__SO__1551765686555_448 px {paddingRight}.QIHOO__WEB__SO__1551765686555_448 px {paddingBottom}.QIHOO__WEB__SO__1551765686555_448 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686555_448
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686555_448
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686555_448
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686555_448
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686555_448
color: {titleFontColor};.QIHOO__WEB__SO__1551765686555_448
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686555_448 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686555_448 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686555_448 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551765686555_448
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686555_448
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551765686555_448
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686555_448
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686555_448
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686555_448 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow{.QIHOO__WEB__SO__1551765686555_448
padding: {paddingTop}.QIHOO__WEB__SO__1551765686555_448 px {paddingRight}.QIHOO__WEB__SO__1551765686555_448 px {paddingBottom}.QIHOO__WEB__SO__1551765686555_448 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686555_448
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551765686555_448
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686555_448
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686555_448
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686555_448
color: {titleFontColor};.QIHOO__WEB__SO__1551765686555_448
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686555_448 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686555_448 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686555_448 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551765686555_448
color: {hoverColor};
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551765686555_448
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551765686555_448
height:{imgH}px;.QIHOO__WEB__SO__1551765686555_448
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551765686555_448
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686555_448
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686555_448 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage{.QIHOO__WEB__SO__1551765686555_448
padding: {paddingTop}.QIHOO__WEB__SO__1551765686555_448 px {paddingRight}.QIHOO__WEB__SO__1551765686555_448 px {paddingBottom}.QIHOO__WEB__SO__1551765686555_448 px {paddingLeft}px;.QIHOO__WEB__SO__1551765686555_448
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551765686555_448
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551765686555_448
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551765686555_448
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551765686555_448
color: {titleFontColor};.QIHOO__WEB__SO__1551765686555_448
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551765686555_448 px {titlePaddingRight}.QIHOO__WEB__SO__1551765686555_448 px {titlePaddingBottom}.QIHOO__WEB__SO__1551765686555_448 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551765686555_448
color:{hoverColor};
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551765686555_448
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551765686555_448
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551765686555_448
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}</style><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/share.js"></script><link rel="stylesheet" type="text/css" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/goTop.css"><style type="text/css">pre{position: relative}pre:hover .hljs-button{display: block}.hljs-button{display: none;position: absolute;right: 4px;top: 4px;font-size: 12px;color: #4d4d4d;background-color: white;padding: 2px 8px;margin: 8px;border-radius: 4px;cursor: pointer; box-shadow: 0 2px 4px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.05);}.hljs-button:after{content: attr(data-title)}</style><style type="text/css">.hljs-ln{border-collapse:collapse} .hljs-ln td{padding:0} .hljs-ln-n{text-align: right;padding-right: 8px;} .hljs-ln-n:before{content:attr(data-line-number)}</style><script charset="UTF-8" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/bwordcom"></script><script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/check-adb.js"></script><script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/baidu_opensug-1.js"></script><link rel="stylesheet" type="text/css" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/check-adb.css"><script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/fuckadblock.js"></script><style type="text/css">.MathJax_Hover_Frame {border-radius: .25em; -webkit-border-radius: .25em; -moz-border-radius: .25em; -khtml-border-radius: .25em; box-shadow: 0px 0px 15px #83A; -webkit-box-shadow: 0px 0px 15px #83A; -moz-box-shadow: 0px 0px 15px #83A; -khtml-box-shadow: 0px 0px 15px #83A; border: 1px solid #A6D ! important; display: inline-block; position: absolute}
.MathJax_Menu_Button .MathJax_Hover_Arrow {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; -khtml-border-radius: 4px; font-family: 'Courier New',Courier; font-size: 9px; color: #F0F0F0}
.MathJax_Menu_Button .MathJax_Hover_Arrow span {display: block; background-color: #AAA; border: 1px solid; border-radius: 3px; line-height: 0; padding: 4px}
.MathJax_Hover_Arrow:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_Hover_Arrow:hover span {background-color: #CCC!important}
</style><style type="text/css">#MathJax_About {position: fixed; left: 50%; width: auto; text-align: center; border: 3px outset; padding: 1em 2em; background-color: #DDDDDD; color: black; cursor: default; font-family: message-box; font-size: 120%; font-style: normal; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 15px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -khtml-border-radius: 15px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_About.MathJax_MousePost {outline: none}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding: 2px; border: 1px solid #CCCCCC; margin: 0; cursor: default; font: menu; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding: 2px 2em; background: transparent}
.MathJax_MenuArrow {position: absolute; right: .5em; padding-top: .25em; color: #666666; font-size: .75em}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuArrow.RTL {left: .5em; right: auto}
.MathJax_MenuCheck {position: absolute; left: .7em}
.MathJax_MenuCheck.RTL {right: .7em; left: auto}
.MathJax_MenuRadioCheck {position: absolute; left: 1em}
.MathJax_MenuRadioCheck.RTL {right: 1em; left: auto}
.MathJax_MenuLabel {padding: 2px 2em 4px 1.33em; font-style: italic}
.MathJax_MenuRule {border-top: 1px solid #CCCCCC; margin: 4px 1px 0px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color: Highlight; color: HighlightText}
.MathJax_MenuDisabled:focus, .MathJax_MenuLabel:focus {background-color: #E8E8E8}
.MathJax_ContextMenu:focus {outline: none}
.MathJax_ContextMenu .MathJax_MenuItem:focus {outline: none}
#MathJax_AboutClose {top: .2em; right: .2em}
.MathJax_Menu .MathJax_MenuClose {top: -10px; left: -10px}
.MathJax_MenuClose {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; font-family: 'Courier New',Courier; font-size: 24px; color: #F0F0F0}
.MathJax_MenuClose span {display: block; background-color: #AAA; border: 1.5px solid; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; line-height: 0; padding: 8px 0 6px}
.MathJax_MenuClose:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_MenuClose:hover span {background-color: #CCC!important}
.MathJax_MenuClose:hover:focus {outline: none}
</style><style type="text/css">.MathJax_Preview .MJXf-math {color: inherit!important}
</style><style type="text/css">.MJX_Assistive_MathML {position: absolute!important; top: 0; left: 0; clip: rect(1px, 1px, 1px, 1px); padding: 1px 0 0 0!important; border: 0!important; height: 1px!important; width: 1px!important; overflow: hidden!important; display: block!important; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none}
.MJX_Assistive_MathML.MJX_Assistive_MathML_Block {width: 100%!important}
</style><style type="text/css">#MathJax_Zoom {position: absolute; background-color: #F0F0F0; overflow: auto; display: block; z-index: 301; padding: .5em; border: 1px solid black; margin: 0; font-weight: normal; font-style: normal; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; box-shadow: 5px 5px 15px #AAAAAA; -webkit-box-shadow: 5px 5px 15px #AAAAAA; -moz-box-shadow: 5px 5px 15px #AAAAAA; -khtml-box-shadow: 5px 5px 15px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left: 0; top: 0; z-index: 300; display: inline-block; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
#MathJax_ZoomFrame {position: relative; display: inline-block; height: 0; width: 0}
#MathJax_ZoomEventTrap {position: absolute; left: 0; top: 0; z-index: 302; display: inline-block; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
</style><style type="text/css">.MathJax_Preview {color: #888}
#MathJax_Message {position: fixed; left: 1px; bottom: 2px; background-color: #E6E6E6; border: 1px solid #959595; margin: 0px; padding: 2px 8px; z-index: 102; color: black; font-size: 80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top: 0; left: 0; width: 0px; z-index: 101; border: 0px; margin: 0px; padding: 0px}
.MathJax_Error {color: #CC0000; font-style: italic}
</style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css">.MJXp-script {font-size: .8em}
.MJXp-right {-webkit-transform-origin: right; -moz-transform-origin: right; -ms-transform-origin: right; -o-transform-origin: right; transform-origin: right}
.MJXp-bold {font-weight: bold}
.MJXp-italic {font-style: italic}
.MJXp-scr {font-family: MathJax_Script,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-frak {font-family: MathJax_Fraktur,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-sf {font-family: MathJax_SansSerif,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-cal {font-family: MathJax_Caligraphic,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-mono {font-family: MathJax_Typewriter,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-largeop {font-size: 150%}
.MJXp-largeop.MJXp-int {vertical-align: -.2em}
.MJXp-math {display: inline-block; line-height: 1.2; text-indent: 0; font-family: 'Times New Roman',Times,STIXGeneral,serif; white-space: nowrap; border-collapse: collapse}
.MJXp-display {display: block; text-align: center; margin: 1em 0}
.MJXp-math span {display: inline-block}
.MJXp-box {display: block!important; text-align: center}
.MJXp-box:after {content: " "}
.MJXp-rule {display: block!important; margin-top: .1em}
.MJXp-char {display: block!important}
.MJXp-mo {margin: 0 .15em}
.MJXp-mfrac {margin: 0 .125em; vertical-align: .25em}
.MJXp-denom {display: inline-table!important; width: 100%}
.MJXp-denom > * {display: table-row!important}
.MJXp-surd {vertical-align: top}
.MJXp-surd > * {display: block!important}
.MJXp-script-box > * {display: table!important; height: 50%}
.MJXp-script-box > * > * {display: table-cell!important; vertical-align: top}
.MJXp-script-box > *:last-child > * {vertical-align: bottom}
.MJXp-script-box > * > * > * {display: block!important}
.MJXp-mphantom {visibility: hidden}
.MJXp-munderover {display: inline-table!important}
.MJXp-over {display: inline-block!important; text-align: center}
.MJXp-over > * {display: block!important}
.MJXp-munderover > * {display: table-row!important}
.MJXp-mtable {vertical-align: .25em; margin: 0 .125em}
.MJXp-mtable > * {display: inline-table!important; vertical-align: middle}
.MJXp-mtr {display: table-row!important}
.MJXp-mtd {display: table-cell!important; text-align: center; padding: .5em 0 0 .5em}
.MJXp-mtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-mlabeledtr {display: table-row!important}
.MJXp-mlabeledtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mlabeledtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 1px 3px; font-style: normal; font-size: 90%}
.MJXp-scale0 {-webkit-transform: scaleX(.0); -moz-transform: scaleX(.0); -ms-transform: scaleX(.0); -o-transform: scaleX(.0); transform: scaleX(.0)}
.MJXp-scale1 {-webkit-transform: scaleX(.1); -moz-transform: scaleX(.1); -ms-transform: scaleX(.1); -o-transform: scaleX(.1); transform: scaleX(.1)}
.MJXp-scale2 {-webkit-transform: scaleX(.2); -moz-transform: scaleX(.2); -ms-transform: scaleX(.2); -o-transform: scaleX(.2); transform: scaleX(.2)}
.MJXp-scale3 {-webkit-transform: scaleX(.3); -moz-transform: scaleX(.3); -ms-transform: scaleX(.3); -o-transform: scaleX(.3); transform: scaleX(.3)}
.MJXp-scale4 {-webkit-transform: scaleX(.4); -moz-transform: scaleX(.4); -ms-transform: scaleX(.4); -o-transform: scaleX(.4); transform: scaleX(.4)}
.MJXp-scale5 {-webkit-transform: scaleX(.5); -moz-transform: scaleX(.5); -ms-transform: scaleX(.5); -o-transform: scaleX(.5); transform: scaleX(.5)}
.MJXp-scale6 {-webkit-transform: scaleX(.6); -moz-transform: scaleX(.6); -ms-transform: scaleX(.6); -o-transform: scaleX(.6); transform: scaleX(.6)}
.MJXp-scale7 {-webkit-transform: scaleX(.7); -moz-transform: scaleX(.7); -ms-transform: scaleX(.7); -o-transform: scaleX(.7); transform: scaleX(.7)}
.MJXp-scale8 {-webkit-transform: scaleX(.8); -moz-transform: scaleX(.8); -ms-transform: scaleX(.8); -o-transform: scaleX(.8); transform: scaleX(.8)}
.MJXp-scale9 {-webkit-transform: scaleX(.9); -moz-transform: scaleX(.9); -ms-transform: scaleX(.9); -o-transform: scaleX(.9); transform: scaleX(.9)}
.MathJax_PHTML .noError {vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
</style><link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/share_style0_16.css"></head>
<!-- nodata 第三栏接口无数据时样式不变 -->
<body class="nodata "><div id="BAIDU_DUP_fp_wrapper" style="position: absolute; left: -1px; bottom: -1px; z-index: 0; width: 0px; height: 0px; overflow: hidden; visibility: hidden; display: none;"><iframe id="BAIDU_DUP_fp_iframe" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/o.htm" style="width: 0px; height: 0px; visibility: hidden; display: none;"></iframe></div><div id="MathJax_Message" style="display: none;"></div><svg aria-hidden="true" style="position: absolute; width: 0px; height: 0px; overflow: hidden;"><symbol id="csdnc-zhifubao" viewBox="0 0 1756 1024"><path d="M1002.928571 659.892857c-85.285714 102.392857-173.5 165-307.214286 165s-221.892857-82.5-210.5-182c5.714286-65.392857 51.214286-173.5 247.5-156.392857 102.392857 8.5 150.785714 28.392857 236.107143 56.892857 22.785714-39.785714 39.785714-85.285714 54-130.785714L647.321429 412.607143l0-37 184.892857 0L832.214286 310 607.5 310 607.5 267.285714l224.714286 0L832.214286 170.607143c0 0 2.785714-14.214286 19.892857-14.214286l93.892857 0 0 110.892857 238.892857 0 0 39.785714-241.785714 0L943.107143 372.5l196.285714 0c-17.107143 74-45.5 142.214286-79.607143 199.107143 48.392857 17.107143 244.607143 76.785714 301.5 93.892857L1361.285714 167.785714c0-79.607143-65.392857-142.214286-142.214286-142.214286L533.607143 25.571429c-79.714286 0-142.285714 65.392857-142.285714 142.214286l0 688.392857c0 79.607143 65.392857 142.214286 142.214286 142.214286l688.392857 0c79.607143 0 142.214286-65.392857 142.214286-142.214286l0-34.214286C1315.714286 799.285714 1099.607143 705.392857 1002.928571 659.892857zM525 634.285714c-8.5 37 14.214286 125.214286 156.392857 125.214286 85.285714 0 170.714286-54 238.892857-142.214286-96.714286-48.392857-176.392857-71.107143-267.392857-71.107143C573.321429 549 533.5 597.285714 525 634.285714z"></path></symbol><symbol id="csdnc-alevel-3" viewBox="0 0 3072 1024"><path d="M372.99884256 80.14660493h2375.19367285a107.96334877 107.96334877 0 0 1 107.96334876 107.96334877v647.7800926a107.96334877 107.96334877 0 0 1-107.96334876 107.96334877H372.99884256a107.96334877 107.96334877 0 0 1-107.96334877-107.96334877V188.1099537a107.96334877 107.96334877 0 0 1 107.96334877-107.96334877z" fill="#83B53A"></path><path d="M1938.46739967 134.12827933h809.72511574a53.98167438 53.98167438 0 0 1 53.98167437 53.98167437v647.7800926a53.98167438 53.98167438 0 0 1-53.98167437 53.98167437H1938.46739967V134.12827933z" fill="#2D5315"></path><path d="M2547.65059507 392.16068286v77.73361112c0 10.41846315-1.78139526 19.43340277-5.39816744 26.9908372 13.65736361 14.41310706 20.51303627 31.30937114 20.51303627 50.74277391v84.21141205c0 20.51303627-7.17956269 38.05708044-21.59266976 52.63213251s-31.84918789 21.86257812-52.36222415 21.86257812h-236.43973378c-20.51303627 0-38.05708044-7.28752604-52.63213254-21.86257812s-21.86257812-32.11909625-21.86257812-52.63213251v-23.21211998h70.71599345v23.21211998c0 2.5371387 1.24157852 3.7787172 3.77871721 3.7787172h236.43973378c2.15926698 0 3.23890047-1.24157852 3.23890047-3.7787172V547.62790509c0-2.5371387-1.07963349-3.7787172-3.23890047-3.7787172h-243.99716821V473.13319444h228.34248263c2.5371387 0 3.7787172-1.07963349 3.77871723-3.23890046V392.16068286c0-2.5371387-1.24157852-3.7787172-3.77871723-3.7787172h-220.7850482c-2.5371387 0-3.7787172 1.24157852-3.77871721 3.7787172v28.07047069h-70.71599345v-28.07047069c0-20.51303627 7.28752604-38.05708044 21.86257812-52.63213251s32.11909625-21.86257812 52.63213254-21.86257812h220.7850482c20.51303627 0 38.05708044 7.28752604 52.63213254 21.86257812s21.86257812 32.11909625 21.86257812 52.63213251zM563.44618978 790.49145814V378.98915433h70.06821335v411.50230381H563.44618978zM567.60277872 274.48063271l51.06666396-34.44030824c29.0961225 30.28371932 70.66201177 73.03720544 91.44495641 99.16433583l-54.62945449 38.59689718C637.07719365 351.67442708 596.6989012 306.5457473 567.60277872 274.48063271z m287.39843441 207.23564797H764.74385356v99.16433583h90.25735957V481.71628068z m68.28681809 162.10696816H764.74385356
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/content_toolbar.css">
<script id="toolbar-tpl-scriptId" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/content_toolbar.js" type="text/javascript" domain="https://blog.csdn.net/"></script><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/notify.js"></script><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/main.js"></script><script class="toolbar-s" type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/iconfont.js"></script>
<div id="kp_box_476" data-pid="476" data-track-click="{&quot;mod&quot;:&quot;kp_popu_476-845&quot;,&quot;con&quot;:&quot;,,&quot;}"><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/indexSuperise.js"></script>
<script>
window.csdn.indexSuperise({
smallMoveImg: '//img-ads.csdn.net/2019/201903011105473949.png',
bigMoveImg: '//img-ads.csdn.net/2019/201903011116302083.png',
link:'//edu.csdn.net/topic/ai30?utm_source=blogpopup',
boxStyle:140,
trackSuperId:476,
smallMove:'notMove',
trackSId:794
});
</script></div><link href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/indexSuperise.css" rel="stylesheet"><link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/blog_code-c3a0c33d5c.css">
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/paging.css">
<script type="text/javascript">
// 容错处理
var NEWS_FEED = function(){}
</script>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/copyright.js"></script>
<div style="display:none;">
<img src="" onerror='setTimeout(function(){if(!/(csdn.net|iteye.com|baiducontent.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baidu.com)$/.test(window.location.hostname)){window.location.href="\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x73\x64\x6e\x2e\x6e\x65\x74"}},3000);'>
</div>
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/chart-3456820cac.css">
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ds.js"></script>
<div class="container clearfix" id="mainBox">
<div class="recommend-right">
<ul class="recommend-fixed-box">
</ul>
</div>
<main>
<div class="blog-content-box">
<div class="article-header-box">
<div class="article-header">
<div class="article-title-box">
<span class="article-type type-1 float-left"></span> <h1 class="title-article">LibRTMP源代码分析1</h1>
</div>
<div class="article-info-box">
<div class="article-bar-top">
<span class="time">2015年09月21日 11:47:29</span>
<a class="follow-nickName" href="https://me.csdn.net/wongainia158158" target="_blank">wongainia158158</a>
<span class="read-count">阅读数:440</span>
</div>
<div class="operating">
</div>
</div>
</div>
</div>
<article class="baidu_pl">
<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ck_htmledit_views-f57960eb32.css">
<div class="htmledit_views" id="content_views">
<p style="line-height:24px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="line-height:28px;"><span style="font-size:14pt;" xml:lang="en-us" lang="en-us">1.&nbsp;</span><span style="font-size:14pt;font-family:'宋体';">背景知识</span><span style="font-size:14pt;" xml:lang="en-us" lang="en-us"></span></span></p>
<p style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="font-family:'宋体';"><span style="line-height:33.25px;font-size:19px;"><strong>&nbsp; &nbsp;</strong></span></span><span style="font-size:14px;"><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP(Real Time Messaging
Protocol)</span><span style="line-height:24px;color:rgb(51,51,51);">实时消息传送协议是</span><span style="line-height:24px;" xml:lang="en-us" lang="en-us"><a href="http://baike.baidu.com/view/7578.htm" rel="nofollow" style="color:rgb(150,60,60);line-height:28px;text-decoration:none;" target="_blank"><span style="font-family:Arial, sans-serif;">Adobe</span></a></span><span style="line-height:24px;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">&nbsp;</span><span style="line-height:24px;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">S<span style="line-height:28px;color:rgb(51,51,51);">ystems</span></span><span style="line-height:24px;color:rgb(51,51,51);">公司为</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Flash</span><span style="line-height:24px;color:rgb(51,51,51);">播放器和<a href="https://www.baidu.com/s?wd=%E6%9C%8D%E5%8A%A1%E5%99%A8&amp;tn=24004469_oem_dg&amp;rsv_dl=gh_pl_sl_csd" target="_blank">服务器</a>之间音频、视频和数据传输开发的开放协议。</span><span style="line-height:24px;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="line-height:24px;">协议</span><span style="line-height:24px;">广泛用于直播、点播、聊天等应用,以及</span><span style="line-height:24px;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">pc</span><span style="line-height:24px;">、移动、嵌入式等平台,是做流媒体开发经常会接触到的协议。</span><span style="line-height:24px;color:rgb(51,51,51);">想要了解</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="line-height:24px;color:rgb(51,51,51);">,需要首先了解</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Flash</span><span style="line-height:24px;color:rgb(51,51,51);">流媒体系统。最简单的</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Flash</span><span style="line-height:24px;color:rgb(51,51,51);">流媒体系统由两部分组成:</span></span></p>
<span style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;"><strong><span style="color:#FF0000;font-family:'宋体';">&nbsp; &nbsp;</span><span style="color:#FF0000;font-family:Arial, sans-serif;">&nbsp;</span><span style="color:#FF0000;font-family:'宋体';"></span><span style="color:#FF0000;font-family:Arial, sans-serif;">&nbsp;</span><span style="color:#FF0000;font-family:'宋体';">端:</span></strong><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Flash
Player</span><span style="color:rgb(51,51,51);font-family:'宋体';">(一般只有这一种)</span></span>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="font-size:14px;"><strong><span style="color:#FF0000;font-family:'宋体';">&nbsp; &nbsp; 服务器端:</span></strong><span style="color:rgb(51,51,51);font-family:'宋体';">有很多知名的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">rtmp server</span><span style="color:rgb(51,51,51);font-family:'宋体';">,其中既有商业程序也有开源程序,简单列举如下:</span></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<strong><span style="line-height:24.5px;color:rgb(51,51,51);font-size:10.5pt;font-family:'宋体';">&nbsp; &nbsp; &nbsp; &nbsp; 开源项目</span></strong></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="font-family:'宋体';font-size:14px;color:#333333;">&nbsp; &nbsp; &nbsp;</span><img alt="LibRTMP源代码分析1:概述 - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3664522721896108900.jpg" style="border:0px;"></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
&nbsp;<span> </span><strong><span style="font-family:'宋体';">商业程序</span></strong><span style="font-family:'宋体';color:#333333;"><span style="line-height:24px;font-size:14px;"><span style="line-height:24.5px;">&nbsp;&nbsp;</span></span></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<img alt="LibRTMP源代码分析1:概述 - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/2080100077991870875.gif" style="border:0px;"></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span></span><span style="font-size:14px;"><span style="font-family:'宋体';">当然,还有一些其他的开源、商业</span><span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">rtmp</span><span style="font-family:'宋体';">服务器(如</span><span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">ffserver</span><span style="font-family:'宋体';">),我就不一一列举了</span>。一般来说,商业<span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">rtmp</span><span style="font-family:'宋体';">程序要比开源程序支持更多的协议以及更多的平台,至于哪个更好,这</span><span style="font-family:'宋体';">就不好说了。</span><span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="font-family:'宋体';">服务器的功能比较复杂,要完整实现比较困难,如果你需要的是一个完整功能的</span><span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">rtmp
server</span><span style="font-family:'宋体';">,那就可以从它们之中选择一个,如果你的需求只是一个</span><strong><span style="font-weight:normal;font-family:'宋体';">简单的、输出</span><span style="font-weight:normal;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">H.264</span><span style="font-weight:normal;font-family:'宋体';"></span><span style="font-weight:normal;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">AAC</span><span style="font-weight:normal;font-family:'宋体';">直播流的</span><span style="font-weight:normal;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">rtmp
server</span></strong><span style="font-family:'宋体';">,那就需要自己来设计和实现。</span></span><span style="line-height:24.5px;font-size:10.5pt;font-family:'宋体';"><br></span>&nbsp;</div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<p style="line-height:24px;">
<span style="line-height:28px;"><span style="font-size:14pt;" xml:lang="en-us" lang="en-us">2. libRTMP</span><span style="font-size:14pt;font-family:'宋体';">源代码分析</span><span style="font-size:14pt;" xml:lang="en-us" lang="en-us"></span></span></p>
<p style="line-height:24px;">
<span style="line-height:28px;"><span style="font-size:14pt;font-family:'宋体';">&nbsp; &nbsp;</span></span><span style="color:rgb(51,51,51);font-family:'宋体';">学习</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">libRTMP</span><span style="color:rgb(51,51,51);font-family:'宋体';">源代码之前需要有一定的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Socket</span><span style="color:rgb(51,51,51);font-family:'宋体';">编程的基础。</span><span style="color:rgb(51,51,51);font-family:'宋体';">首先需要学习《</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="color:rgb(51,51,51);font-family:'宋体';">协议规范》,</span></p>
<p style="line-height:24px;">
<span style="color:rgb(51,51,51);font-family:'宋体';">中文版下载地址:</span><span style="line-height:28px;" xml:lang="en-us" lang="en-us"><a href="http://download.csdn.net/detail/leixiaohua1020/6563059" rel="nofollow" style="color:rgb(150,60,60);text-decoration:none;" target="_blank"><span style="line-height:24px;font-family:Arial, sans-serif;"><span style="color:#3366ff;line-height:28px;">http://download.csdn.net/detail/leixiaohua1020/6563059</span></span></a></span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us"></span></p>
<p style="line-height:24px;">
<span style="color:rgb(51,51,51);font-family:'宋体';"><a href="https://www.baidu.com/s?wd=%E8%8B%B1%E6%96%87%E7%89%88&amp;tn=24004469_oem_dg&amp;rsv_dl=gh_pl_sl_csd" target="_blank">英文版</a>下载地址:</span><span style="line-height:28px;" xml:lang="en-us" lang="en-us"><span style="line-height:24px;font-family:Arial, sans-serif;"><a href="http://www.adobe.com/cn/devnet/rtmp.html" rel="nofollow" style="color:rgb(150,60,60);line-height:28px;text-decoration:none;" target="_blank"><span style="color:#3366ff;">http://www.adobe.com/cn/devnet/rtmp.html</span></a></span></span></p>
<p style="line-height:24px;">
<span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us"><span style="font-size:14px;color:#ff0000;line-height:28px;"><strong>2.1 RTMP流媒体播放过程&nbsp;</strong></span><span style="color:#333333;line-height:28px;">&nbsp; &nbsp; &nbsp;&nbsp;</span></span></p>
<p style="line-height:24px;">
<span style="font-family:'宋体';">&nbsp; &nbsp; 我们必须了解</span><span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">rtmp</span><span style="font-family:'宋体';">服务器和</span><span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">flash</span><span style="font-family:'宋体';">播放器客户端之间是怎样的一个交互流程。通过阅读</span><span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="font-family:'宋体';">协议就可以了解,这里把它归纳总结如下:</span><span style="font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us"></span></p>
<div style="text-align:center;"><img alt="LibRTMP源代码分析1:概述 - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/1827617023882644153.gif" style="border:0px;"></div>
<div><span></span></div>
<div><span style="line-height:26px;color:rgb(51,51,51);font-family:Arial;"><span style="line-height:24.5px;font-size:14px;"></span><span style="font-size:14px;line-height:28px;">播放一个RTMP协议的流媒体需要经过以下几个步骤:握手,建立连接,建立流,播放。RTMP连接都是以握手作为开始的。建立连接阶段用于建立客户端与服务器之间的“网络连接”;建立流阶段用于建立客户端与服务器之间的“网络流”;播放阶段用于传输视音频数据。</span></span></div>
<div><span style="line-height:26px;color:rgb(51,51,51);font-family:Arial;"><span style="font-size:14px;line-height:28px;"><br></span></span></div>
<div><span style="font-size:14px;">&nbsp;<strong><span style="color:#0000ff;">2.1.1 握手(HandShake)</span></strong></span></div>
<div><span style="font-size:14px;">&nbsp; &nbsp; &nbsp; &nbsp;一个RTMP连接以握手开始,双方分别发送大小固定的三个数据块</span></div>
<div><span style="font-size:14px;"><span></span>&nbsp; &nbsp; &nbsp;a) &nbsp;握手开始于客户端发送C0、C1块。服务器收到C0或C1后发送S0和S1。</span></div>
<div><span style="font-size:14px;"><span></span>&nbsp; &nbsp; &nbsp;b) &nbsp;当客户端收齐S0和S1后,开始发送C2。当服务器收齐C0和C1后,开始发送S2。</span></div>
<div><span style="font-size:14px;"><span></span>&nbsp; &nbsp; &nbsp;c) &nbsp;当客户端和服务器分别收到S2和C2后,握手完成。</span></div>
<div><span style="font-size:14px;">&nbsp; &nbsp; &nbsp; &nbsp;握手阶段所发送的三个固定大小数据块可用下图简单表示:</span></div>
<div>
<div style="text-align:center;"><img alt="LibRTMP源代码分析1:概述 - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/6597389724542451948.gif" style="border:0px;"></div>
&nbsp;</div>
<div><span></span>客户端握手代码可参见rtmp.c文件中函数 :<span style="color:#ff6600;">static int &nbsp;HandShake(RTMP *r, int FP9HandShake)</span></div>
<div><span></span>服务端握手代码可参见rtmp.c文件中函数 :<span style="color:#ff6600;">static int SHandShake(RTMP *r, int FP9HandShake)</span></div>
<div><br></div>
<div>
<div><strong><span style="color:#0000ff;">2.1.2 建立网络连接(NetConnection)</span></strong></div>
<div><span></span>a) &nbsp;客户端发送命令消息中的“连接”(connect)到服务器,请求与一个服务应用实例建立连接。&nbsp;</div>
<div><span></span>&nbsp; &nbsp; &nbsp;代码可参见rtmp.c文件中函数 :<span style="color:#ff6600;">static int SendConnectPacket(RTMP *r, RTMPPacket *cp)</span></div>
<div><span></span>b) &nbsp;服务器接收到连接命令消息后,发送确认窗口大小(Window Acknowledgement Size)协议消息到客户端,同时连接到连接命令中提到的应用程序。&nbsp;</div>
<div><span></span>&nbsp; &nbsp; &nbsp;代码可参见rtmp.c文件中函数 :<span style="color:#ff6600;">int RTMP_SendServerBW(RTMP *r)</span></div>
<div><span></span>c) &nbsp;服务器发送设置带宽()协议消息到客户端。&nbsp;</div>
<div><span></span>d) &nbsp;客户端处理设置带宽协议消息后,发送确认窗口大小(Window Acknowledgement Size)协议消息到服务器端。&nbsp;</div>
<div><span></span>&nbsp; &nbsp; &nbsp;代码可参见rtmp.c文件中函数 :<span style="color:#ff6600;">int&nbsp;RTMP_SendClientBW(RTMP *r)</span></div>
<div><span></span>e) &nbsp;服务器发送用户控制消息中的“流开始”(Stream Begin)消息到客户端。</div>
<div><span></span>f) &nbsp; 服务器发送命令消息中的“结果”(_result),通知客户端连接的状态</div>
</div>
<div><span></span>&nbsp; &nbsp; 代码可参见rtmp.c文件中函数 :<span style="color:#ff6600;">static int SendCheckBWResult(RTMP *r, double txn)</span></div>
<div><br></div>
<div>
<div><strong><span style="color:#0000ff;">&nbsp;2.1.3 建立网络流(NetStream)</span></strong></div>
<div><span></span>a) &nbsp;客户端发送命令消息中的“创建流”(createStream)命令到服务器端。&nbsp;</div>
<div><span></span>&nbsp; &nbsp; &nbsp;&nbsp;代码可参见rtmp.c文件中函数 :<span style="color:#ff6600;">int RTMP_SendCreateStream(RTMP *r)</span></div>
<div><span></span>b) &nbsp;服务器端接收到“创建流”命令后,发送命令消息中的“结果”(_result),通知客户端流的状态。</div>
<div><span></span>&nbsp; &nbsp; &nbsp;创建一个流的代码可参见rtmp.c文件中函数 :<span style="color:#ff6600;">int RTMP_ConnectStream(RTMP *r, int seekTime)</span></div>
</div>
<div><br></div>
<div><span style="font-size:14px;color:#0000ff;"><strong>2.1.4 播放(Play)</strong></span></div>
<div><span style="font-size:14px;"><span></span>a) &nbsp;客户端发送命令消息中的“播放”(play)命令到服务器。</span></div>
<div><span style="font-size:14px;"><span></span>&nbsp; &nbsp; &nbsp;发送play命令的代码可</span>参见rtmp.c文件中函数 :<span style="color:#ff6600;">static int SendPlay(RTMP *r)</span></div>
<div><span style="font-size:14px;"><span></span>b) &nbsp;接收到播放命令后,服务器发送设置块大小(ChunkSize)协议消息。&nbsp;</span></div>
<div><span style="font-size:14px;"><span></span>&nbsp; &nbsp; &nbsp;代码可参见函数</span>&nbsp;<span style="font-size:14px;"><span style="color:#ff6600;">&nbsp;static void HandleChangeChunkSize(RTMP *r, const RTMPPacket *packet)</span></span></div>
<div><span style="font-size:14px;"><span></span>c) &nbsp;服务器发送用户控制消息中的“streambegin”,告知客户端流ID。&nbsp;</span></div>
<div><span style="font-size:14px;"><span></span>d) &nbsp;播放命令成功的话,服务器发送命令消息中的“响应状态” NetStream.Play.Start &amp; NetStream.Play.reset,告知客户端“播放”命令执行成功。&nbsp;</span></div>
<div><span style="font-size:14px;"><span></span>e) &nbsp;在此之后服务器发送客户端要播放的音频和视频数据。</span></div>
<div><br></div>
<p style="line-height:24px;">
&nbsp;<span style="font-size:14px;line-height:28px;"><strong><span style="line-height:24px;color:#FF0000;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">2.2 RTMP</span><span style="line-height:24px;color:#FF0000;font-family:'宋体';">协议简单分析</span></strong></span></p>
<p style="line-height:24px;">
<span style="font-size:14px;line-height:28px;"><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RTMP</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">协议是一个互联网</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">TCP/IP</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">五层体系结构中应用层的协议。</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">协议中基本的数据单元称为消息(</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Message</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">)。当</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">协议在互联网中传输数据的时候,消息会被拆分成更小的单元,称为消息块(</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Chunk</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">)。</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us"></span></span></p>
<p style="line-height:24px;">
<span style="font-size:14px;line-height:28px;"><strong><span style="line-height:24px;color:#0000FF;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">&nbsp;2.2.1&nbsp;<span style="line-height:28px;">&nbsp;</span></span><span style="line-height:24px;color:#0000FF;font-family:'宋体';">消息</span><span style="line-height:24px;color:#0000FF;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us"></span></strong></span></p>
<span style="font-size:14px;"><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">&nbsp;&nbsp;</span><span style="color:rgb(51,51,51);font-family:'宋体';">消息是</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="color:rgb(51,51,51);font-family:'宋体';">协议中基本的数据单元。不同种类的消息包含不同的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Message
Type ID</span><span style="color:rgb(51,51,51);font-family:'宋体';">,代表不同的功能。</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="color:rgb(51,51,51);font-family:'宋体';">协议中一共规定了十多种消息类型,分别发挥着不同的作用。例如,</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Message
Type ID</span><span style="color:rgb(51,51,51);font-family:'宋体';"></span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">1-7</span><span style="color:rgb(51,51,51);font-family:'宋体';">的消息用于协议控制,这些消息一般是</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="color:rgb(51,51,51);font-family:'宋体';">协议自身管理要使用的消息,用户一般情况下无需操作其中的数据。</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Message
Type ID</span><span style="color:rgb(51,51,51);font-family:'宋体';"></span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">8</span><span style="color:rgb(51,51,51);font-family:'宋体';"></span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">9</span><span style="color:rgb(51,51,51);font-family:'宋体';">的消息分别用于传输音频和视频数据。</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Message
Type ID</span><span style="color:rgb(51,51,51);font-family:'宋体';"></span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">15-20</span><span style="color:rgb(51,51,51);font-family:'宋体';">的消息用于发送</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">AMF</span><span style="color:rgb(51,51,51);font-family:'宋体';">编码的命令,负责用户与服务器之间的交互,比如播放,暂停等等。消息首部(</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Message
Header</span><span style="color:rgb(51,51,51);font-family:'宋体';">)有四部分组成:标志消息类型的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Message Type ID</span><span style="color:rgb(51,51,51);font-family:'宋体';">,标志消息长度的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Payload
Length</span><span style="color:rgb(51,51,51);font-family:'宋体';">,标识时间戳的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Timestamp</span><span style="color:rgb(51,51,51);font-family:'宋体';">,标识消息所属媒体流的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Stream
ID</span><span style="color:rgb(51,51,51);font-family:'宋体';">。消息的报文结构如下图所示:</span></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<div style="text-align:center;"><img alt="LibRTMP源代码分析1:概述 - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/1156299204427613961.gif" style="border:0px;"></div>
&nbsp;</div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="font-size:14px;"><strong><span style="line-height:24px;color:#0000FF;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">2.2.2 &nbsp;</span><span style="line-height:24px;color:#0000FF;font-family:'宋体';">消息块</span></strong></span></div>
<span style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;"><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:rgb(51,51,51);font-family:'宋体';">在网络上传输数据时,消息需要被拆分成较小的数据块,才适合在相应的网络环境上传输。</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="color:rgb(51,51,51);font-family:'宋体';">协议中规定,消息在网络上传输时被拆分成消息块(</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Chunk</span><span style="color:rgb(51,51,51);font-family:'宋体';">)。消息块首部(</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Chunk
Header</span><span style="color:rgb(51,51,51);font-family:'宋体';">)有三部分组成:用于标识本块的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Chunk Basic Header</span><span style="color:rgb(51,51,51);font-family:'宋体';">,用于标识本块负载所属消息的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Chunk
Message Header</span><span style="color:rgb(51,51,51);font-family:'宋体';">,以及当时间戳溢出时才出现的</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Extended Timestamp</span><span style="color:rgb(51,51,51);font-family:'宋体';">。消息块的报文结构如下图所示:</span></span>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<div style="text-align:center;"><img alt="LibRTMP源代码分析1:概述 - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/1340665314172939001.gif" style="border:0px;"></div>
&nbsp;</div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<p style="line-height:24px;">
<span style="font-size:14px;line-height:28px;"><strong><span style="line-height:24px;color:#0000FF;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">2.2.3 &nbsp;</span><span style="line-height:24px;color:#0000FF;font-family:'宋体';">消息分块</span><span style="line-height:24px;color:#0000FF;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us"></span></strong></span></p>
<span style="font-size:14px;"><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:rgb(51,51,51);font-family:'宋体';">在消息被分割成几个消息块的过程中,消息负载部分(</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Message
Body</span><span style="color:rgb(51,51,51);font-family:'宋体';">)被分割成大小固定的数据块(默认是</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">128</span><span style="color:rgb(51,51,51);font-family:'宋体';">字节,最后一个数据块可以小于该固定长度),并在其首部加上消息块首部(</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">Chunk
Header</span><span style="color:rgb(51,51,51);font-family:'宋体';">),就组成了相应的消息块。消息分块过程如图</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">5</span><span style="color:rgb(51,51,51);font-family:'宋体';">所示,一个大小为</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">307</span><span style="color:rgb(51,51,51);font-family:'宋体';">字节的消息被分割成</span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">128</span><span style="color:rgb(51,51,51);font-family:'宋体';">字节的消息块(除了最后一个)</span></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<div style="text-align:center;"><img alt="LibRTMP源代码分析1:概述 - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/6599286382098289591.gif" style="border:0px;"></div>
<div><br></div>
<span style="font-size:14px;"><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">RTMP</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">传输媒体数据的过程中,发送端首先把媒体数据封装成消息,然后把消息分割成消息块,最后将分割后的消息块通过</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">TCP</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">协议发送出去。接收端在通过</span><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">TCP</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">协议收到数据后,首先把消息块重新组合成消息,然后通过对消息进行解封装处理就可以恢复出媒体数据。</span></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';"><br style="line-height:28px;"></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<p style="line-height:24px;">
<span style="font-size:14px;line-height:28px;"><strong><span style="line-height:24px;color:#0000FF;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">2.2.4 &nbsp;</span><span style="line-height:24px;color:#0000FF;font-family:'宋体';">消息格式简单图解</span><span style="line-height:24px;color:#0000FF;font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us"></span></strong></span></p>
<p style="line-height:24px;">
<span style="font-size:14px;line-height:28px;"><span style="line-height:24px;color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="line-height:24px;color:rgb(51,51,51);font-family:'宋体';">总结以上三个图,消息格式大致可以用以下图描述:</span></span><span style="color:rgb(51,51,51);font-family:Arial, sans-serif;" xml:lang="en-us" lang="en-us"></span></p>
<div style="text-align:center;"><img alt="LibRTMP源代码分析1:概述 - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3249910081201552431.gif" style="border:0px;"></div>
</div>
</div>
</div>
</article>
</div>
<script>
(function(){
function collection(){
if (currentUserName) {
var markObj = {};
markObj.imgUrl ='https://csdnimg.cn/release/phoenix/static_blog/images/appqr.png';
var markPrompt = (new window.csdn.publicPrompt).init(markObj);
var maeked = '您已经收藏过';
if (!$(this).hasClass("liked")) {
$.ajax({
url: 'https://my.csdn.net/my/favorite/do_add/2',
dataType: 'json',
type: 'POST',
xhrFields: {
withCredentials: true
},
data: {
title: articleTit,
url: curentUrl,
share: 1,
map_name: ''
},
success: function(data) {
if (data.succ == 1) {
$('.btn-bookmark').addClass("liked");
$('.article-footer-bookmark-btn').addClass("liked").children('span').text('已收藏');
markPrompt.show({})
// alert('收藏成功,可以在个人中心查看我的收藏');
} else {
if (data.msg === "您已经收藏过") {
$('.btn-bookmark').addClass("liked");
$('.article-footer-bookmark-btn').addClass("liked").children('span').text('已收藏');
markPrompt.show({
titleStr: maeked
})
}else{
alert(data.msg);
}
}
}
});
} else {
markPrompt.show({
titleStr: maeked
})
}
} else {
window.csdn.loginBox.show();
}
}
window.csdn = window.csdn ? window.csdn : {};
window.csdn.articleCollection = collection;
function setArticleH(btnReadmore,posi){
var winH = $(window).height();
var articleBox = $("div.article_content");
var artH = articleBox.height();
if(artH > winH*posi){
articleBox.css({
'height':winH*posi+'px',
'overflow':'hidden'
})
btnReadmore.click(function(){
articleBox.removeAttr("style");
$(this).parent().remove()
})
}else{
btnReadmore.parent().remove()
}
}
var btnReadmore = $("#btn-readmore");
$('.article-footer-bookmark-btn').click(window.csdn.articleCollection)
if(btnReadmore.length>0){
if(currentUserName){
setArticleH(btnReadmore,3);
}else{
setArticleH(btnReadmore,1.2);
}
}else{
$('.hide-article-box').addClass('hide-article-style');
}
})()
</script>
<script>
$(".MathJax").remove();
if($('div.markdown_views pre.prettyprint code.hljs').length > 0 ){
$('div.markdown_views')[0].className = 'markdown_views';
}
</script>
<div id="dmp_ad_58"><div id="kp_box_58" data-pid="58" data-track-view="{&quot;mod&quot;:&quot;kp_popu_58-402&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_58-402&quot;,&quot;con&quot;:&quot;,,&quot;}"><div style="width:100%;background:#fff;border:3px solid #fff;">
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551765686072_588" id="QIHOO__WEB__SO__1551765686072_588" style="display:block;margin:0;padding:0;border:none;width:900px;height:100px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551765686072_588-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551765686072_588 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d206aca85&amp;price=AAAAAFx+ELQAAAAAAA2JJ/yGp4HIjKXVLFW/7w==&amp;finfo=DAABCAABAAACDwgAAgAAAGgEAAM/cbBaLto2FQAIAAIAAAADCgADdBoRYpYctu8IAAQAAAB6BgAGLbcKAAkAAAAAAAIQGAYACgAACgAPAAAAAABQdP0A&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FZy4mwIlAhUCFq7Mz47FkoSa6AEV8ggltcWR4QglABUaFAAA&amp;ubi=FaDbUBWG2sgCFc7CshcV/rncWBUEFRwWmq7tnRcWrszk9c7YiJroATQCFrDAECUGFfr9t/MCFfoFFQA29rmZt6mcmfXfAQA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=fQJLyIYw8c6=&amp;url=http%3A%2F%2Fvip666.qlloveyq.cn%2Fjr789" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b14d206aca85&amp;p=2321934&amp;l=1136674&amp;s=1&amp;ps=0&amp;k=2wEzpAAAAAA=&amp;i=9ixoa1EDZ9hJ&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/661200-5fa988c7d189b85cb66810bd21d39af5.jpg)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">27岁科技园妹子竟悟出股市投资铁律,暴赚成土豪</info-div>
<info-div class="singleImage-desc">之星 · 顶新</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script>
                                               NEWS_FEED({
                w: 900,
                h : 100,
                showid : 'ztvJV8',
                placeholderId: "three_ad1",
                inject : 'define',
                define : {
                    imagePosition : 'left',
                    imageBorderRadius : 0,
                    imageWidth: 90,
                    imageHeight: 68,
                    imageFill : 'clip',
                    displayImage : true,
                    displayTitle : true,
                    titleFontSize: 18,
                    titleFontColor: '#000',
                    titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
                    titleFontWeight: 'bold',
                    titlePaddingTop : 0,
                    titlePaddingRight : 0,
                    titlePaddingBottom : 5,
                    titlePaddingLeft : 16,
                    displayDesc : true,
                    descFontSize: 14,
                    descFontColor: '#8e959a',
                    descFontFamily : 'Microsoft YaHei',
                    paddingTop : 20,
                    paddingRight : 0,
                    paddingBottom : 0,
                    paddingLeft : 20,
                    backgroundColor: '#fff',
                    hoverColor: '#000'
                      }
                  })
                                        </script>
</div></div></div> <a id="commentBox"></a>
<div class="comment-box">
<div class="comment-edit-box d-flex">
<a id="commentsedit"></a>
<div class="user-img">
<a href="javascript:void(0);" target="_blank">
<img class="show_loginbox" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/anonymous-User-img.png">
</a>
</div>
<form id="commentform">
<input type="hidden" id="comment_replyId">
<textarea class="comment-content" name="comment_content" id="comment_content" placeholder="想对作者说点什么"></textarea>
<div class="opt-box"> <!-- d-flex -->
<div id="ubbtools" class="add_code">
<a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
</div>
<input type="hidden" id="comment_replyId" name="comment_replyId">
<input type="hidden" id="article_id" name="article_id" value="48624409">
<input type="hidden" id="comment_userId" name="comment_userId" value="">
<input type="hidden" id="commentId" name="commentId" value="">
<div style="display: none;" class="csdn-tracking-statistics tracking-click" data-mod="popu_384"><a href="#" target="_blank" class="comment_area_btn">发表评论</a></div>
<div class="dropdown" id="myDrap">
<a class="dropdown-face d-flex align-items-center" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<div class="txt-selected text-truncate">添加代码片</div>
<svg class="icon d-block" aria-hidden="true">
<use xlink:href="#csdnc-triangledown"></use>
</svg>
</a>
<ul class="dropdown-menu" id="commentCode" aria-labelledby="drop4">
<li><a data-code="html">HTML/XML</a></li>
<li><a data-code="objc">objective-c</a></li>
<li><a data-code="ruby">Ruby</a></li>
<li><a data-code="php">PHP</a></li>
<li><a data-code="csharp">C</a></li>
<li><a data-code="cpp">C++</a></li>
<li><a data-code="javascript">JavaScript</a></li>
<li><a data-code="python">Python</a></li>
<li><a data-code="java">Java</a></li>
<li><a data-code="css">CSS</a></li>
<li><a data-code="sql">SQL</a></li>
<li><a data-code="plain">其它</a></li>
</ul>
</div>
<div class="right-box">
<span id="tip_comment" class="tip">还能输入<em>1000</em>个字符</span>
<input type="submit" class="btn btn-sm btn-red btn-comment" value="发表评论">
</div>
</div>
</form>
</div>
<div class="comment-list-container">
<a id="comments"></a>
<div class="comment-list-box">
</div>
<div id="commentPage" class="pagination-box d-none"></div>
</div>
</div>
<div class="recommend-box">
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/42104945,BlogCommendFromBaidu_4,index_0&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/42104945,BlogCommendFromBaidu_4,index_0&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/42104945" target="_blank" title="最简单的基于librtmp的示例:发布(FLV通过RTMP发布)">
<h4 class="text-truncate oneline" style="width: 552px;">
最简单的基于<em>librtmp</em>的示例:发布(FLV通过RTMP发布) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">12-26</span>
<span class="read-num hover-hide">
阅读数
3</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/42104945" target="_blank" title="最简单的基于librtmp的示例:发布(FLV通过RTMP发布)">
<span class="desc oneline">本文记录一个基于libRTMP的发布流媒体的程序:SimplestlibRTMPSendFLV。该程序可以将本地FLV文件发布到RTMP流媒体服务器。是最简单的基于libRTMP的流媒体发布示例。...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/liulina603/article/details/51851950,BlogCommendFromBaidu_0,index_1&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/liulina603/article/details/51851950,BlogCommendFromBaidu_0,index_1&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/liulina603/article/details/51851950" target="_blank" title="win7下利用vs2010编译librtmp静态库">
<h4 class="text-truncate oneline" style="width: 552px;">
win7下利用vs2010编译<em>librtmp</em>静态库 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-07</span>
<span class="read-num hover-hide">
阅读数
2777</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/liulina603/article/details/51851950" target="_blank" title="win7下利用vs2010编译librtmp静态库">
<span class="desc oneline">一、编译librtmp  下载rtmpdump的代码,你会发现,它是一个地道的linux项目,除了一个简单的Makefile,其他什么都没有。好像librtmp不依赖于系统,我们可以不用费太多功夫,把...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/liulina603">来自: <span class="blog_title"> liulina603的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/b35838715/9582265,BlogCommendFromBaidu_1,index_2&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/b35838715/9582265,BlogCommendFromBaidu_1,index_2&quot;}" data-flg="true">
<a href="https://download.csdn.net/download/b35838715/9582265" target="_blank">
<div class="content clearfix">
<div class="">
<h4 class="text-truncate oneline clearfix">
<em>librtmp</em>源码 </h4>
<span class="data float-right">07-21</span>
</div>
<div class="desc oneline">
1 librtmp优化,并支持 chunksize发送 rtmp_-&gt;m_outChunkSize = 4096; rtmp_-&gt;m_bSendChunkSizeInfo = 1; 2 支持纯 ipv </div>
<span class="type-show type-show-download">下载</span>
</div>
</a>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_59" data-pid="59" data-track-view="{&quot;mod&quot;:&quot;kp_popu_59-78&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_59-78&quot;,&quot;con&quot;:&quot;,,&quot;}"><div><iframe scrolling="no" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/s.htm" width="852" height="60" frameborder="0"></iframe></div><script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/rxjg.js"></script></div></div>
<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/code_better/9250109,BlogCommendFromBaidu_2,index_3&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/code_better/9250109,BlogCommendFromBaidu_2,index_3&quot;}" data-flg="true">
<a href="https://download.csdn.net/download/code_better/9250109" target="_blank">
<div class="content clearfix">
<div class="">
<h4 class="text-truncate oneline clearfix">
<em>librtmp</em>_src_builder </h4>
<span class="data float-right">11-07</span>
</div>
<div class="desc oneline">
内涵vs的运行项目,含有openssl,zlib,rtmpdump源码,只需要打开builder文件夹运行vs2010里的sln,编译即可。或者直接用里面debug里的编译好的librtmp.lib </div>
<span class="type-show type-show-download">下载</span>
</div>
</a>
</div>
<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/wangxing1231/8498855,BlogCommendFromBaidu_3,index_4&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/wangxing1231/8498855,BlogCommendFromBaidu_3,index_4&quot;}" data-flg="true">
<a href="https://download.csdn.net/download/wangxing1231/8498855" target="_blank">
<div class="content clearfix">
<div class="">
<h4 class="text-truncate oneline clearfix">
<em>librtmp</em> (32位和64位)编译源码 </h4>
<span class="data float-right">03-13</span>
</div>
<div class="desc oneline">
librtmp (32位和64位)编译源码 已经经过调试分享给大家使用 </div>
<span class="type-show type-show-download">下载</span>
</div>
</a>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011124985/article/details/81479969,BlogCommendFromGuangxin_5,index_5&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011124985/article/details/81479969,BlogCommendFromGuangxin_5,index_5&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011124985/article/details/81479969" target="_blank" title="12.RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比">
<h4 class="text-truncate oneline" style="width: 552px;">
12.RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">08-07</span>
<span class="read-num hover-hide">
阅读数
2622</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011124985/article/details/81479969" target="_blank" title="12.RTSP请求详解及RTP 基于UDP和TCP协议传输数据的对比">
<span class="desc oneline">最近一段时间一直在研究rtsp和rtp,现在写博客总结一下,也是对知识的一种巩固吧。rtsp的协议的请求流程及格式请参考一下链接:http://blog.csdn.net/u010425035/art...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u011124985">来自: <span class="blog_title"> houshaoyun的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xiejiashu/article/details/84501551,BlogCommendFromGuangxin_6,index_6&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xiejiashu/article/details/84501551,BlogCommendFromGuangxin_6,index_6&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xiejiashu/article/details/84501551" target="_blank" title="EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法">
<h4 class="text-truncate oneline" style="width: 552px;">
EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-25</span>
<span class="read-num hover-hide">
阅读数
492</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xiejiashu/article/details/84501551" target="_blank" title="EasyDarwin开源流媒体服务器Golang版本:拉转推功能之拉流实现方法">
<span class="desc oneline">EasyDarwin开源流媒体服务器(www.easydarwin.org),拉转推是一个很有意义的功能,它可将一个独立的RTSP数据源“拉”到服务器,再通过转发协议转发给多个客户端,或者通过Easy...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/xiejiashu">来自: <span class="blog_title"> Babosa的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/elesos/article/details/81296433,BlogCommendFromGuangxin_7,index_7&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/elesos/article/details/81296433,BlogCommendFromGuangxin_7,index_7&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/elesos/article/details/81296433" target="_blank" title="RTMP流媒体播放过程:握手,建立连接,建立流,播放">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMP流媒体播放过程:握手,建立连接,建立流,播放 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-31</span>
<span class="read-num hover-hide">
阅读数
192</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/elesos/article/details/81296433" target="_blank" title="RTMP流媒体播放过程:握手,建立连接,建立流,播放">
<span class="desc oneline">本文讲述从打开一个RTMP流媒体到视音频数据开始播放的整个过程。&nbsp;播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网络流(NetStream)。其...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/elesos">来自: <span class="blog_title"> starRTC免费im直播会议一对一视频</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_60" data-pid="60" data-track-view="{&quot;mod&quot;:&quot;kp_popu_60-43&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_60-43&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551765686175_883" id="QIHOO__WEB__SO__1551765686175_883" style="display:block;margin:0;padding:0;border:none;width:900px;height:84px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551765686175_883-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551765686175_883 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d3206307f&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FeTGlAIlAhUEFq7M2PLZ1vOa/QEV8ggln8mHlwIlABUaFAAA&amp;ubi=Fcj8SxWg58cCFai6rhcVrP3LWBUEFRwW9NaK8BYWrszt2eOc+Jr9ATQCFqjAECUCFf2OjfwNFaYBFQA2kLy01cmxgJHoAQA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=qQaNPZX6fvo=&amp;url=http%3A%2F%2Fsx2.aihuaiedu.cn%2Fzc360%2Fzd%2Fpc%2Fd2%2F%3Fll-zd-sz-A701" data-pv="https://ssxd.mediav.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAeQgAAgAAAHIEAAM/8AAAAAAAAAAIAAIAAAABCgADfprwc5JQp94IAAQAAAB5BgAGLbcKAAkAAAAAAAIQFAYACgAACgAPAAAAAAASdpAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d3206307f&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FeTGlAIlAhUEFq7M2PLZ1vOa/QEV8ggln8mHlwIlABUaFAAA&amp;ubi=Fcj8SxWg58cCFai6rhcVrP3LWBUEFRwW9NaK8BYWrszt2eOc+Jr9ATQCFqjAECUCFf2OjfwNFaYBFQA2kLy01cmxgJHoAQA&amp;ds=1&amp;price=AAAAAFx+ELUAAAAAAAADNEeC6aUFp5s1oa9hdA==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b14d3206307f&amp;p=2265522&amp;l=1136674&amp;s=1&amp;z=1&amp;ps=0&amp;w=AAAAAFx-ELUAAAAAAAADXu19DkjAjKsvncLvxA&amp;pt=1&amp;k=mBcEhgAAAAA=&amp;i=Of9tjIEDZ93J&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b14d3206307f&amp;p=2265522&amp;l=1136674&amp;s=1&amp;ps=0&amp;k=mBcEhgAAAAA=&amp;i=Of9tjIEDZ93J&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/622372-0b7d400b523b02b5e524f00536006c3f.jpg)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">2月起,科技园有种学历叫免考本科,一年课程,正规本科,学信网可查</info-div>
<info-div class="singleImage-desc">爱华学历中心 · 顶新</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 900,
h : 84,
showid : 'Afihld',
placeholderId: "three_ad8",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 10,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625871,searchFromBaidu1_0,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625871,searchFromBaidu1_0,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/wongainia158158/article/details/48625871" target="_blank"> <h4 class="text-truncate oneline"><em>LibRTMP</em><em>源代码分析</em>5:建立网络连接 - wongainia158158的博客 - ...</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-2</span> </p> </div> <p class="content oneline">
自: wongainia158158的博客 LibRTMP源代码分析8:发送消息(Send RTMPPacket)
...LibRTMP源代码分析1 09-21 424 1.&nbsp;背景知识 &nbsp; &nbsp;RTMP(Real Time
...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626907,searchFromBaidu1_1,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626907,searchFromBaidu1_1,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/wongainia158158/article/details/48626907" target="_blank"> <h4 class="text-truncate oneline"><em>LibRTMP</em><em>源代码分析</em>6 - wongainia158158的博客 - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-20</span> </p> </div> <p class="content oneline"></p> </a> </div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/Guofengpu/article/details/73331459,BlogCommendFromGuangxin_8,index_8&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/Guofengpu/article/details/73331459,BlogCommendFromGuangxin_8,index_8&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Guofengpu/article/details/73331459" target="_blank" title="rtmp抓包分析">
<h4 class="text-truncate oneline" style="width: 552px;">
rtmp抓包分析 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-16</span>
<span class="read-num hover-hide">
阅读数
789</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Guofengpu/article/details/73331459" target="_blank" title="rtmp抓包分析">
<span class="desc oneline">tcpdump抓包:tcpdumphostIPandtcpport1935-wa.pcapwhireshark分析:用wireshark打开a.pcap3握手(Handshake)一个RTMP连接以握...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/Guofengpu">来自: <span class="blog_title"> 郭风朴(guofengpu)的Android影音专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq_25005909/article/details/79098152,BlogCommendFromGuangxin_9,index_9&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq_25005909/article/details/79098152,BlogCommendFromGuangxin_9,index_9&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq_25005909/article/details/79098152" target="_blank" title="RTSP、RTMP、HTTP协议">
<h4 class="text-truncate oneline" style="width: 552px;">
RTSP、RTMP、HTTP协议 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-18</span>
<span class="read-num hover-hide">
阅读数
2017</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq_25005909/article/details/79098152" target="_blank" title="RTSP、RTMP、HTTP协议">
<span class="desc oneline">一、异同1、RSTP、RTMP、HTTP协议共同点RTSPRTMPHTTP都是用在应用层。理论上这三种协议都可以做直播和点播,但直播一般用RTSP和RTMP点播用HTTP。2、RSTP、RTMP、HT...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/qq_25005909">来自: <span class="blog_title"> 夏中伟的博客</span></a>
</span>
</p>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626615,searchFromBaidu1_2,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626615,searchFromBaidu1_2,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/wongainia158158/article/details/48626615" target="_blank"> <h4 class="text-truncate oneline">...代码分析6:建立网络流 - wongainia158158的博客 - CSDN博客...</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-3</span> </p> </div> <p class="content oneline">来自: wongainia158158的博客 相关热词 libRTMP lib...LibRTMP源代码分析1:概述 07-23 640 此系列文...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12952977,searchFromBaidu1_3,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12952977,searchFromBaidu1_3,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/leixiaohua1020/article/details/12952977" target="_blank"> <h4 class="text-truncate oneline">RTMPdump <em>源代码分析</em> 1: main()函数 - 雷霄骅(leixiaoh..._CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">1-17</span> </p> </div> <p class="content oneline">RTMPDump (libRTMP) 源代码分析2:解析RTMP地址——...来自: wongainia158158的博客 用librtmp 接收数据 ...</p> </a> </div>
<div class="recommend-item-box blog-expert-recommend-box" style="display: block;">
<div class="d-flex">
<div class="blog-expert-recommend">
<div class="blog-expert">
<div class="blog-expert-flexbox" data-track-view="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><a href="https://blog.csdn.net/byxdaz" target="_blank"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_byxdaz.jpg" alt="byxdaz" title="byxdaz"><svg class="icon" aria-hidden="true"><use xlink:href="#csdnc-blogexpert"></use></svg></a><span data-track-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="byxdaz" data-nick="byxdaz">关注</span></span></div><div class="info"><span data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><a href="https://blog.csdn.net/byxdaz" target="_blank"><h5 class="oneline" title="byxdaz">byxdaz</h5></a></span> <p></p><p class="article-num" title="950篇文章"> 950篇文章</p><p class="article-num" title="排名:86"> 排名:86</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><a href="https://blog.csdn.net/leixiaohua1020" target="_blank"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_leixiaohua1020.jpg" alt="雷霄骅" title="雷霄骅"><svg class="icon" aria-hidden="true"><use xlink:href="#csdnc-blogexpert"></use></svg></a><span data-track-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="leixiaohua1020" data-nick="雷霄骅">关注</span></span></div><div class="info"><span data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><a href="https://blog.csdn.net/leixiaohua1020" target="_blank"><h5 class="oneline" title="雷霄骅">雷霄骅</h5></a></span> <p></p><p class="article-num" title="558篇文章"> 558篇文章</p><p class="article-num" title="排名:50"> 排名:50</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><a href="https://blog.csdn.net/huangmindong" target="_blank"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_huangmindong.gif" alt="huangmindong" title="huangmindong"></a><span data-track-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="huangmindong" data-nick="huangmindong">关注</span></span></div><div class="info"><span data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48624409&quot;}"><a href="https://blog.csdn.net/huangmindong" target="_blank"><h5 class="oneline" title="huangmindong">huangmindong</h5></a></span> <p></p><p class="article-num" title="298篇文章"> 298篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div
</div>
</div>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12952977,BlogCommendFromQuerySearch_10,index_10&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12952977,BlogCommendFromQuerySearch_10,index_10&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12952977" target="_blank" title="RTMPdump 源代码分析 1: main()函数">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump <em>源代码分析</em> 1: main()函数 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-22</span>
<span class="read-num hover-hide">
阅读数
2</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12952977" target="_blank" title="RTMPdump 源代码分析 1: main()函数">
<span class="desc oneline">rtmpdump是一个用来处理RTMP流媒体的工具包,支持rtmp://,rtmpt://,rtmpe://,rtmpte://,andrtmps://等。之前在学习RTMP协议的时候,发现没有讲它源...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12954329,searchFromBaidu1_4,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12954329,searchFromBaidu1_4,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/leixiaohua1020/article/details/12954329" target="_blank"> <h4 class="text-truncate oneline">RTMPdump(<em>libRTMP</em>)<em>源代码分析</em> 4: 连接第一步——握手(H..._CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-5</span> </p> </div> <p class="content oneline">RTMPdump 源代码分析&nbsp;1: main()函数 RTMPDump (libRTMP) 源代码分析2:解析...LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客 09-21 549 服务...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/84491556,searchFromBaidu1_5,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/84491556,searchFromBaidu1_5,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/leixiaohua1020/article/details/84491556" target="_blank"> <h4 class="text-truncate oneline">RTMPdump(<em>libRTMP</em>) <em>源代码分析</em> 6: 建立一个流媒体连接 ..._CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-30</span> </p> </div> <p class="content oneline">前文已经分析了RTMPdump中建立一个NetConnection的过程:RTMPdump 源代码分析 5:...LibRTMP源代码分析1 - wongainia158158的博客 09-21 426 1.&nbsp;背景知识 ...</p> </a> </div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12971635,BlogCommendFromQuerySearch_11,index_11&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12971635,BlogCommendFromQuerySearch_11,index_11&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12971635" target="_blank" title="RTMPdump(libRTMP) 源代码分析 9: 接收消息(Message)(接收视音频数据)">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em> 9: 接收消息(Message)(接收视音频数据) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-23</span>
<span class="read-num hover-hide">
阅读数
1</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12971635" target="_blank" title="RTMPdump(libRTMP) 源代码分析 9: 接收消息(Message)(接收视音频数据)">
<span class="desc oneline">前一篇文章分析了RTMPdump(libRTMP)的发送消息(Message)方面的源代码:RTMPdump(libRTMP)源代码分析8:发送消息(Message)在这里在研究研究接收消息(Mess...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/huangmindong/article/details/26574653,BlogCommendFromQuerySearch_12,index_12&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/huangmindong/article/details/26574653,BlogCommendFromQuerySearch_12,index_12&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/huangmindong/article/details/26574653" target="_blank" title="LibRTMP源代码分析8:发送消息(Send RTMPPacket)">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>8:发送消息(Send RTMPPacket) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">05-22</span>
<span class="read-num hover-hide">
阅读数
1739</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/huangmindong/article/details/26574653" target="_blank" title="LibRTMP源代码分析8:发送消息(Send RTMPPacket)">
<span class="desc oneline">在详细分析函数RTMP_SendPacket()之前,让我们来看看RTMPPacket结构体的定义:typedefstructRTMPPacket{&nbsp;&nbsp;&nbsp;&nbsp;uint8_t&nbsp;m_headerType;/...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/huangmindong">来自: <span class="blog_title"> huangmindong的专栏</span></a>
</span>
</p>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/lcalqf/article/details/78849912,searchFromBaidu1_6,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/lcalqf/article/details/78849912,searchFromBaidu1_6,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/lcalqf/article/details/78849912" target="_blank"> <h4 class="text-truncate oneline">rtmp源码分析 - lcalqf的专栏 - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-17</span> </p> </div> <p class="content oneline">RTMPdump 源代码分析 1: main()函数 - 雷霄骅(leixiaohua1020)的专栏 10-22...LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客 09-21 557 服务...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/mandagod/article/details/53495573,searchFromBaidu1_7,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/mandagod/article/details/53495573,searchFromBaidu1_7,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/mandagod/article/details/53495573" target="_blank"> <h4 class="text-truncate oneline">RTMPdump源码分析: NetStream1(7) - mandagod的博客 - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-17</span> </p> </div> <p class="content oneline">RTMPDump (libRTMP)的整体的函数调用结构图如下图所示。详细分析上回说到,有两个函数尤为重要:RTMP_ReadPacket() RTMP_ClientPacket() ...</p> </a> </div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_61" data-pid="61" data-track-view="{&quot;mod&quot;:&quot;kp_popu_61-557&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_61-557&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551765686266_794" id="QIHOO__WEB__SO__1551765686266_794" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551765686266_794-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551765686266_794 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d091ac47b&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FaixkwIlAhUEFtGz7fKvrtD/+AEV8gglpfvrigclABUaFAAA&amp;ubi=Fcj8SxWg58cCFai6rhcVrP3LWBUEFRwW9NaK8BYW0bPYi6boy//4ATQCFrDAECUCFZrr1MwIFaYBFQA2kLy01cmxgJHoAQA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=qQaNPZX6fvo=&amp;url=http%3A%2F%2Fsx2.aihuaiedu.cn%2Fzc360%2Fzd%2Fpc%2Fd2%2F%3Fll-zd-sz-A701" data-pv="https://ssxd.mediav.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAeQgAAgAAAEsEAAM/8AAAAAAAAAAIAAIAAAABCgADg4BoXkCJ594IAAQAAAB5BgAGLbcKAAkAAAAAAAIQGAYACgAACgAPAAAAAAASdpAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d091ac47b&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FaixkwIlAhUEFtGz7fKvrtD/+AEV8gglpfvrigclABUaFAAA&amp;ubi=Fcj8SxWg58cCFai6rhcVrP3LWBUEFRwW9NaK8BYW0bPYi6boy//4ATQCFrDAECUCFZrr1MwIFaYBFQA2kLy01cmxgJHoAQA&amp;ds=1&amp;price=AAAAAFx+ELQAAAAAAAzH2XKBIJQHoFmQIcmBow==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b14d091ac47b&amp;p=2255956&amp;l=1136674&amp;s=1&amp;z=1&amp;ps=0&amp;w=AAAAAFx-ELQAAAAAAAzIAaOWhql44OiA0zRZhw&amp;pt=1&amp;k=c5xSngAAAAA=&amp;i=uvDDU-EDZ93M&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b14d091ac47b&amp;p=2255956&amp;l=1136674&amp;s=1&amp;ps=0&amp;k=c5xSngAAAAA=&amp;i=uvDDU-EDZ93M&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/622372-0b7d400b523b02b5e524f00536006c3f.jpg)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">2月起,科技园有种学历叫免考本科,一年课程,正规本科,学信网可查</info-div>
<info-div class="singleImage-desc">爱华学历中心 · 顶新</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'GNKXx7',
placeholderId: "three_ad13",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625123,BlogCommendFromQuerySearch_13,index_13&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625123,BlogCommendFromQuerySearch_13,index_13&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625123" target="_blank" title="LibRTMP源代码分析2">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>2 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
305</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625123" target="_blank" title="LibRTMP源代码分析2">
<span class="desc oneline">获取RTMP流媒体数据很重要的前提是RTMP的URL的解析,首先回顾一下
RTMP的URL的格
式:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url=“rtmp://pub1.guoshi.com:1935
/pushstation/2...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12958747,searchFromBaidu1_8,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12958747,searchFromBaidu1_8,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/leixiaohua1020/article/details/12958747" target="_blank"> <h4 class="text-truncate oneline">RTMPdump(<em>libRTMP</em>) <em>源代码分析</em> 8: 发送消息(Message) -..._CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">12-22</span> </p> </div> <p class="content oneline">RTMPdump 源代码分析&nbsp;1: main()函数 RTMPDump (libRTMP) 源代码分析2:解析...来自: wongainia158158的博客 实时直播协议:编译RTMPdump(libRTMP) 09-11 26...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/sunnylion1982/article/details/50564480,searchFromBaidu1_9,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/sunnylion1982/article/details/50564480,searchFromBaidu1_9,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/sunnylion1982/article/details/50564480" target="_blank"> <h4 class="text-truncate oneline"><em>libRTMP</em>使用说明 - XXX的专栏 - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-12</span> </p> </div> <p class="content oneline">swfVfy=0|1 swf播放器的URL,此选项将替换所以三个--swfUrl,--swfhash, and...LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客 09-21 551 服务...</p> </a> </div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/fireroll/article/details/18942873,BlogCommendFromQuerySearch_14,index_14&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/fireroll/article/details/18942873,BlogCommendFromQuerySearch_14,index_14&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/fireroll/article/details/18942873" target="_blank" title="RTMPDump(libRTMP) 源代码分析">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPDump(<em>libRTMP</em><em>源代码分析</em> </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-05</span>
<span class="read-num hover-hide">
阅读数
2461</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/fireroll/article/details/18942873" target="_blank" title="RTMPDump(libRTMP) 源代码分析">
<span class="desc oneline">之前分析了一下RTMPDump的Main()函数,其中获取RTMP流媒体数据很重要的前提是RTMP的URL的解析。如果没有这一步,那程序在强大也是白搭。现在来解析一下这个函数吧:RTMP_ParseU...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/fireroll">来自: <span class="blog_title"> 北雨南萍</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/leixiaohua1020/8291757,BlogCommendFromBaidu_15,index_15&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/leixiaohua1020/8291757,BlogCommendFromBaidu_15,index_15&quot;}" data-flg="true">
<a href="https://download.csdn.net/download/leixiaohua1020/8291757" target="_blank">
<div class="content clearfix">
<div class="">
<h4 class="text-truncate oneline clearfix">
最简单的基于<em>libRTMP</em>的示例 </h4>
<span class="data float-right">12-23</span>
</div>
<div class="desc oneline">
本工程包含了LibRTMP的使用示例,包含如下子工程: simplest_librtmp_receive: 接收RTMP流媒体并在本地保存成FLV格式的文件。 simplest_librtmp_sen </div>
<span class="type-show type-show-download">下载</span>
</div>
</a>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/pehao/article/details/49280857,BlogCommendFromBaidu_16,index_16&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/pehao/article/details/49280857,BlogCommendFromBaidu_16,index_16&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/pehao/article/details/49280857" target="_blank" title="VS2012 编译Librtmp">
<h4 class="text-truncate oneline" style="width: 552px;">
VS2012 编译<em>Librtmp</em> </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-20</span>
<span class="read-num hover-hide">
阅读数
2673</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/pehao/article/details/49280857" target="_blank" title="VS2012 编译Librtmp">
<span class="desc oneline">折腾一天编译Librtmp,各种问题,对于一个被.NET坑害的人来做C++简直累死了。...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/pehao">来自: <span class="blog_title"> pehao的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12958747,BlogCommendFromBaidu_17,index_17&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12958747,BlogCommendFromBaidu_17,index_17&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12958747" target="_blank" title="RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em> 8: 发送消息(Message) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-23</span>
<span class="read-num hover-hide">
阅读数
1</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12958747" target="_blank" title="RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)">
<span class="desc oneline">之前写了一系列的文章介绍RTMPDump各种函数。比如怎么建立网络连接(NetConnection),怎么建立网络流(NetStream)之类的,唯独没有介绍这些发送或接收的数据,在底层到底是怎么实现...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_62" data-pid="62" data-track-view="{&quot;mod&quot;:&quot;kp_popu_62-556&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_62-556&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551765686351_645" id="QIHOO__WEB__SO__1551765686351_645" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551765686351_645-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551765686351_645 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d3206307f&amp;price=AAAAAFx+ELUAAAAAAAADuHcAIMvy0UoRNWo5FA==&amp;finfo=DAABCAABAAAAcQgAAgAAAE0EAAM/Vxclsky95wAIAAIAAAADCgADfpsCoxZ26ZgIAAQAAABQBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAET4QAA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FeTGlAIlAhUEFq7M2PLZ1vOa/QEV8ggln8mHlwIlABUaFAAA&amp;ubi=FeT+UBXIuMkCFZKOtRcVgJLcWBUEFRwWwrXfnhcWrsyXqPeogZv9ATQEFqjAECUGFbyA4K4NFdIEFQA2icy8p6j68bwSAA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=iVIxeECMuYy=&amp;url=http%3A%2F%2Fzcs.love028.cn%2F" data-pv="https://ssxd.mediav.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAcQgAAgAAAE0EAAM/Vxclsky95wAIAAIAAAADCgADfpsCoxZ26ZgIAAQAAABQBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAET4QAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d3206307f&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FeTGlAIlAhUEFq7M2PLZ1vOa/QEV8ggln8mHlwIlABUaFAAA&amp;ubi=FeT+UBXIuMkCFZKOtRcVgJLcWBUEFRwWwrXfnhcWrsyXqPeogZv9ATQEFqjAECUGFbyA4K4NFdIEFQA2icy8p6j68bwSAA&amp;ds=2&amp;price=AAAAAFx+ELUAAAAAAAADuHcAIMvy0UoRNWo5FA==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b14d3206307f&amp;p=2265522&amp;l=1136674&amp;s=2&amp;z=1&amp;ps=0&amp;w=AAAAAFx-ELUAAAAAAAAD1ml6ADRKmEa-3h00mg&amp;pt=1&amp;k=mBcEhgAAAAA=&amp;i=OfDtjIEDZ93k&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b14d3206307f&amp;p=2265522&amp;l=1136674&amp;s=2&amp;ps=0&amp;k=mBcEhgAAAAA=&amp;i=OfDtjIEDZ93k&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/663474-bd47dea5e160e23b948a9af0972cf59d.gif)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">良心记者揭露科技园蜂蜜市场黑幕!亲赴深山,发现惊人真相!</info-div>
<info-div class="singleImage-desc">新钥 · 顶新</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'Afihld',
placeholderId: "three_ad18",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48630207,BlogCommendFromQuerySearch_18,index_18&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48630207,BlogCommendFromQuerySearch_18,index_18&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48630207" target="_blank" title="LibRTMP源代码分析3">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>3 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
263</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48630207" target="_blank" title="LibRTMP源代码分析3">
<span class="desc oneline">AMF协议是ActionMessageFormat协议的简称,AMF协议是Adobe公司的协议,主要用于数据交互和远程过程调用,在功能上与WebService相当,但AMF与WebService中的x...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625103,BlogCommendFromQuerySearch_19,index_19&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625103,BlogCommendFromQuerySearch_19,index_19&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625103" target="_blank" title="LibRTMP源代码分析4">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>4 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
277</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625103" target="_blank" title="LibRTMP源代码分析4">
<span class="desc oneline">在RTMP客户端和服务器端网络层连接成功之后,第一件事情就是RTMP的握手。至于为什么要握手,协议本身没有太多的描述,我理解的握手目的:握手的主要目的就是让客户端和服务器端互相打个招呼,其主要内容应该...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626907,BlogCommendFromQuerySearch_20,index_20&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626907,BlogCommendFromQuerySearch_20,index_20&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48626907" target="_blank" title="LibRTMP源代码分析6">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>6 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
641</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48626907" target="_blank" title="LibRTMP源代码分析6">
<span class="desc oneline">前面介绍了建立网络连接(NetConnection)和建立网络流(NetStream),这些命令数据是怎么发送出去的呢?在底层是怎么实现的呢?接下来就要详细分析各种消息的发送过程。首先大致列举一下消息...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48627003,BlogCommendFromQuerySearch_21,index_21&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48627003,BlogCommendFromQuerySearch_21,index_21&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627003" target="_blank" title="LibRTMP源代码分析8:发送消息">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>8:发送消息 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
335</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627003" target="_blank" title="LibRTMP源代码分析8:发送消息">
<span class="desc oneline">在详细分析函数RTMP_SendPacket()之前,让我们来看看RTMPPacket结构体的定义:typedefstructRTMPPacket{&nbsp;&nbsp;&nbsp;&nbsp;uint8_t&nbsp;m_headerType;/...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/HandsomeHong/article/details/79047639,BlogCommendFromQuerySearch_22,index_22&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/HandsomeHong/article/details/79047639,BlogCommendFromQuerySearch_22,index_22&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/HandsomeHong/article/details/79047639" target="_blank" title="librtmp源码分析---url解析">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>源码分析---url解析 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-12</span>
<span class="read-num hover-hide">
阅读数
279</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/HandsomeHong/article/details/79047639" target="_blank" title="librtmp源码分析---url解析">
<span class="desc oneline">#include#include#include#include#include"rtmp_sys.h"#include"log.h"/**&nbsp;*@brief解析URL,得到协议类型、主机名称、端口号、...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/HandsomeHong">来自: <span class="blog_title"> HandsomeHong的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_63" data-pid="63" data-track-view="{&quot;mod&quot;:&quot;kp_popu_63-555&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_63-555&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551765686488_844" id="QIHOO__WEB__SO__1551765686488_844" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551765686488_844-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551765686488_844 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d091ac47b&amp;price=AAAAAFx+ELQAAAAAAAzIe+kaYci380Hzu1brFQ==&amp;finfo=DAABCAABAAAAWwgAAgAAAFAEAAM/UqO4znvRBwAIAAIAAAADCgADg4Bxd2ecI5AIAAQAAABQBgAGLbcKAAkAAAAAAAIQGAYACgAACAAOAAAAPAoADwAAAAAADeN5AA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FaixkwIlAhUEFtGz7fKvrtD/+AEV8gglpfvrigclABUaFAAA&amp;ubi=FeT+UBXIuMkCFZKOtRcVgJLcWBUEFRwWwrXfnhcW0bPDpJyix//4ATQEFrDAECUGFbajnNQFFdIEFQA2icy8p6j68bwSAA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=iVIxeECMuYy=&amp;url=http%3A%2F%2Fzcs.love028.cn%2F" data-pv="https://ssxd.mediav.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAWwgAAgAAAFAEAAM/UqO4znvRBwAIAAIAAAADCgADg4Bxd2ecI5AIAAQAAABQBgAGLbcKAAkAAAAAAAIQGAYACgAACAAOAAAAPAoADwAAAAAADeN5AA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d091ac47b&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FaixkwIlAhUEFtGz7fKvrtD/+AEV8gglpfvrigclABUaFAAA&amp;ubi=FeT+UBXIuMkCFZKOtRcVgJLcWBUEFRwWwrXfnhcW0bPDpJyix//4ATQEFrDAECUGFbajnNQFFdIEFQA2icy8p6j68bwSAA&amp;ds=2&amp;price=AAAAAFx+ELQAAAAAAAzIe+kaYci380Hzu1brFQ==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b14d091ac47b&amp;p=2255956&amp;l=1136674&amp;s=2&amp;z=1&amp;ps=0&amp;w=AAAAAFx-ELQAAAAAAAzIn7wY13rrIKlY4kI1DQ&amp;pt=1&amp;k=c5xSngAAAAA=&amp;i=u6JpU-EDZ9ZL&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b14d091ac47b&amp;p=2255956&amp;l=1136674&amp;s=2&amp;ps=0&amp;k=c5xSngAAAAA=&amp;i=u6JpU-EDZ9ZL&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/663474-bd47dea5e160e23b948a9af0972cf59d.gif)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">良心记者揭露科技园蜂蜜市场黑幕!亲赴深山,发现惊人真相!</info-div>
<info-div class="singleImage-desc">新钥 · 顶新</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'GNKXx7',
placeholderId: "three_ad23",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625871,BlogCommendFromQuerySearch_23,index_23&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625871,BlogCommendFromQuerySearch_23,index_23&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625871" target="_blank" title="LibRTMP源代码分析5:建立网络连接">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>5:建立网络连接 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
634</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625871" target="_blank" title="LibRTMP源代码分析5:建立网络连接">
<span class="desc oneline">服务器和客户端之间只能建立一个网络连接,但是基于该连接可以创建很多网络流。他们的关系如图所示:&nbsp;网络连接的基本步骤在第一篇文章中有所介绍,此处不再重复。源代码中的RTMP_Connect(...)用于...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/zmy3376365/article/details/79005690,BlogCommendFromQuerySearch_24,index_24&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/zmy3376365/article/details/79005690,BlogCommendFromQuerySearch_24,index_24&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/zmy3376365/article/details/79005690" target="_blank" title="librtmp在windows下连接时出现10093错误">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>在windows下连接时出现10093错误 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-08</span>
<span class="read-num hover-hide">
阅读数
202</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/zmy3376365/article/details/79005690" target="_blank" title="librtmp在windows下连接时出现10093错误">
<span class="desc oneline">在连接之前,先调用以下代码#includeWSADATAwsaData;intnRet;if((nRet=WSAStartup(MAKEWORD(2,2),&amp;wsaData))!=0){returnn...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/zmy3376365">来自: <span class="blog_title"> 鸟语的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/li_wen01/article/details/71548079,BlogCommendFromQuerySearch_25,index_25&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/li_wen01/article/details/71548079,BlogCommendFromQuerySearch_25,index_25&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/li_wen01/article/details/71548079" target="_blank" title="使用RTMPdump(libRTMP)直播来自v4l2的摄像头数据">
<h4 class="text-truncate oneline" style="width: 552px;">
使用RTMPdump(<em>libRTMP</em>)直播来自v4l2的摄像头数据 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">04-24</span>
<span class="read-num hover-hide">
阅读数
3920</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/li_wen01/article/details/71548079" target="_blank" title="使用RTMPdump(libRTMP)直播来自v4l2的摄像头数据">
<span class="desc oneline">&nbsp;&nbsp;&nbsp;RTMP是RealTimeMessagingProtocol(实时消息传输协议),RTMPdump封装了RTMP协议的一些接口,使用户使用RTMP协议更加的方便。关于RTMPdump的使用,可以...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/li_wen01">来自: <span class="blog_title"> Biao</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/huibailingyu/article/details/50554315,BlogCommendFromQuerySearch_26,index_26&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/huibailingyu/article/details/50554315,BlogCommendFromQuerySearch_26,index_26&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/huibailingyu/article/details/50554315" target="_blank" title="librtmp发送AVC,AAC数据包">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>发送AVC,AAC数据包 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-21</span>
<span class="read-num hover-hide">
阅读数
3968</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/huibailingyu/article/details/50554315" target="_blank" title="librtmp发送AVC,AAC数据包">
<span class="desc oneline">1.libRTMP的包结构typedefstructRTMPPacket{uint8_tm_headerType;uint8_tm_packetType;uint8_tm_hasAbsTimestam...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/huibailingyu">来自: <span class="blog_title"> huibailingyu的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061187,BlogCommendFromQuerySearch_27,index_27&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061187,BlogCommendFromQuerySearch_27,index_27&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061187" target="_blank" title="LibRTMP源代码分析4:握手(HandShake)">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>4:握手(HandShake) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-23</span>
<span class="read-num hover-hide">
阅读数
1348</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061187" target="_blank" title="LibRTMP源代码分析4:握手(HandShake)">
<span class="desc oneline">转载自:http://nkwavelet.blog.163.com/blog/static/227756038201412052439295/在RTMP客户端和服务器端网络层连接成功之后,第一件事情就...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/tongjing524">来自: <span class="blog_title"> tongjing524的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_64" data-pid="64" data-track-view="{&quot;mod&quot;:&quot;kp_popu_64-81&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_64-81&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551765686543_629" id="QIHOO__WEB__SO__1551765686543_629" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551765686543_629-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551765686543_629 singleImage clk" data-href="https://s1.shucaixiaoshuo.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d3206307f&amp;price=AAAAAFx+ELUAAAAAAAAEHSDC2O30zzRFP154yA==&amp;finfo=DAABCAABAAAAZwgAAgAAAEAEAAM/WRMbrS1QLAAIAAIAAAADCgADfpsLvNWyhFkIAAQAAABDBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAD7dwAA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FeTGlAIlAhUEFq7M2PLZ1vOa/QEV8ggln8mHlwIlABUaFAAA&amp;ubi=FfakUBW2xMoCFfqluRcVxpPlWBUEFRwWsOmSnBcWrsysj4HvhZv9ATQGFqjAkIAIJQYV/PX24AgVpgEVADbC3onUyZrJ3hoA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=8Ym2UWyboQ-=&amp;url=http%3A%2F%2Fxmx.zhechaigu.cn%2F" data-pv="https://s1.shucaixiaoshuo.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAZwgAAgAAAEAEAAM/WRMbrS1QLAAIAAIAAAADCgADfpsLvNWyhFkIAAQAAABDBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAD7dwAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d3206307f&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FeTGlAIlAhUEFq7M2PLZ1vOa/QEV8ggln8mHlwIlABUaFAAA&amp;ubi=FfakUBW2xMoCFfqluRcVxpPlWBUEFRwWsOmSnBcWrsysj4HvhZv9ATQGFqjAkIAIJQYV/PX24AgVpgEVADbC3onUyZrJ3hoA&amp;ds=3&amp;price=AAAAAFx+ELUAAAAAAAAEHSDC2O30zzRFP154yA==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b14d3206307f&amp;p=2265522&amp;l=1136674&amp;s=3&amp;z=1&amp;ps=0&amp;w=AAAAAFx-ELUAAAAAAAAEOVesuWScA8pDA9bvcQ&amp;pt=1&amp;k=mBcEhgAAAAA=&amp;i=OdJtjIEDZ9gp&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b14d3206307f&amp;p=2265522&amp;l=1136674&amp;s=3&amp;ps=0&amp;k=mBcEhgAAAAA=&amp;i=OdJtjIEDZ9gp&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.milkjpg.com/galileo/657723-f8bb080369cfe31efb2c4d02bedbc5e9.gif)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">一个长期喝土蜂蜜的人,竟然变成了这样,再忙也要看一下</info-div>
<info-div class="singleImage-desc">科技 · 鹓鶵</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'Afihld',
placeholderId: "three_ad28",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48627119,BlogCommendFromQuerySearch_28,index_28&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48627119,BlogCommendFromQuerySearch_28,index_28&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627119" target="_blank" title="LibRTMP源代码分析10:处理消息">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>10:处理消息 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
303</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627119" target="_blank" title="LibRTMP源代码分析10:处理消息">
<span class="desc oneline">函数RTMP_ClientPacket()是libRTMP中最重要的核心函数之一,主要完成各种消息的处理。/**&nbsp;*@brief根据接收到的消息类型的不同,作出不同的处理。&nbsp;*&nbsp;消息类型有协议控制消息...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626615,BlogCommendFromQuerySearch_29,index_29&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626615,BlogCommendFromQuerySearch_29,index_29&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48626615" target="_blank" title="LibRTMP源代码分析6:建立网络流">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>6:建立网络流 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
378</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48626615" target="_blank" title="LibRTMP源代码分析6:建立网络流">
<span class="desc oneline">建立了RTMP网络连接之后,客户端发送createStream命令到服务器端为消息连接创建一个逻辑通道。NetStream定义了这个传输逻辑通道,通过这个通道,音频流、视频流以及数据消息流可以通过连接...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48627039,BlogCommendFromQuerySearch_30,index_30&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48627039,BlogCommendFromQuerySearch_30,index_30&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627039" target="_blank" title="LibRTMP源代码分析9:接收消息">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>9:接收消息 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
408</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627039" target="_blank" title="LibRTMP源代码分析9:接收消息">
<span class="desc oneline">在这里在研究接收消息(Message)的源代码,接收消息最典型的应用就是接收视音频数据了,因为视频和音频分别都属于RTMP协议规范中的一种消息。在这里主要分析接收视音频数据。LibRTMP中完成视音频...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061151,BlogCommendFromQuerySearch_31,index_31&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061151,BlogCommendFromQuerySearch_31,index_31&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061151" target="_blank" title="LibRTMP源代码分析3:AMF编码">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>3:AMF编码 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-23</span>
<span class="read-num hover-hide">
阅读数
936</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061151" target="_blank" title="LibRTMP源代码分析3:AMF编码">
<span class="desc oneline">AMF协议是ActionMessageFormat协议的简称,AMF协议是Adobe公司的协议,主要用于数据交互和远程过程调用,在功能上与WebService相当,但AMF与WebService中的x...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/tongjing524">来自: <span class="blog_title"> tongjing524的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/darkdragonking/article/details/40657451,BlogCommendFromQuerySearch_32,index_32&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/darkdragonking/article/details/40657451,BlogCommendFromQuerySearch_32,index_32&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/darkdragonking/article/details/40657451" target="_blank" title="RTMPdump(libRTMP) 源代码分析大汇总">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em>大汇总 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-31</span>
<span class="read-num hover-hide">
阅读数
433</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/darkdragonking/article/details/40657451" target="_blank" title="RTMPdump(libRTMP) 源代码分析大汇总">
<span class="desc oneline">从高手那里转载来的,因为人家都直接弄好了链接了,我直接抄的链接,作为尊重...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/darkdragonking">来自: <span class="blog_title"> 暗黑世界</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_65" data-pid="65" data-track-view="{&quot;mod&quot;:&quot;kp_popu_65-84&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_65-84&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551765686555_448" id="QIHOO__WEB__SO__1551765686555_448" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551765686555_448-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551765686555_448 singleImage clk" data-href="https://s1.shucaixiaoshuo.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d091ac47b&amp;price=AAAAAFx+ELQAAAAAAAzI73ok1I1zZ80ffJtMbg==&amp;finfo=DAABCAABAAAATwgAAgAAADwEAAM/U1iWI5A8HwAIAAIAAAADCgADg4B6jx/GnXAIAAQAAABDBgAGLbcKAAkAAAAAAAIQGAYACgAACAAOAAAAPAoADwAAAAAADBjtAA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FaixkwIlAhUEFtGz7fKvrtD/+AEV8gglpfvrigclABUaFAAA&amp;ubi=FfakUBW2xMoCFfqluRcVxpPlWBUEFRwWsOmSnBcW0bOuvZLcwv/4ATQGFrDAkIAIJQYV4M6P/gsVpgEVADbC3onUyZrJ3hoA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=8Ym2UWyboQ-=&amp;url=http%3A%2F%2Fxmx.zhechaigu.cn%2F" data-pv="https://s1.shucaixiaoshuo.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAATwgAAgAAADwEAAM/U1iWI5A8HwAIAAIAAAADCgADg4B6jx/GnXAIAAQAAABDBgAGLbcKAAkAAAAAAAIQGAYACgAACAAOAAAAPAoADwAAAAAADBjtAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b14d091ac47b&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXRhcW+CxaACBXIARaA1PSl09TBBQA&amp;uai=FaixkwIlAhUEFtGz7fKvrtD/+AEV8gglpfvrigclABUaFAAA&amp;ubi=FfakUBW2xMoCFfqluRcVxpPlWBUEFRwWsOmSnBcW0bOuvZLcwv/4ATQGFrDAkIAIJQYV4M6P/gsVpgEVADbC3onUyZrJ3hoA&amp;ds=3&amp;price=AAAAAFx+ELQAAAAAAAzI73ok1I1zZ80ffJtMbg==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b14d091ac47b&amp;p=2255956&amp;l=1136674&amp;s=3&amp;z=1&amp;ps=0&amp;w=AAAAAFx-ELQAAAAAAAzJEAb2xacG3yExd3FtVQ&amp;pt=1&amp;k=c5xSngAAAAA=&amp;i=u6ApU-EDZ9Zx&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b14d091ac47b&amp;p=2255956&amp;l=1136674&amp;s=3&amp;ps=0&amp;k=c5xSngAAAAA=&amp;i=u6ApU-EDZ9Zx&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.milkjpg.com/galileo/657723-f8bb080369cfe31efb2c4d02bedbc5e9.gif)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">一个长期喝土蜂蜜的人,竟然变成了这样,再忙也要看一下</info-div>
<info-div class="singleImage-desc">科技 · 鹓鶵</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'GNKXx7',
placeholderId: "three_ad33",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/weixin_39799839/article/details/78771989,BlogCommendFromQuerySearch_33,index_33&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/weixin_39799839/article/details/78771989,BlogCommendFromQuerySearch_33,index_33&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/weixin_39799839/article/details/78771989" target="_blank" title="SRS 代码分析【RTMP Chunck数据读取】">
<h4 class="text-truncate oneline" style="width: 552px;">
SRS 代码分析【RTMP Chunck数据读取】 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">12-11</span>
<span class="read-num hover-hide">
阅读数
706</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/weixin_39799839/article/details/78771989" target="_blank" title="SRS 代码分析【RTMP Chunck数据读取】">
<span class="desc oneline">1.RTMPChunck流读取主要是调用SrsProtocol::recv_interlaced_message,该函数的定义如下:intSrsProtocol::recv_interlaced_me...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/weixin_39799839">来自: <span class="blog_title"> SK的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061215,BlogCommendFromQuerySearch_34,index_34&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061215,BlogCommendFromQuerySearch_34,index_34&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061215" target="_blank" title="LibRTMP源代码分析6:建立网络流(NetStream)">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>6:建立网络流(NetStream) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-23</span>
<span class="read-num hover-hide">
阅读数
2200</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061215" target="_blank" title="LibRTMP源代码分析6:建立网络流(NetStream)">
<span class="desc oneline">转载自:http://nkwavelet.blog.163.com/blog/static/227756038201412124828594/建立了RTMP网络连接之后,客户端发送createStre...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/tongjing524">来自: <span class="blog_title"> tongjing524的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/15814587,BlogCommendFromQuerySearch_35,index_35&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/15814587,BlogCommendFromQuerySearch_35,index_35&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/15814587" target="_blank" title="[总结]RTMP流媒体技术零基础学习方法">
<h4 class="text-truncate oneline" style="width: 552px;">
[总结]RTMP流媒体技术零基础学习方法 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-18</span>
<span class="read-num hover-hide">
阅读数
10</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/15814587" target="_blank" title="[总结]RTMP流媒体技术零基础学习方法">
<span class="desc oneline">本文主要总结一些我在学习RTMP流媒体技术过程中积累的经验。也为后来学习RTMP流媒体技术的人们一个参考。本文力图从简到难,循序渐进的介绍RTMP流媒体技术的方方面面,先从应用说起,逐步深化剖析相关工...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/byxdaz/article/details/53993791,BlogCommendFromQuerySearch_36,index_36&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/byxdaz/article/details/53993791,BlogCommendFromQuerySearch_36,index_36&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/byxdaz/article/details/53993791" target="_blank" title="librtmp获取视频流和音频流1">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>获取视频流和音频流1 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-03</span>
<span class="read-num hover-hide">
阅读数
3444</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/byxdaz/article/details/53993791" target="_blank" title="librtmp获取视频流和音频流1">
<span class="desc oneline">libRTMP从RTMP包中获取音频和视频数据。</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/byxdaz">来自: <span class="blog_title"> 深之JohnChen的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/gengxt2003/article/details/51678565,BlogCommendFromQuerySearch_37,index_37&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/gengxt2003/article/details/51678565,BlogCommendFromQuerySearch_37,index_37&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gengxt2003/article/details/51678565" target="_blank" title="用librtmp 接收数据">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em> 接收数据 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-15</span>
<span class="read-num hover-hide">
阅读数
1753</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gengxt2003/article/details/51678565" target="_blank" title="用librtmp 接收数据">
<span class="desc oneline">使用librtmp接收数据时,需要注意的几个问题。</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/gengxt2003">来自: <span class="blog_title"> 为了理想而奋斗</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_66" data-pid="66" data-track-view="{&quot;mod&quot;:&quot;kp_popu_66-808&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_66-808&quot;,&quot;con&quot;:&quot;,,&quot;}"><iframe style="width: 100%; height: 60px; border: 0px none;" scrolling="no"></iframe></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/coloriy/article/details/47108713,BlogCommendFromQuerySearch_38,index_38&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/coloriy/article/details/47108713,BlogCommendFromQuerySearch_38,index_38&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/coloriy/article/details/47108713" target="_blank" title="librtmp使用实例">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>使用实例 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-29</span>
<span class="read-num hover-hide">
阅读数
1225</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/coloriy/article/details/47108713" target="_blank" title="librtmp使用实例">
<span class="desc oneline">20140826修改修改源码原C++改为CUnix下编译通过(CentOS6.5)下载文件会有VC6和Unix两个文件夹////////////////////////////////////////...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/coloriy">来自: <span class="blog_title"> 专注流媒体技术与方案!</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/weixin_36983723/10743776,BlogCommendFromQuerySearch_39,index_39&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/weixin_36983723/10743776,BlogCommendFromQuerySearch_39,index_39&quot;}" data-flg="true">
<a href="https://download.csdn.net/download/weixin_36983723/10743776" target="_blank">
<div class="content clearfix">
<div class="">
<h4 class="text-truncate oneline clearfix">
<em>librtmp</em>库实测可在Linux下进行交叉编译 </h4>
<span class="data float-right">10-25</span>
</div>
<div class="desc oneline">
rtmpdump里面的librtmp库,实测可在Linux下进行交叉编译 </div>
<span class="type-show type-show-download">下载</span>
</div>
</a>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/jbl5501328/article/details/65628516,BlogCommendFromQuerySearch_40,index_40&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/jbl5501328/article/details/65628516,BlogCommendFromQuerySearch_40,index_40&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/jbl5501328/article/details/65628516" target="_blank" title="通过LIBRTMP发送H264和AAC">
<h4 class="text-truncate oneline" style="width: 552px;">
通过<em>LIBRTMP</em>发送H264和AAC </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">03-24</span>
<span class="read-num hover-hide">
阅读数
1143</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/jbl5501328/article/details/65628516" target="_blank" title="通过LIBRTMP发送H264和AAC">
<span class="desc oneline">H264视频通过RTMP发送&nbsp;&nbsp;&nbsp;&nbsp;题外话,通过RTSP(RealTimeStreamingProtocol)的方式来实现视频的直播,但RTSP方式的一个弊端是如果需要支持客户端通过网页来访问,就需要...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/jbl5501328">来自: <span class="blog_title"> jbl5501328的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u014765213/article/details/82656846,BlogCommendFromQuerySearch_41,index_41&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u014765213/article/details/82656846,BlogCommendFromQuerySearch_41,index_41&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u014765213/article/details/82656846" target="_blank" title="librtmp 64位编译过程">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em> 64位编译过程 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-12</span>
<span class="read-num hover-hide">
阅读数
177</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u014765213/article/details/82656846" target="_blank" title="librtmp 64位编译过程">
<span class="desc oneline">编译方式:1.mingw,2.visualstudio编译工具编译;说明:1.mingw的方法比较简单,下载64位的mingw,新版的mingw和msys是分开的,但是不影响,配置好环境变量,进入ms...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u014765213">来自: <span class="blog_title"> u014765213的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/STN_LCD/article/details/72903226,BlogCommendFromQuerySearch_42,index_42&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/STN_LCD/article/details/72903226,BlogCommendFromQuerySearch_42,index_42&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/STN_LCD/article/details/72903226" target="_blank" title="最简单的基于librtmp的示例:发布H.264(H.264通过RTMP发布)——雷神经典">
<h4 class="text-truncate oneline" style="width: 552px;">
最简单的基于<em>librtmp</em>的示例:发布H.264(H.264通过RTMP发布)——雷神经典 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-07</span>
<span class="read-num hover-hide">
阅读数
1060</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/STN_LCD/article/details/72903226" target="_blank" title="最简单的基于librtmp的示例:发布H.264(H.264通过RTMP发布)——雷神经典">
<span class="desc oneline">http://blog.csdn.net/leixiaohua1020/article/details/42105049版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]======...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/STN_LCD">来自: <span class="blog_title"> STN_LCD的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_67" data-pid="67" data-track-view="{&quot;mod&quot;:&quot;kp_popu_67-808&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_67-808&quot;,&quot;con&quot;:&quot;,,&quot;}"><iframe style="width: 100%; height: 60px; border: 0px none;" scrolling="no"></iframe></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/fteworld/article/details/51171731,BlogCommendFromQuerySearch_43,index_43&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/fteworld/article/details/51171731,BlogCommendFromQuerySearch_43,index_43&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/fteworld/article/details/51171731" target="_blank" title="librtmp免openssl和zlib单独编译">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>免openssl和zlib单独编译 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">04-17</span>
<span class="read-num hover-hide">
阅读数
2166</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/fteworld/article/details/51171731" target="_blank" title="librtmp免openssl和zlib单独编译">
<span class="desc oneline">通常情况下我们只会用rtmp协议测试直播流,很少直接测试rtmps等需要加密的协议,为了加快开发速度可以简单的编译librtmp不用依赖openssl和zlib。&nbsp;笔者使用的linux环境编译,win...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/fteworld">来自: <span class="blog_title"> fteworld的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/wangxing1231/8498829,BlogCommendFromQuerySearch_44,index_44&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/wangxing1231/8498829,BlogCommendFromQuerySearch_44,index_44&quot;}" data-flg="true">
<a href="https://download.csdn.net/download/wangxing1231/8498829" target="_blank">
<div class="content clearfix">
<div class="">
<h4 class="text-truncate oneline clearfix">
<em>librtmp</em>静态库(32位和64位) </h4>
<span class="data float-right">03-13</span>
</div>
<div class="desc oneline">
librtmp静态库 (32位和64位) </div>
<span class="type-show type-show-download">下载</span>
</div>
</a>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/weixin_36983723/article/details/83542415,BlogCommendFromQuerySearch_45,index_45&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/weixin_36983723/article/details/83542415,BlogCommendFromQuerySearch_45,index_45&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/weixin_36983723/article/details/83542415" target="_blank" title="基于librtmp的直播推流方案">
<h4 class="text-truncate oneline" style="width: 552px;">
基于<em>librtmp</em>的直播推流方案 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-30</span>
<span class="read-num hover-hide">
阅读数
191</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/weixin_36983723/article/details/83542415" target="_blank" title="基于librtmp的直播推流方案">
<span class="desc oneline">最近在做关于rtmp直播推流的项目,本身对rtmp也是一窍不通的,关于连接封装方面的资料也是看了很多,软件实现还是没有什么头绪,在看了雷神的基于librtmp的例子后(https://blog.csd...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/weixin_36983723">来自: <span class="blog_title"> weixin_36983723的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/LinChengChun/article/details/78962664,BlogCommendFromQuerySearch_46,index_46&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/LinChengChun/article/details/78962664,BlogCommendFromQuerySearch_46,index_46&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/LinChengChun/article/details/78962664" target="_blank" title="librtmp开源库与android平台编译记录">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>开源库与android平台编译记录 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-03</span>
<span class="read-num hover-hide">
阅读数
1025</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/LinChengChun/article/details/78962664" target="_blank" title="librtmp开源库与android平台编译记录">
<span class="desc oneline">一、编写目的为了记录编译librtmp开源库过程遇到的问题,帮助后来人提供参考,希望本文能为大家提供参考。二、简介(官方介绍)TheReal-TimeMessagingProtocol(RTMP)is...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/LinChengChun">来自: <span class="blog_title"> LinChengChun的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq_29214249/article/details/70859671,BlogCommendFromQuerySearch_47,index_47&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq_29214249/article/details/70859671,BlogCommendFromQuerySearch_47,index_47&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq_29214249/article/details/70859671" target="_blank" title="linux下基于libRTMP的接收流媒体的程序">
<h4 class="text-truncate oneline" style="width: 552px;">
linux下基于<em>libRTMP</em>的接收流媒体的程序 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">04-27</span>
<span class="read-num hover-hide">
阅读数
647</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq_29214249/article/details/70859671" target="_blank" title="linux下基于libRTMP的接收流媒体的程序">
<span class="desc oneline">看了雷博的一篇关于rtmp的文章,学习记录以作备忘。使用librtmp接收RTMP流的函数执行流程图如下图:流程图中关键函数的作用如下所列:InitSockets():初始化SocketRTMP_Al...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/qq_29214249">来自: <span class="blog_title"> 狗尾巴草的一亩三分地儿</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_68" data-pid="68" data-track-view="{&quot;mod&quot;:&quot;kp_popu_68-808&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_68-808&quot;,&quot;con&quot;:&quot;,,&quot;}"><iframe style="width: 100%; height: 0px; border: 0px none;" scrolling="no"></iframe></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/lby978232/article/details/60746185,BlogCommendFromQuerySearch_48,index_48&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/lby978232/article/details/60746185,BlogCommendFromQuerySearch_48,index_48&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/lby978232/article/details/60746185" target="_blank" title="librtmp 日志的修改和操作">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em> 日志的修改和操作 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">03-07</span>
<span class="read-num hover-hide">
阅读数
590</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/lby978232/article/details/60746185" target="_blank" title="librtmp 日志的修改和操作">
<span class="desc oneline">http://www.th7.cn/Program/Android/201607/901613.shtml</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/lby978232">来自: <span class="blog_title"> gate0088的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hjwang1/article/details/11711263,BlogCommendFromQuerySearch_49,index_49&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hjwang1/article/details/11711263,BlogCommendFromQuerySearch_49,index_49&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hjwang1/article/details/11711263" target="_blank" title="实时视频在网页直播--windows下编译librtmp、rtmpdump">
<h4 class="text-truncate oneline" style="width: 552px;">
实时视频在网页直播--windows下编译<em>librtmp</em>、rtmpdump </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-15</span>
<span class="read-num hover-hide">
阅读数
1537</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hjwang1/article/details/11711263" target="_blank" title="实时视频在网页直播--windows下编译librtmp、rtmpdump">
<span class="desc oneline">转自:http://zhaostudy2.blog.163.com/blog/static/1353502052011182538414/这段时间做实时视频的网页直播遇到了很多困难。&nbsp;&nbsp;&nbsp;开始时,迫于...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/hjwang1">来自: <span class="blog_title"> hjwang1的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/memoryjs/article/details/23993545,BlogCommendHotData_0,index_50&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/memoryjs/article/details/23993545,BlogCommendHotData_0,index_50&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/memoryjs/article/details/23993545" target="_blank" title="MTK平台安卓手机性能测试方法">
<h4 class="text-truncate oneline" style="width: 552px;">
MTK平台安卓手机性能测试方法 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">04-18</span>
<span class="read-num hover-hide">
阅读数
9107</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/memoryjs/article/details/23993545" target="_blank" title="MTK平台安卓手机性能测试方法">
<span class="desc oneline">笔者这段时间测试安卓手机,安卓手机的性能大家都知道了,用的时间长了就是卡,慢,需要刷机,而就算新买来的手机,偶尔滑动也有些卡顿,这次我就自己的测试方法,从开机时间,主页滑动的刷新频率,应用第一次启动速...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/memoryjs">来自: <span class="blog_title"> memoryjs的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/llxsharp/article/details/3888030,BlogCommendHotData_1,index_51&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/llxsharp/article/details/3888030,BlogCommendHotData_1,index_51&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/llxsharp/article/details/3888030" target="_blank" title="忘记Oracle数据库管理员密码的解决办法">
<h4 class="text-truncate oneline" style="width: 552px;">
忘记Oracle数据库管理员密码的解决办法 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-13</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/llxsharp/article/details/3888030" target="_blank" title="忘记Oracle数据库管理员密码的解决办法">
<span class="desc oneline">安装oracle 9i后,居然把刚刚更改的数据库管理员密码给忘了,又不重新安装,太麻烦了,试了好久,终于修改成功了。1、运行到C盘根目录2、输入:SET ORACLE_SID = 你的SID名称3、输...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/llxsharp">来自: <span class="blog_title"> llxsharp的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011430225/article/details/54288184,BlogCommendHotData_2,index_52&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011430225/article/details/54288184,BlogCommendHotData_2,index_52&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011430225/article/details/54288184" target="_blank" title="QT选择目录等常用文件/文件夹操作">
<h4 class="text-truncate oneline" style="width: 552px;">
QT选择目录等常用文件/文件夹操作 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-09</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011430225/article/details/54288184" target="_blank" title="QT选择目录等常用文件/文件夹操作">
<span class="desc oneline">QT 创建文件夹 bool QDir::mkdir ( const QString &amp;amp; dirName ) const
创建一个子目录名为目录名。[喝小酒的网摘]http://blog....</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u011430225">来自: <span class="blog_title"> K7的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xue_mind/article/details/52959107,BlogCommendHotData_3,index_53&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xue_mind/article/details/52959107,BlogCommendHotData_3,index_53&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xue_mind/article/details/52959107" target="_blank" title="java电商面试介绍">
<h4 class="text-truncate oneline" style="width: 552px;">
java电商面试介绍 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-28</span>
<span class="read-num hover-hide">
阅读数
3万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xue_mind/article/details/52959107" target="_blank" title="java电商面试介绍">
<span class="desc oneline">在青岛做了两年开发,大大小小参与过三个项目的开发,一个是某公司内部的人员管理系统,一个是物流项目,最近做的是一个电商项目。前两个项目采用的是ssh框架搭建的,最近的项目采用的是ssm框架搭建的。在实际...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/xue_mind">来自: <span class="blog_title"> x_minde</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/Luck_ZZ/article/details/79361497,BlogCommendHotData_4,index_54&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/Luck_ZZ/article/details/79361497,BlogCommendHotData_4,index_54&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Luck_ZZ/article/details/79361497" target="_blank" title="thymeleaf模板实现html5标签的非严格检查">
<h4 class="text-truncate oneline" style="width: 552px;">
thymeleaf模板实现html5标签的非严格检查 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-24</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Luck_ZZ/article/details/79361497" target="_blank" title="thymeleaf模板实现html5标签的非严格检查">
<span class="desc oneline">一、概述最近在springboot项目引入thymeleaf模板时,使用非严格标签时,运行会报错。默认thymeleaf模板对html5标签是严格检查的。二、在项目中加NekoHTML库在Maven中...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/Luck_ZZ">来自: <span class="blog_title"> Luck_ZZ的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/meng564764406/article/details/52444644,BlogCommendHotData_5,index_55&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/meng564764406/article/details/52444644,BlogCommendHotData_5,index_55&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/meng564764406/article/details/52444644" target="_blank" title="将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化">
<h4 class="text-truncate oneline" style="width: 552px;">
将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-05</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/meng564764406/article/details/52444644" target="_blank" title="将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化">
<span class="desc oneline">本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/meng564764406">来自: <span class="blog_title"> Lynn_Blog</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/roguesir/article/details/77104246,BlogCommendHotData_6,index_56&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/roguesir/article/details/77104246,BlogCommendHotData_6,index_56&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/roguesir/article/details/77104246" target="_blank" title="人脸检测工具face_recognition的安装与应用">
<h4 class="text-truncate oneline" style="width: 552px;">
人脸检测工具face_recognition的安装与应用 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">08-11</span>
<span class="read-num hover-hide">
阅读数
3万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/roguesir/article/details/77104246" target="_blank" title="人脸检测工具face_recognition的安装与应用">
<span class="desc oneline">人脸检测工具face_recognition的安装与应用</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/roguesir">来自: <span class="blog_title"> roguesir的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011860731/article/details/48733073,BlogCommendHotData_7,index_57&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011860731/article/details/48733073,BlogCommendHotData_7,index_57&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011860731/article/details/48733073" target="_blank" title="ThreadLocal的设计理念与作用">
<h4 class="text-truncate oneline" style="width: 552px;">
ThreadLocal的设计理念与作用 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-25</span>
<span class="read-num hover-hide">
阅读数
3万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011860731/article/details/48733073" target="_blank" title="ThreadLocal的设计理念与作用">
<span class="desc oneline">Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的Thread...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u011860731">来自: <span class="blog_title"> u011860731的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wuchengzeng/article/details/50037611,BlogCommendHotData_8,index_58&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wuchengzeng/article/details/50037611,BlogCommendHotData_8,index_58&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wuchengzeng/article/details/50037611" target="_blank" title="jquery/js实现一个网页同时调用多个倒计时(最新的)">
<h4 class="text-truncate oneline" style="width: 552px;">
jquery/js实现一个网页同时调用多个倒计时(最新的) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-25</span>
<span class="read-num hover-hide">
阅读数
26万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wuchengzeng/article/details/50037611" target="_blank" title="jquery/js实现一个网页同时调用多个倒计时(最新的)">
<span class="desc oneline">jquery/js实现一个网页同时调用多个倒计时(最新的)
最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!
//js
...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wuchengzeng">来自: <span class="blog_title"> websites</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq_36892341/article/details/73918672,BlogCommendHotData_9,index_59&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq_36892341/article/details/73918672,BlogCommendHotData_9,index_59&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq_36892341/article/details/73918672" target="_blank" title="linux上安装Docker(非常简单的安装方法)">
<h4 class="text-truncate oneline" style="width: 552px;">
linux上安装Docker(非常简单的安装方法) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-29</span>
<span class="read-num hover-hide">
阅读数
14万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq_36892341/article/details/73918672" target="_blank" title="linux上安装Docker(非常简单的安装方法)">
<span class="desc oneline">最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗!
Docker的三大核心概念:镜像、容器、仓库
镜像:类似虚拟机的镜像、用俗话说就是安装文件。
容器:类似一个轻量...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/qq_36892341">来自: <span class="blog_title"> 我走小路的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/Ape55/article/details/73530419,BlogCommendHotData_10,index_60&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/Ape55/article/details/73530419,BlogCommendHotData_10,index_60&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Ape55/article/details/73530419" target="_blank" title="plsql的命令(command)窗口与sql窗口有什么区别20170620">
<h4 class="text-truncate oneline" style="width: 552px;">
plsql的命令(command)窗口与sql窗口有什么区别20170620 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-21</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Ape55/article/details/73530419" target="_blank" title="plsql的命令(command)窗口与sql窗口有什么区别20170620">
<span class="desc oneline">command窗口是命令窗口,即为sqplus窗口,有命令提示符,识别sqlplus命令,基本的命令都可以执行
sql仅可执行DDL、select、DML等...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/Ape55">来自: <span class="blog_title"> Ape55的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wwwqjpcom/article/details/51232302,BlogCommendHotData_11,index_61&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wwwqjpcom/article/details/51232302,BlogCommendHotData_11,index_61&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wwwqjpcom/article/details/51232302" target="_blank" title="Selenium Webdriver重新使用已打开的浏览器实例">
<h4 class="text-truncate oneline" style="width: 552px;">
Selenium Webdriver重新使用已打开的浏览器实例 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">04-24</span>
<span class="read-num hover-hide">
阅读数
2万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wwwqjpcom/article/details/51232302" target="_blank" title="Selenium Webdriver重新使用已打开的浏览器实例">
<span class="desc oneline">2018-2-10更新:
新增了适用于Selenium3.8.1+FireFox57的Python版本的实现
https://github.com/ANBUZHIDAO/myFirefoxDr...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wwwqjpcom">来自: <span class="blog_title"> wwwqjpcom的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/themagickeyjianan/article/details/52386981,BlogCommendHotData_12,index_62&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/themagickeyjianan/article/details/52386981,BlogCommendHotData_12,index_62&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/themagickeyjianan/article/details/52386981" target="_blank" title="python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理)">
<h4 class="text-truncate oneline" style="width: 552px;">
python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">08-31</span>
<span class="read-num hover-hide">
阅读数
2万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/themagickeyjianan/article/details/52386981" target="_blank" title="python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理)">
<span class="desc oneline">1.从pyCharm提示下载PIL包
&nbsp;http://www.pythonware.com/products/pil/
&nbsp;
2.解压后,进入到目录下
cd /Users/jianan/Dow...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/themagickeyjianan">来自: <span class="blog_title"> 专注于cocos+unity+服务器全栈</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xiejiashu/article/details/34434669,BlogCommendHotData_13,index_63&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xiejiashu/article/details/34434669,BlogCommendHotData_13,index_63&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xiejiashu/article/details/34434669" target="_blank" title="用live555将内网摄像机视频推送到外网服务器,附源码">
<h4 class="text-truncate oneline" style="width: 552px;">
用live555将内网摄像机视频推送到外网服务器,附源码 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-25</span>
<span class="read-num hover-hide">
阅读数
2万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xiejiashu/article/details/34434669" target="_blank" title="用live555将内网摄像机视频推送到外网服务器,附源码">
<span class="desc oneline">最近很多人问,如何将内网的摄像机流媒体数据发布到公网,如果用公网与局域网间的端口映射方式太过麻烦,一个摄像机要做一组映射,而且不是每一个局域网都是有固定ip地址,即使外网主机配置好了每一个摄像机的映射...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/xiejiashu">来自: <span class="blog_title"> Babosa的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq574857122/article/details/16361033,BlogCommendHotData_14,index_64&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq574857122/article/details/16361033,BlogCommendHotData_14,index_64&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq574857122/article/details/16361033" target="_blank" title="强连通分量及缩点tarjan算法解析">
<h4 class="text-truncate oneline" style="width: 552px;">
强连通分量及缩点tarjan算法解析 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-16</span>
<span class="read-num hover-hide">
阅读数
39万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq574857122/article/details/16361033" target="_blank" title="强连通分量及缩点tarjan算法解析">
<span class="desc oneline">强连通分量:
简言之 就是找环(每条边只走一次,两两可达)
孤立的一个点也是一个连通分量
&nbsp;
使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)
&nbsp;
定义:
int Ti...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/qq574857122">来自: <span class="blog_title"> 九野的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/jimmy609/article/details/12748053,BlogCommendHotData_15,index_65&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/jimmy609/article/details/12748053,BlogCommendHotData_15,index_65&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/jimmy609/article/details/12748053" target="_blank" title="iText和flying saucer结合生成pdf的技术">
<h4 class="text-truncate oneline" style="width: 552px;">
iText和flying saucer结合生成pdf的技术 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-15</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/jimmy609/article/details/12748053" target="_blank" title="iText和flying saucer结合生成pdf的技术">
<span class="desc oneline">原博文地址
http://blog.csdn.net/shanliangliuxing/article/details/6833471
下面是我自己利用flying sau...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/jimmy609">来自: <span class="blog_title"> jimmy609的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u013512448/article/details/52527237,BlogCommendHotData_16,index_66&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u013512448/article/details/52527237,BlogCommendHotData_16,index_66&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u013512448/article/details/52527237" target="_blank" title="如何生成OBB(OrientedboundingBox)方向包围盒">
<h4 class="text-truncate oneline" style="width: 552px;">
如何生成OBB(OrientedboundingBox)方向包围盒 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-13</span>
<span class="read-num hover-hide">
阅读数
4466</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u013512448/article/details/52527237" target="_blank" title="如何生成OBB(OrientedboundingBox)方向包围盒">
<span class="desc oneline">一、包围盒简介:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 包围盒是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤(即当包围体碰撞,才进行精确碰撞检...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u013512448">来自: <span class="blog_title"> 二极管具有单向导电性</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hero_fantao/article/details/34533533,BlogCommendHotData_17,index_67&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hero_fantao/article/details/34533533,BlogCommendHotData_17,index_67&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hero_fantao/article/details/34533533" target="_blank" title="连续特征离散化和归一化">
<h4 class="text-truncate oneline" style="width: 552px;">
连续特征离散化和归一化 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-25</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hero_fantao/article/details/34533533" target="_blank" title="连续特征离散化和归一化">
<span class="desc oneline">连续特征进行离散化处理。</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/hero_fantao">来自: <span class="blog_title"> hero_fantao的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wangjun_pfc/article/details/3827631,BlogCommendHotData_18,index_68&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wangjun_pfc/article/details/3827631,BlogCommendHotData_18,index_68&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wangjun_pfc/article/details/3827631" target="_blank" title="修改mysql数据库的默认编码方式">
<h4 class="text-truncate oneline" style="width: 552px;">
修改mysql数据库的默认编码方式 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-18</span>
<span class="read-num hover-hide">
阅读数
5万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wangjun_pfc/article/details/3827631" target="_blank" title="修改mysql数据库的默认编码方式">
<span class="desc oneline">修改my.ini文件加上default-character-set=gb2312设定数据库字符集alter database da_name default character set charset...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wangjun_pfc">来自: <span class="blog_title"> 血色残阳的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/terry_water/article/details/39377255,BlogCommendHotData_19,index_69&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/terry_water/article/details/39377255,BlogCommendHotData_19,index_69&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/terry_water/article/details/39377255" target="_blank" title="file_get_contents 得到https类型url失败的方法">
<h4 class="text-truncate oneline" style="width: 552px;">
file_get_contents 得到https类型url失败的方法 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-18</span>
<span class="read-num hover-hide">
阅读数
8327</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/terry_water/article/details/39377255" target="_blank" title="file_get_contents 得到https类型url失败的方法">
<span class="desc oneline">把file
function getSSLPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSF...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/terry_water">来自: <span class="blog_title"> Terry - 专注外贸B2C</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/gsycwh/article/details/52098097,BlogCommendHotData_20,index_70&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/gsycwh/article/details/52098097,BlogCommendHotData_20,index_70&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gsycwh/article/details/52098097" target="_blank" title="WEB-INF下的jsp文件如何访问css和js文件">
<h4 class="text-truncate oneline" style="width: 552px;">
WEB-INF下的jsp文件如何访问css和js文件 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">08-02</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gsycwh/article/details/52098097" target="_blank" title="WEB-INF下的jsp文件如何访问css和js文件">
<span class="desc oneline">今天帮一个同学找出了web项目问题的原因,这个问题是关于WEB-INF下的jsp文件如何访问css和js文件。先看一下文件的大致位置(jsp与css文件都同处WEB-INF内):该同学想WEB-INF...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/gsycwh">来自: <span class="blog_title"> 梦想的边缘</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hanminaaa/article/details/52534666,BlogCommendHotData_21,index_71&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hanminaaa/article/details/52534666,BlogCommendHotData_21,index_71&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hanminaaa/article/details/52534666" target="_blank" title="ArcGIS VS QGIS——两者之间的27点比较上篇(译)">
<h4 class="text-truncate oneline" style="width: 552px;">
ArcGIS VS QGIS——两者之间的27点比较上篇(译) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-14</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hanminaaa/article/details/52534666" target="_blank" title="ArcGIS VS QGIS——两者之间的27点比较上篇(译)">
<span class="desc oneline">本文是笔者刚刚接触QGIS相关博客资源时找到的一篇文章,全文比较长,因此分成两篇发布。就内容而言不代表笔者观点,留待后续一一验证。QGIS和ArcGIS的比较你也许伴随着ArcGIS或者QGIS而成长...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/hanminaaa">来自: <span class="blog_title"> 番茄园</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/nicolas_li/article/details/50724153,BlogCommendHotData_22,index_72&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/nicolas_li/article/details/50724153,BlogCommendHotData_22,index_72&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/nicolas_li/article/details/50724153" target="_blank" title="JAVA结合testng断言verify(断言失败不中断继续执行)">
<h4 class="text-truncate oneline" style="width: 552px;">
JAVA结合testng断言verify(断言失败不中断继续执行) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-23</span>
<span class="read-num hover-hide">
阅读数
6286</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/nicolas_li/article/details/50724153" target="_blank" title="JAVA结合testng断言verify(断言失败不中断继续执行)">
<span class="desc oneline">
原理:
1.自已构造一个断言类,把Assert.assertEquals给try catch住。
2.利用testng的监听类在测试方法运行结束后进行分析。
代码:
断言类:
...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/nicolas_li">来自: <span class="blog_title"> nicolas_li的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/gefangshuai/article/details/50328451,BlogCommendHotData_23,index_73&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/gefangshuai/article/details/50328451,BlogCommendHotData_23,index_73&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gefangshuai/article/details/50328451" target="_blank" title="关于SpringBoot bean无法注入的问题(与文件包位置有关)">
<h4 class="text-truncate oneline" style="width: 552px;">
关于SpringBoot bean无法注入的问题(与文件包位置有关) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">12-16</span>
<span class="read-num hover-hide">
阅读数
11万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gefangshuai/article/details/50328451" target="_blank" title="关于SpringBoot bean无法注入的问题(与文件包位置有关)">
<span class="desc oneline">问题场景描述整个项目通过Maven构建,大致结构如下:
核心Spring框架一个module spring-boot-base
service和dao一个module server-core
提供系统...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/gefangshuai">来自: <span class="blog_title"> 开发随笔</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/VBcom/article/details/7245186,BlogCommendHotData_24,index_74&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/VBcom/article/details/7245186,BlogCommendHotData_24,index_74&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/VBcom/article/details/7245186" target="_blank" title="DirectX修复工具增强版">
<h4 class="text-truncate oneline" style="width: 552px;">
DirectX修复工具增强版 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-09</span>
<span class="read-num hover-hide">
阅读数
184万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/VBcom/article/details/7245186" target="_blank" title="DirectX修复工具增强版">
<span class="desc oneline">最后更新:2018-12-20
DirectX修复工具最新版:DirectX Repair V3.8 增强版&nbsp;&nbsp;NEW!
版本号:V3.8.0.11638
大小: 107MB/7z格式压缩,18...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/VBcom">来自: <span class="blog_title"> VBcom的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box type_hot_word">
<div class="content clearfix" style="width: 712px;">
<div class="word float-left">
<span>
<a href="https://edu.csdn.net/courses/o5329_s5330_k" target="_blank">
机器学习 </a></span>
<span>
<a href="https://edu.csdn.net/courses/o5329_s5330_k" target="_blank">
机器学习课程 </a></span>
<span>
<a href="https://edu.csdn.net/courses/o5329_s5330_k" target="_blank">
机器学习教程 </a></span>
<span>
<a href="https://edu.csdn.net/combos/o5329_s5331_l0_t" target="_blank">
深度学习视频教程 </a></span>
<span>
<a href="https://edu.csdn.net/combos/o5329_s5331_l0_t" target="_blank">
深度学习学习 </a></span>
</div>
</div>
<div class="content clearfix" style="width: 712px;">
<div class="float-left">
<span>
<a href="https://www.csdn.net/gather_21/MtTakg5sMDM3Ny1ibG9n.html" target="_blank">
android应用程序启动过程源代码分析</a>
</span>
<span>
<a href="https://www.csdn.net/gather_2a/MtzaQgzsNTMtYmxvZwO0O0OO0O0O.html" target="_blank">
c++ librtmp 封装</a>
</span>
<span>
<a href="https://www.csdn.net/gather_2d/MtzaMg3sNzMtYmxvZwO0O0OO0O0O.html" target="_blank">
c++生成-1到1</a>
</span>
<span>
<a href="https://www.csdn.net/gather_29/NtTagg0sMjAtYmxvZwO0O0OO0O0O.html" target="_blank">
c++生成-1到1随机数</a>
</span>
<span>
<a href="https://www.csdn.net/gather_2c/NtDaggysNzktYmxvZwO0O0OO0O0O.html" target="_blank">
c++argv【1】</a>
</span>
<span>
<a href="https://www.csdn.net/gather_4a/NtDaAgwsLWVkdQO0O0OO0O0O.html" target="_blank">
1个月python培训机构</a>
</span>
<span>
<a href="https://www.csdn.net/gather_4a/MtSa1glsZHUO0O0O.html" target="_blank">
python教程+chm</a>
</span>
</div>
</div>
</div>
<div class="recommend-loading-box">
<img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/feedLoading.gif">
</div>
<div class="recommend-end-box">
<p class="text-center">没有更多推荐了,<a href="https://blog.csdn.net/" class="c-blue c-blue-hover c-blue-focus">返回首页</a></p>
</div>
</div>
</main>
<aside>
<div id="asideProfile" class="aside-box">
<!-- <h3 class="aside-title">个人资料</h3> -->
<div class="profile-intro d-flex">
<div class="avatar-box d-flex justify-content-center flex-column">
<a href="https://blog.csdn.net/wongainia158158">
<img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_wongainia158158.gif" class="avatar_pic">
</a>
</div>
<div class="user-info d-flex justify-content-center flex-column">
<p class="name csdn-tracking-statistics tracking-click" data-mod="popu_379">
<a href="https://blog.csdn.net/wongainia158158" target="_blank" class="" id="uid">wongainia158158</a>
</p>
</div>
<div class="opt-box d-flex justify-content-center flex-column">
<span class="csdn-tracking-statistics tracking-click" data-mod="popu_379">
<a class="btn btn-sm btn-red-hollow attention" id="btnAttent" target="_blank">关注</a>
</span>
</div>
</div>
<div class="data-info d-flex item-tiling">
<dl class="text-center" title="24">
<dt><a href="https://blog.csdn.net/wongainia158158?t=1">原创</a></dt>
<dd><a href="https://blog.csdn.net/wongainia158158?t=1"><span class="count">24</span></a></dd>
</dl>
<dl class="text-center" id="fanBox" title="3">
<dt>粉丝</dt>
<dd><span class="count" id="fan">3</span></dd>
</dl>
<dl class="text-center" title="0">
<dt>喜欢</dt>
<dd><span class="count">0</span></dd>
</dl>
<dl class="text-center" title="0">
<dt>评论</dt>
<dd><span class="count">0</span></dd>
</dl>
</div>
<div class="grade-box clearfix">
<dl>
<dt>等级:</dt>
<dd>
<a href="https://blog.csdn.net/home/help.html#level" title="2级,点击查看等级说明" target="_blank">
<svg class="icon icon-level" aria-hidden="true">
<use xlink:href="#csdnc-bloglevel-2"></use>
</svg>
</a>
</dd>
</dl>
<dl>
<dt>访问:</dt>
<dd title="16500">
1万+ </dd>
</dl>
<dl>
<dt>积分:</dt>
<dd title="430">
430 </dd>
</dl>
<dl title="145284">
<dt>排名:</dt>
<dd>14万+</dd>
</dl>
</div>
<div class="badge-box d-flex">
<span>勋章:</span>
<div class="icon-badge" title="持之以恒">
<div class="mouse-box">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-m-lasting"></use>
</svg>
<div class="icon-arrow"></div>
</div>
<div class="grade-detail-box">
<div class="pos-box">
<div class="left-box d-flex justify-content-center align-items-center flex-column">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-m-lasting"></use>
</svg>
<p>持之以恒</p>
</div>
<div class="right-box d-flex justify-content-center align-items-center">
授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
</div>
</div>
</div>
</div>
<script>
(function ($) {
setTimeout(function(){
$('div.icon-badge.show-moment').removeClass('show-moment');
}, 5000);
})(window.jQuery)
</script>
</div>
</div>
<div class="csdn-tracking-statistics mb8 box-shadow" data-pid="blog" data-mod="popu_4" style="height:250px;">
<div class="aside-content text-center" id="cpro_u2734133">
<div id="kp_box_56" data-pid="56" data-track-click="{&quot;mod&quot;:&quot;kp_popu_56-76&quot;,&quot;con&quot;:&quot;,,&quot;}"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u3032528",
container: s
});
})();
</script><div style="" id="_5v2z3sanuxv"><iframe id="iframeu3032528_0" name="iframeu3032528_0" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/wcfm.htm" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:300px;height:250px" allowtransparency="true" width="300" height="250" frameborder="0" align="center,center"></iframe></div>
<!-- 多条广告如下脚本只需引入一次 -->
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/c.js" async="async" defer="defer"></script></div> </div>
</div>
<div id="asideNewArticle" class="aside-box">
<h3 class="aside-title">最新文章</h3>
<div class="aside-content">
<ul class="inf_list clearfix csdn-tracking-statistics tracking-click" data-mod="popu_382">
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/85222553" target="_blank">React Native性能优化总结</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/49867383" target="_blank">Android 侧滑菜单</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/49801879" target="_blank">xmpp学习</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/49801665" target="_blank">xmpp</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/49800473" target="_blank">解析Lua中关于Metatable学习笔记</a>
</li>
</ul>
</div>
</div>
<div id="asideArchive" class="aside-box flexible-box">
<h3 class="aside-title">归档</h3>
<div class="aside-content">
<ul class="archive-list">
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2018/12">
2018年12月 <span class="count float-right">1篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/11">
2015年11月 <span class="count float-right">4篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/10">
2015年10月 <span class="count float-right">2篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/09">
2015年9月 <span class="count float-right">18篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/08">
2015年8月 <span class="count float-right">1篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/07">
2015年7月 <span class="count float-right">10篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/06">
2015年6月 <span class="count float-right">9篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/05">
2015年5月 <span class="count float-right">2篇</span>
</a>
</li>
</ul>
</div>
<p class="text-center">
<a class="btn btn-link-blue flexible-btn" data-fbox="aside-archive">展开</a>
</p>
</div>
<div id="asideHotArticle" class="aside-box">
<h3 class="aside-title">热门文章</h3>
<div class="aside-content">
<ul class="hotArticle-list csdn-tracking-statistics tracking-click" data-mod="popu_521">
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/48375201" target="_blank">android抓包工具fiddler使用介绍 抓取 手机APP 中资源。</a>
<p class="read">阅读数 <span>799</span></p>
</li>
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/46332121" target="_blank">Android 轻松实现仿QQ空间下拉刷新</a>
<p class="read">阅读数 <span>717</span></p>
</li>
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/48626907" target="_blank">LibRTMP源代码分析6</a>
<p class="read">阅读数 <span>641</span></p>
</li>
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/48625871" target="_blank">LibRTMP源代码分析5:建立网络连接</a>
<p class="read">阅读数 <span>632</span></p>
</li>
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/48345201" target="_blank">日期滚动栏的实现</a>
<p class="read">阅读数 <span>510</span></p>
</li>
</ul>
</div>
</div>
<div id="asideFooter">
<div class="aside-box">
<div id="kp_box_57" data-pid="57" data-track-click="{&quot;mod&quot;:&quot;kp_popu_57-77&quot;,&quot;con&quot;:&quot;,,&quot;}"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u3163270",
container: s
});
})();
</script><div style="" id="_i7pc1uzfvl"><iframe id="iframeu3163270_0" name="iframeu3163270_0" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/wcfm_002.htm" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:300px;height:250px" allowtransparency="true" width="300" height="250" frameborder="0" align="center,center"></iframe></div>
<!-- 多条广告如下脚本只需引入一次 -->
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/c.js" async="async" defer="defer"></script></div> </div>
<div class="aside-box">
<div class="persion_article">
<div class="right_box footer_box csdn-tracking-statistics" data-mod="popu_475" data-dsm="post"> <div class="contact-box" id="footer-contact-box"><div class="img-box"><a href="https://bbs.csdn.net/forums/Service?utm_source=csdn_footer" target="_blank"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/csdn_cs_qr.png" alt="微信客服" style="padding: 6px;"></a><p class="app-text">微信客服</p></div><div class="img-box fr"><a href="http://wpa.b.qq.com/cgi/wpa.php?ln=1&amp;key=XzgwMDE4MDEwNl80ODc3MzVfODAwMTgwMTA2XzJf" target="_blank"><img style="padding:6px;" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/csdn-kf.png" alt="QQ客服"></a><p class="app-text">QQ客服</p></div></div> <div class="contact-info"> <p><svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M2.167 2h11.666C14.478 2 15 2.576 15 3.286v9.428c0 .71-.522 1.286-1.167 1.286H2.167C1.522 14 1 13.424 1 12.714V3.286C1 2.576 1.522 2 2.167 2zm-.164 3v1L8 10l6-4V5L8 9 2.003 5z" fill="#5c5c5c" fill-rule="evenodd"></path></svg><a href="mailto:webmaster@csdn.net" target="_blank"><span class="txt">kefu@csdn.net</span></a> <em class="width126"><svg t="1538013544186" width="17" height="17" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="23556" xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M902.60033922 650.96445566c-18.0718526-100.84369837-94.08399771-166.87723736-94.08399771-166.87723737 10.87530062-91.53186599-28.94715402-107.78733693-28.94715401-107.78733691C771.20003413 93.08221664 517.34798062 98.02553561 511.98620441 98.16348824 506.65661791 98.02553561 252.75857992 93.08221664 244.43541101 376.29988138c0 0-39.79946279 16.25547094-28.947154 107.78733691 0 0-75.98915247 66.03353901-94.0839977 166.87723737 0 0-9.63372291 170.35365477 86.84146124 20.85850523 0 0 21.70461757 56.79068296 61.50407954 107.78733692 0 0-71.1607951 23.19910867-65.11385185 83.46161052 0 0-2.43717093 67.16015592 151.93232126 62.56172014 0 0 108.5460788-8.0932473 141.10300432-52.14626271H526.33792324c32.57991817 44.05301539 141.10300431 52.1462627 141.10300431 52.14626271 154.3235077 4.59843579 151.95071457-62.56172013 151.95071457-62.56172014 6.00095876-60.26250183-65.11385185-83.46161053-65.11385185-83.46161052 39.77647014-50.99665395 61.4810877-107.78733693 61.4810877-107.78733692 96.45219231 149.49514952 86.84146124-20.85850523 86.84146125-20.85850523" p-id="23557" fill="#5c5c5c"></path></svg><a href="http://wpa.b.qq.com/cgi/wpa.php?ln=1&amp;key=XzgwMDE4MDEwNl80ODc3MzVfODAwMTgwMTA2XzJf" class="qqcustomer_s" target="_blank"><span class="txt">QQ客服</span></a></em></p> <p><em class="width126"><svg t="1538012951761" width="17" height="17" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="23083" xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M466.4934485 880.02006511C264.6019863 859.18313878 107.13744214 688.54706608 107.13744214 481.14947309 107.13744214 259.68965394 286.68049114 80.14660493 508.14031029 80.14660493s401.00286817 179.54304901 401.00286814 401.00286816v1.67343191C908.30646249 737.58941724 715.26799489 943.85339507 477.28978337 943.85339507c-31.71423369 0-62.61874229-3.67075386-92.38963569-10.60739903 30.09478346-11.01226158 56.84270313-29.63593923 81.5933008-53.22593095z m-205.13036267-398.87059202a246.77722444 246.77722444 0 0 0 493.5544489 0 30.85052691 30.85052691 0 0 0-61.70105383 0 185.07617062 185.07617062 0 0 1-370.15234125 0 30.85052691 30.85052691 0 0 0-61.70105382 0z" p-id="23084" fill="#5c5c5c"></path></svg><a href="http://bbs.csdn.net/forums/Service" target="_blank"><span class="txt">客服论坛</span></a></em> <svg t="1538013874294" width="17" height="17" style="" viewBox="0 0 1194 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="237
</div>
</div>
</aside>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/publib_footer-1.js" data-isfootertrack="false" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pub_footer_1.css">
<script>
$("a.flexible-btn").click(function(){
$(this).parents('div.aside-box').removeClass('flexible-box');
$(this).remove();
})
</script>
</div>
<div class="mask-dark"></div>
<div id="loginWrap" style="display:none"></div>
<div class="tool-box" style="right: 23.3833px; display: block; top: 48px;">
<ul class="meau-list">
<li class="btn-like-box ">
<button class=" low-height hover-box btn-like " title="点赞">
<svg class="icon active hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup-ok"></use>
</svg>
<svg class="icon no-active hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup"></use>
</svg>
<span class="hover-show text-box text">
<span class="no-active">点赞</span>
<span class="active">取消点赞</span>
</span>
<p>0</p>
</button>
</li>
<li class="">
<a class="btn-comments low-height hover-box" title="写评论" href="#commentBox">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-comments"></use>
</svg>
<span class="hover-show text">评论</span>
<p class="">
</p>
</a>
</li>
<li>
<button class="btn-bookmark low-height hover-box" title="收藏">
<svg class="icon active hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-bookmark-ok"></use>
</svg>
<svg class="icon no-active hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-bookmark"></use>
</svg>
<span class="hover-show text">收藏</span>
<!-- <span class="hover-show text-box text">
<span class="no-active">收藏</span>
<span class="active">取消收藏</span>
</span> -->
</button>
</li>
<li class="bdsharebuttonbox bdshare-button-style0-16" data-bd-bind="1551765688983">
<div class="weixin-qr btn-comments low-height hover-box">
<a href="#" class="bds_weixin clear-share-style" data-cmd="weixin" title="手机看"></a>
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-usephone"></use>
</svg>
<span class="hover-show text text3">
手机看
</span>
</div>
</li>
<li class="widescreen-hide">
<a class="btn-comments low-height hover-box" href="https://blog.csdn.net/wongainia158158/article/details/48516781" title="android端读取本地图片出现OutOfMemoryException">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-chevronleft"></use>
</svg>
<span class="hover-show text text3">上一篇</span>
</a>
</li>
<li class="widescreen-hide">
<a class="btn-comments hover-box low-height" href="https://blog.csdn.net/wongainia158158/article/details/48625103" title="LibRTMP源代码分析4">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-chevronright"></use>
</svg>
<span class="hover-show text text3">下一篇</span>
</a>
</li>
<!-- 宽屏更多按钮 -->
<li class="widescreen-more">
<a class="btn-comments chat-ask-button low-height hover-box" title="快问" href="#chatqa">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-more"></use>
</svg>
<span class="hover-show text">更多</span>
</a>
<ul class="widescreen-more-box">
<li class="widescreen-more">
<a class="btn-comments low-height hover-box" href="https://blog.csdn.net/wongainia158158/article/details/48516781" title="android端读取本地图片出现OutOfMemoryException">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-chevronleft"></use>
</svg>
<span class="hover-show text text3">上一篇</span>
</a>
</li>
<li class="widescreen-more">
<a class="btn-comments hover-box low-height" href="https://blog.csdn.net/wongainia158158/article/details/48625103" title="LibRTMP源代码分析4">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-chevronright"></use>
</svg>
<span class="hover-show text text3">下一篇</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'https://csdnimg.cn/static/api/js/share.js?v=89860594'];</script>
<script>
var recommendCount = 75;
recommendCount = recommendCount > 1 ? (recommendCount + (recommendCount>6 ? 2 : 1)) : recommendCount;
var articleTit = articleTitles;
var ChannelId = 1;
var articleId = "48624409";
var commentscount = 0;
var islock = false;
var curentUrl = "https://blog.csdn.net/wongainia158158/article/details/48624409";
var myUrl = "https://my.csdn.net/";
//1禁止评论,2正常
var commentAuth = 2;
//百度搜索
var baiduKey = "LibRTMP源代码分析1 - wongainia158158的博客";
var needInsertBaidu = true;
// 代码段样式
var codeStyle = '';
var highlight = ["librtmp","\u6e90\u4ee3\u7801\u5206\u6790"];//高亮数组
// 相关推荐博主数据
var RecommendBlogExpertList = [{"user_name":"byxdaz","nick_name":"byxdaz","avatar":"https:\/\/avatar.csdn.net\/5\/7\/D\/3_byxdaz.jpg","is_expert":true,"article_count":950,"rank":"86"},{"user_name":"leixiaohua1020","nick_name":"\u96f7\u9704\u9a85","avatar":"https:\/\/avatar.csdn.net\/A\/7\/6\/3_leixiaohua1020.jpg","is_expert":true,"article_count":558,"rank":"50"},{"user_name":"huangmindong","nick_name":"huangmindong","avatar":"https:\/\/avatar.csdn.net\/D\/C\/F\/3_huangmindong.jpg","is_expert":false,"article_count":298,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"wongainia158158","nick_name":"wongainia158158","avatar":"https:\/\/avatar.csdn.net\/8\/D\/C\/3_wongainia158158.jpg","is_expert":false,"article_count":47,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"fireroll","nick_name":"\u5317\u96e8\u5357\u840d","avatar":"https:\/\/avatar.csdn.net\/1\/3\/0\/3_fireroll.jpg","is_expert":false,"article_count":719,"rank":"765"},{"user_name":"HandsomeHong","nick_name":"\u5d4c\u5165\u5f0f\u6316\u6398\u673a","avatar":"https:\/\/avatar.csdn.net\/8\/C\/1\/3_handsomehong.jpg","is_expert":false,"article_count":160,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"zmy3376365","nick_name":"Derek_0101","avatar":"https:\/\/avatar.csdn.net\/6\/0\/1\/3_zmy3376365.jpg","is_expert":false,"article_count":70,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"li_wen01","nick_name":"li_wen01","avatar":"https:\/\/avatar.csdn.net\/3\/0\/D\/3_li_wen01.jpg","is_expert":false,"article_count":195,"rank":"9000+"},{"user_name":"huibailingyu","nick_name":"\u4e00\u8def\u5411\u5357_csdn","avatar":"https:\/\/avatar.csdn.net\/6\/7\/E\/3_huibailingyu.jpg","is_expert":false,"article_count":42,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"tongjing524","nick_name":"tongjing524","avatar":"https:\/\/avatar.csdn.net\/6\/A\/0\/3_tongjing524.jpg","is_expert":false,"article_count":31,"rank":"\u5343\u91cc\u4e4b\u5916"}];
var articleType = 1;
var CopyrightContent = '';
</script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/sandalstrap.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/paging.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/goTop-v1.js"></script>
<script>
GoTop({
right: 8,
hasReport: true,
reportFun: function() {
showReport(false,articleTit);
}
})
</script><div class="meau-gotop-box" style="right: 8px; bottom: 40px; z-index: 110; left: 1137.85px;"><a href="https://mall.csdn.net/vip_code" id="adContent" class="btn-meau"> </a> <a href="#" id="backtop" class="btn-meau" title="返回顶部" style="display: none;"> <svg xmlns="http://www.w3.org/2000/svg" width="19" height="12"> <path d="M9.314 0l9.313 9.314-2.12 2.121-7.193-7.192-7.193 7.192L0 9.314z" fill="#FFF" fill-rule="evenodd"></path> </svg> </a> <a href="#" id="reportContent" class="btn-meau" title="举报"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="22"><path d="M0 13.028V3.365L9 0l9 3.365v9.663C18 17.983 13.97 22 9 22s-9-4.017-9-8.972zm2-8.282v8.282c0 3.854 3.134 6.978 7 6.978s7-3.124 7-6.978V4.746L9 2.13 2 4.746zm6 10.276h2v1.993H8v-1.993zm0-8.973h2v6.979H8V6.049z" fill="#FFF" fill-rule="nonzero"></path></svg> </a></div>
<div class="fourth_column">
<div class="title-box">
<b class="title">猿学习</b>
<span class="fourth_column_close">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-times"></use>
</svg>
</span>
</div>
<ul class="">
<li><div id="kp_box_456" data-pid="456" data-track-click="{&quot;mod&quot;:&quot;kp_popu_456-802&quot;,&quot;con&quot;:&quot;,,&quot;}"><a href="https://edu.csdn.net/topic/python115?utm_source=blogright" target="_blank"> <div class="blogkp1"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/201901081438577084.png" width="100" height="100"><h6>程序员2019年学Python</h6></div></a></div></li> <li><div id="kp_box_457" data-pid="457" data-track-click="{&quot;mod&quot;:&quot;kp_popu_457-681&quot;,&quot;con&quot;:&quot;,,&quot;}"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/201901081453403307.jpg" width="100" height="100"></div></li> <li><div id="kp_box_458" data-pid="458" data-track-click="{&quot;mod&quot;:&quot;kp_popu_458-640&quot;,&quot;con&quot;:&quot;,,&quot;}"><a href="https://gitchat.csdn.net/column/5a7d1a13a7f22b3dffca7e49?utm_source=csdn100" target="_blank"><div class="blogkp3"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/201811091452349556.png" width="100" height="100"><h6>Python 爬虫和数据分析实战</h6><span style="position:absolute;right:0;bottom:0;background:url(https://img-ads.csdn.net/2016/201608021757063065.png) no-repeat;width:33px;height:18px;display:block;z-index: 9999;"></span></div></a></div></li> <li><div id="kp_box_459" data-pid="459" data-track-click="{&quot;mod&quot;:&quot;kp_popu_459-684&quot;,&quot;con&quot;:&quot;,,&quot;}"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/201811231419286183.jpg" width="100" height="100"></div></li> </ul>
</div>
<script type="text/javascript">
$('.fourth_column_close').click(function(){
$('.fourth_column').remove();
})
</script>
<!-- 右侧第四栏end -->
<!-- 高亮未与 markdown兼容 -->
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/chart.css">
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/chart.js"></script>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/widget2chart.js"></script>
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/atom-one-light.css">
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pc_wap_common-98040b5dc6.js"></script>
<script type="text/javascript">
$(function(){
var allEscRegex = /&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,
namedEntities = {
lt: '<',
gt: '>',
amp: '&',
quot: '"',
nbsp: '\u00a0',
shy: '\u00ad'
}
var allEscDecode = function( match, code ) {
return namedEntities[ code ];
};
htmlDecodeAttr = function( text ) {
return text.replace( allEscRegex, allEscDecode );
}
hljs.initHighlighting();
hljs.initCopyButtonOnLoad();
hljs.initLineNumbersOnLoad();
if($('pre .language-plain').length>0){
$('pre .language-plain').each(function(i,e){
var highlightRe = hljs.highlightAuto(htmlDecodeAttr(e.innerHTML))
e.innerHTML = highlightRe.value;
e.className = 'language-'+highlightRe.language;
});
}
})
</script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/a"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/common-eb024b1a9c.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/detail-001720469e.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/baidu-search.js" type="text/javascript"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/skin3-template-fc7383b956.js"></script>
<!-- <script type="text/javascript" src="//g.csdnimg.cn/check-adb/1.0.2/check-adb.js"></script> -->
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/MathJax.js"></script>
<script type="text/x-mathjax-config;executed=true">
MathJax.Hub.Config({
"HTML-CSS": {
linebreaks: { automatic: true, width: "94%container" },
imageFont: null
},
tex2jax: {
preview: "none"
},
mml2jax: {
preview: 'none'
}
});
</script>
<script type="text/javascript">
window.baidu_blueword ={
di:'24004469_oem_dg',
id:['content_views'],// 需要飘蓝区域:id要求以数组或,分隔的字符串形式传入
blueclass:['baidu_pl'],// 需要飘蓝区域:class要求以数组或,分隔的字符串形式传入, 传入值会覆盖默认值
user:'',
isMobile:false,
title: document.title,
page_url: location.href,
ignore:'baidu-blue-word-no',// 需要忽略掉的区域1
frequency:1,// 词频1
maxword:3// 最大接受飘词个数
}
</script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%901%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/bword.js"></script>
<div style="position:fixed; top:0; left:0; overflow:hidden;"><input style="position:absolute; left:-300px;" type="text" id="focus_retriever" readonly="true"></div><div id="pointDivs"><div class="point-outer point-pre"><div class="point-inner"></div></div><div class="point-outer point-pre"><div class="point-inner"></div></div><div class="point-outer point-pre"><div class="point-inner"></div></div><div class="point-outer point-pre"><div class="point-inner"></div></div><div class="point-outer point-pre"><div class="point-inner"></div></div></div><div class="report-box"> <div class="pos-box"> <h2 class="title">不良信息举报</h2> <a class="btn-close"> <svg class="icon" aria-hidden="true"> <use xlink:href="#csdnc-times"></use> </svg> </a> <form id="frmReport"> <div class="form-box"> <div class="txt-row-box"> <label class="title" id="reptTit">举报内容:</label> <p class="rpt-title text-truncate">LibRTMP源代码分析1 - wongainia158158的博客</p> </div> <div class="txt-row-box"> <label class="title">举报原因:</label> <div class="rdo-box"> <label><input type="radio" class="rdo-chk report-type" id="report_sex" name="report_type" value="1">色情</label> <label><input type="radio" class="rdo-chk report-type" id="report_Politics" name="report_type" value="2">政治</label> <label><input type="radio" class="rdo-chk report-type" id="report_copy" name="report_type" value="3">抄袭</label> <label><input type="radio" class="rdo-chk report-type" id="report_ad" name="report_type" value="4">广告</label> <label><input type="radio" class="rdo-chk report-type" id="report_want" name="report_type" value="5">侵权</label> <label><input type="radio" class="rdo-chk report-type" id="report_call" name="report_type" value="6">骂人</label> <label><input type="radio" class="rdo-chk report-type" id="report_other" name="report_type" value="7">其他</label> </div> </div> <div class="txt-row-box" id="rptOriginalurl"> <label class="title">原文地址:</label> <div class="txt-box"> <input class="ipt" type="text" id="originalurl" name="originalurl"> </div> </div> <div class="txt-row-box"> <label class="title">原因补充:</label> <div class="txt-box"> <textarea class="ipt ipt-textarea" name="description" maxlength="30"></textarea> <p class="remark">最多只允许输入30个字</p> </div> </div> </div> <div class="opt-box text-right"> <input type="reset" class="btn btn-link-gray btn-close" value="取消"> <input type="submit" class="btn btn-red btn-submit" value="提交"> </div> </form> </div> </div><div class="imgViewDom disnone" style="display: none;"><img src=""></div><style>.imgViewDom{display:none;position:fixed;top:0;left:0;height:100%;width:100%;z-index:99999999;background: rgba(255, 255, 255,0.8);overflow: auto;display:-webkit-box;-webkit-box-align:center;-webkit-box-pack:center;display:-moz-box;-moz-box-align:center;-moz-box-pack:center;display:-o-box;-o-box-align:center;-o-box-pack:center;display:-ms-box;-ms-box-align:center;-ms-box-pack:center; display:box;box-align:center;box-pack:center;}.imgViewDom img{cursor: zoom-out;}</style><iframe class="bdSug_sd" style="display: none; position: absolute; border-width: 0px;"></iframe><div id="bdSug_1551765688535" class="bdSug_wpr" style="display: none;"></div></body><!-- 右侧第四栏 --></html>