「技巧」Chrome、Edge 默认下载器也能多线程下载?隐藏黑科技了解一下!

原文:https://zhuanlan.zhihu.com/p/93176490

注意:任何基于 Chromium 内核的浏览器(国内套壳、Edge等)都支持该功能!

大家在使用 Chrome、Edge 浏览器的时候,下载一些小文件往往都会直接用默认下载器,但是下载大文件的时候,一般都会搭配其他 专业多线程下载工具 使用,但是嫌麻烦…

最近我发现 Chrome、Edge 浏览器有个多线程下载选项,默认是关闭的,我试了下发现挺好用。

Chrome、Edge 浏览器这个多线程下载虽然不如专业下载工具,但也够用了!

速度对比

多线程下载 开启前
多线程下载 开启后

一键开启

  • Chrome 浏览器,地址栏输入并回车:chrome://flags/#enable-parallel-downloading
  • Edge 新版浏览器,地址栏输入并回车:edge://flags/#enable-parallel-downloading

就会看到如下图所示,将默认的 Default 改为 Enabled 即可!

然后重启 Chrome 浏览器再去下载个文件试试速度吧!

Enabled = 开启

为什么下载速度没有翻倍?

两种可能性:

  • 该文件不允许多线程下载!

例如,网站服务器限制了同一时间一个 IP 只能建立 1 个下载连接。

  • 该文件没有显示文件总大小!

部分网站下载文件时,不会显示文件总大小,这样的话就没办法多线程下载了(其他任何多线程下载工具都不行),没有文件总大小,就没办法等份分割文件进行并行下载。


多线程下载是什么?

一些人的可能并不清楚 多线程下载 是什么,我简单解释下。

目前的 专业下载工具(HTTP下载) 之所以下载速度更快,就是因为使用了 多线程下载 技术。

目前的 BT 软件也都支持 HTTP 多线程下载(因为 BT 下载上传也是需要文件分片)。

这个多线程下载技术很容易理解,那就是将下载的文件分割成多份。

假设下载一个 1GB 的文件,会被分割为 8 个 128MB 的文件块(8线程为例),然后与服务器建立 8 个连接,同时下载这 8 个分割后的文件块,如果单线程时最多 1MB/s 下载速度,那么现在理论上你的下载速度就从 1MB/s 提高到了 8MB/s。

这 8 个文件块都下载完成后,就会开始合并文件,这也是为什么下载完成后总会停顿一会儿才会提示下载完成。

.bashrc不起作用与bash初始化文件执行顺序

原文:https://finisky.github.io/2020/03/29/bashstartupfiles/

.bashrc不起作用

按习惯在HOME中添加了.bashrc文件,定义一些alias和PS1,结果发现putty登录之后并未生效,还须手动source .bashrc,在~/目录增加.bash_profile或.profile解决:

 ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

但问题的根源在于.bash_profile .bashrc .bash_login .profile几个文件的执行顺序。

.bash_profile .bashrc .bash_login .profile执行顺序

bash startup文件执行顺序

man是个好东西,man bash:

When bash is invoked as an interactive login shell, or as a non-interactive shell with the –login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. The –noprofile option may be used when the shell is started to inhibit this behavior.

可见这些文件的执行顺序如下:

  • /etc/profile
  • ~/.bash_profile
  • ~/.bash_login
  • ~/.profile

但同时需要注意前提条件是bash是interactive login shell,那什么是interactive shell,什么是login shell?

interactive shell和login shell

A login shell is one whose first character of argument zero is a -, or one started with the –login option.

An interactive shell is one started without non-option arguments (unless -s is specified) and without the -c option whose standard input and error are both connected to terminals (as determined by isatty(3)), or one started with the -i option. PS1 is set and $- includes i if bash is interactive, allowing a shell script or a startup file to test this state.

上面的定义虽然字字都能看懂,但按字面理解起来比较困难。通俗地来说,interactive shell就是需要人机交互的,比如执行一个脚本就不需要人机交互。login shell就是是否需要登录,比如本地再开一个terminal就不需要再次登录。

参考如下实例对二者排列组合: # Differentiate Interactive login and non-interactive non-login shell

  • interactive login shell: 远程登录,如ssh
  • interactive non-login shell: 本地起一个bash
  • non-interactive non-login shell: 运行脚本
  • non-interactive login shell: 少见

可以用如下命令测试当前环境是什么样的bash:

~$: echo $-; shopt login_shell
himBHs
login_shell     on

第一行中如果含有字母i则是iteractive shell;第二行显而易见。上述执行结果是ssh,可见ssh是iteractive login shell。

 

.bashrc又在什么时候被调用?

When an interactive shell that is not a login shell is started, bash reads and executes commands from /etc/bash.bashrc and ~/.bashrc, if these files exist.

好了,因为putty通过ssh登录,因此它是iteractive login shell,所以不会调用.bashrc,因此开头增加.bash_profile或.profile文件的目的就是调用.bashrc。

Tips: Linux中有许多不同版本的shell,如sh、csh、tcsh、zsh等。它们之间有一定的继承和渊源,有兴趣可以了解一下。只不过bash在当前的发行版中最为常见。

virtualbox 6.1安装windows xp

系统安装

1.安装系统;

2.重启->F8进入安全模式;

3.安装virtualbox guest additions驱动

4.正常启动至系统。

4k设置

在虚拟机参数设置中

displayer TAB

Scal Fact设置为200%

 

解决杂音问题

将音频输出改为alsa

 

 

恒大危机与溯源

一、恒大何以至此 ——危机袭来

深圳南山区,卓越后海中心,这里正成为一场风暴的中心。

 

一两个月之前,这里开始隔三差五地出现拉横幅讨债的施工队、供应商,甚至也有被拖欠了薪水的农民工。他们讨债的目标,是在《财富》世界500强中排名第122位的龙头房企——恒大集团,1996年在广州成立,总部在2016年春节后迁往深圳。彼时,恒大集团大手笔租下卓越后海中心整整20层,作为临时总部办公地。卓越后海中心高度为202米,共有43层,顶部挂着恒大集团的巨型标志。

 

写字楼前零星发生的讨债事件,在2021年9月8日以后骤然升级。这一天,恒大集团旗下的恒大金融财富管理(深圳)有限公司(下称“恒大财富”)宣布延期兑付本金,几十万名投资人瞬间卷入了这场风暴中。

9月10日,恒大集团董事局主席许家印对外宣称,“确保所有到期的财富产品尽早全部兑付,一分钱都不能少”,但这依然无法阻挡风起云涌的维权潮。一些投资人从全国四面八方匆匆赶往深圳,还有投资人选择聚集在本地的恒大办公地点。

1.png

2021年9月14日,深圳市南山区卓越后海中心,警方维持现场秩序。一两个月之前,这里就开始隔三差五地出现了向恒大集团拉横幅讨债的施工队、供应商,甚至也有被拖欠了薪水的农民工。

据财新不完全统计,仅在9月12日和13日两天,包括深圳、广州、西安、济南、成都、南昌等在内的多地,均有投资者对恒大分公司的高管们围追堵截,其中南昌分公司的一名高管被300余名投资者困在酒店长达48小时。

财新综合多个信源的说法后保守估计,恒大财富涉及尚未兑付的理财产品存量规模约为400亿元。恒大财富总经理杜亮亦在面对投资者时称,“如果一下子拿出400亿规模兑付恒大财富理财”,恒大集团将“压力很大”。

恒大财富的投资者人数不详,但他们多与恒大集团有着千丝万缕的关联。恒大集团20万名   员工,在恒大财富上购买一定额度的理财产品,也是他们中的很多人必须完成的日常工作任 务。考核压力下,员工们一方面努力说服恒大的供应商,以及恒大楼盘的业主们一同购买高息理财产品,另一方面也会将产品推销给自己的亲朋好友。

此起彼伏的维权潮,仅是恒大集团资金面危机的表象。在恒大财富宣布延迟兑付前的一个月里,恒大各地的子公司将部分项目的股权出质给恒大财富,涉及股权金额逾200亿元。

此举应是为了“保交楼”——此前,由于恒大集团大量拖欠工程款,诸多在建项目被迫停工。8月,恒大的销售金额同比下滑26%。恒大800多个项目中,有500多个处于停工状态。

据财新了解,目前恒大地产已预售但尚未交付的房屋至少有几十万套,要完成交付至少还需要上千亿元资金。9月1日,作为集团核心业务地产平台的中国恒大八名副总裁率领“保交楼”专项工作组,签署下“保交楼”的军令状。

短短一周后,恒大财富宣告暂停兑付本金,恒大集团随即陷入“保交楼”还是“保兑付”的两难处境。“公司确实遇到了前所未有的困难。”恒大集团发布于9月13日的声明称。

高杠杆运作下的房地产业,各式各样的高息融资开始无法兑付,成了恒大集团的阿喀琉斯之踵,也构筑了大批恒大员工和个人投资者冲向讨债最前线的奇观。

“超收宝”延期

在这场危机风暴中,率先维权的是恒大的员工们,其中又以高管为甚。他们多在恒大集团工作10余年,个人财富与公司深度绑定,“工资大部分投入恒大的各种理财产品”。

在房地产企业顺风顺水的时候,这样的投入是“双赢”,也构成了房企多途径融资的一种特定模式,而恒大做到了极致。

一名从恒大集团资管运营中心离职的员工称,当房企希望获得融资时,金融机构往往都会提出很多条件。让高管个人投一笔钱,与项目绑定,往往作为风控措施之一。

“每逢这样的时候,恒大集团就会下达集资任务。这些任务要么高管自己出资完成,要么往下层层分解,各部门都有指标。”她说,其中一款针对高管的集资产品,即为“超收宝”。2017年5月,“超收宝”在恒大集团内部发行了第六期,半年后发行了第七期。

但仅有极少数员工知晓“超收宝”的真实用途——2017年5月和11月,恒大用项目向中信银行深 圳分行融资,银行要求恒大高层必须跟投,恒大随即发行“超收宝”第六期,年化利率 25%,300万元起投,并承诺两年内返还本息。

财新获得一份中信银行方面起草的《6期超收宝方案(草案)》(下称《方案》)。《方案》称,经与恒大集团协商,中信银行拟与恒大集团共同设立400亿元的多元化产业并购基金,为恒大收购兼并的优质标的项目(包括但不限于地产、实业及其他类项目)运作提供资金支持。

这也是银行支持恒大的一种表外融资方式。2019年被查的原常务副行长孙德顺、2018年底  被查的原行助及深圳分行负责人陈许英治下时期的中信银行,对恒大的支持有上千亿元敞口, 类似这样的产业并购基金一只就规模达400亿元。而2020年中报显示,中信银行的贷款加中信信 托在恒大的投放加起来不过200亿元,说明表外放款可能早就超过了表内数据。

这份《方案》显示,中信银行的理财资金设立资管计划或信托计划,认购优先级LP份额,出资比例不低于65%;此外,由中信银行和恒大集团共同认可的机构,以及恒大高管一起,认购中间级和劣后级LP份额,出资比例不高于35%。

前述资管运营中心离职人士告诉财新,所谓“由中信银行和恒大集团共同认可的机构”,主要是指恒大人寿和恒大金服,由它们认购中间级LP份额。由恒大高管投资的“超收宝”,则成了   基金的“劣后级”资金来源。“在这一类基金中,恒大高管认购的劣后级份额,一般为1.5%至 3%。”该人士称。

恒大一名部门副总经理级别的人士称,“300万元不是一个小数目,我动员下属参与进来, 他们与我签订一个代持协议,大家众筹300万,我出资150万,他们出资150万,最后以我的名义购买”。他说,这一做法在恒大集团内部并不罕见。一些人不惜从银行贷款,因为25%的收益率远高于贷款利率。

然而,在2019年5月、11月,两期“超收宝”到期之时,恒大要求购买的员工同意“超收宝”延期一年,至2020年再度延期一年。一名投资者称,在过去的三四年里,每个季度会收到一笔分红,年化利率约为4%至5%不等。而此前承诺的年化利率25%的高额回报,原本的说法是在返   还本金时兑现。

在现金流危机愈演愈烈之后,恒大选择优先偿还目前仍然在职高管的“超收宝”本金。一名投资者向财新出示的证据显示,在2021年8月底至9月初,恒大集团通过不同项目公司账号支付了在职员工的“超收宝”约17亿元,但仍有大约300名离职员工的2亿元本金未支付,名单中甚至包括了2017年入职的恒大集团原首席经济学家任泽平(2021年3月加入东吴证券)。离职员工愤而维权。

从恒大金服到恒大财富

承担着向高管集资任务的“超收宝”,一共发行了七期。“后来类似的集资任务,越来越多由   恒大财富承担。”前述资管运营中心离职人士说。

恒大财富的前身为恒大金服,于2016年3月正式上线。彼时全国P2P盛行,恒大金服即为恒  大集团全资控股的P2P平台。自2018年起,全国多个P2P爆雷,行业全面整顿。当年3月28日,互联网金融风险专项整治工作领导小组办公室发文称,未经许可,依托互联网以发行销售各类资产管理产品等方式公开募集资金的行为,应当明确为非法金融活动;依托互联网发行销售资产管理产品的行为,须立即停止。

恒大金服诸多产品随后下架。2019年5月30日,恒大金服宣布更名为恒大财富。据其官网,恒大财富的业务仅剩下“财富管理咨询”和“社区金融”。

“恒大财富的业务,实际上还是销售理财产品。”前述资管中心离职人士称,这些理财产品   的收益率多在5%至10%之间,相较于P2P时期,投资门槛提高至10万元起投。

多名恒大员工提供给财新的文件显示,自恒大金服上线运营以来,恒大就在公司内部全员推广自己的理财产品,甚至摊派理财任务。后来,公司还会定期进行营销考核,根据部门完成率对负责人、分管领导进行奖励。

财新获得的一份恒大地产安徽公司2021年3月的文件显示,购买恒大理财产品的完成率若高于100%,给予按达成任务额0.25%的农牧卡奖励;若完成率低于100%,扣罚分管领导或者项  目总30%的核定综合奖金。

另一份恒大深圳区域公司2021年7月的文件显示,除了累计完成额和完成率,该区域公司  的考核指标还包括到期金额累计复投额、复投率。

两名恒大员工告诉财新,2021年4月,恒大财富的理财顾问曾给出提前兑付方案,本息可以先行全额退回,但同时必须签署一份《承诺函》,承诺复投,复投金额是此前理财金额的120%,续购时间须长于此前理财时间,恒大财富以相当于理财金额1%的京东购物卡作为复投回报。“这实际上是借新还旧,让我再延期,被我拒绝。”其中一名员工说。

“恒大财富的理财收益率还不错,所以员工自己买了不少,也劝身边的朋友买。”一名恒大财富的内部员工说,在考核导向下,公司理财产品销售势头良好,“一个2000万的理财产品, 可能平均下来五天就可以募资结束。平台上一天内往往同时会有三四个类似的理财产品发行。”

恒大财富的销售对象,还包括项目施工方。一名曾在恒大工程部门工作10余年的人士告诉财新,每当需要向施工方支付工程款时,恒大方面就会要求施工方购买理财产品。“如果结算一两百万,可能要求他们买一二十万元的理财产品。”他说,购买理财产品的金额大约为工程款的10%。尽管这一要求并非强制,但施工方出于与恒大维持良好关系的考虑,往往都会购 买。此外,恒大楼盘的业主也会购买恒大财富的理财产品。

恒大财富涉及的人群范围广泛,并于9月9日宣布延期兑付的方案:本金10万元以下的到期兑付;本金10万元的投资者,到期兑付5万元,一年后再兑付5万元;本金10万—30万元的要分  五年兑付。

在债务危机中,最难处理的不是机构债权而是个人债权,因为银行、信托等机构债权可以在政府指令下统一延期,而个人债权则涉及千家万户。恒大财富的延期兑付方案,引发投资者强烈不满,亦是致使恒大危机迅速恶化的重要原因。

9月12日傍晚,恒大珠三角公司一名法务员带领上百名恒大区域公司员工与业主前往深圳市南山派出所,强烈要求深圳警方在7天内迅速对恒大财富欺诈投资人立案调查。现场一名办事人员称,当前能保证的只是尽快将资料移交给深圳公安局福田分局经侦大队。当天晚上,这些恒大员工又赶到深圳卓越后海中心维权。

压力之下,9月13日凌晨,杜亮宣读新一版兑付方案,安排了三种兑付方式供投资者选择。

一种是现金分期兑付,仅限于合同到期的投资产品——到期当月最后一个工作日兑付本息金额的10%,此后每三个月兑付10%,以此类推。另一种是实物资产兑付,用于兑付的实物资产,包括恒大任何一个城市的住宅、公寓和商铺等产品,一些车位也可以特事特办。

“许(家印)老板专门提出要求,恒大各地区公司要把所有已取证未售的住宅公寓和商铺等资产拿出来。”杜亮说,实物资产冲抵时,住宅、公寓分别按照当期售价基础打7.2折和5.4折,商铺和车位按照当期售价基础打4.8折。若资产折后价格低于所在地政府备案价,按当地政府要求的备案价操作。

最后一种是以理财额度冲抵购房尾款——9月12日24点之前已认购任意恒大房源未付清尾款的,投资人可使用全部或部分理财兑付额度来冲抵本人或他人的购房尾款。

据财新了解,部分投资者坚决不接受“以房抵债”,他们认为当前恒大诸多项目已停工,期房未来存在烂尾和一房多卖的风险,且当下多地限购,买下的房产未来或将难以更名,“我们不想做接盘侠”。

“上述解决方案毫无诚意,实物兑换更是相当于贴钱买不良资产。”一份广东受害者联名的《请愿书》称,恳请政府有关部门暂时监管恒大相关账户,冻结相关存款和资产,并要求恒大现金兑付所有本息。

但也有部分投资者无奈之下,开始考虑恒大提出的兑付方案,他们想挑选恒大位于热点城市的项目,以期未来方便转手。

“保交楼”压力巨大

在最近一个月内,恒大财富超百亿元的资金输血各地项目公司,是因为诸多项目公司已陷入停工状态。恒大的楼盘产品定位历来以刚需为主,“保交楼”背后直接牵连着社会稳定。

2021年8月6日,一份停工公告悄然出现在太仓恒大文化旅游城施工现场。江苏南通三建集团 股份有限公司(下称“江苏南通三建”)太仓恒大项目部,是这一项目三宗地块主体和配套建 设工程的总承包商。停工公告称,公司已完成大部分工作量并垫资约5亿元,但恒大已付金额不到2.9亿元,且在已付金额中,只有8%以现金支付,其余全以商业承兑汇票(下称“商票”) 结算,到期未兑付的商票规模达1.2亿元。恒大拖欠工程款,致使该项目停工。一名接近江苏南通三建的知情人士,向财新确认了这份公告的真实性。

这并非江苏南通三建承建的首个停工的恒大项目。房地产项目的全开发流程高度依赖于产业链。牵一发而动全身,上游房企一旦流动性压力加剧,下游的施工单位难免受到影响。据一份恒大集团2020年8月请求广东省政府支持的文件,截至2020年8月,恒大的上下游合作企业达到8441家,若恒大地产现金流断裂,将直接影响上下游企业的正常经营,部分企业甚至面临破产风险。

作为一家以房建施工为核心业务的大型建筑施工企业,江苏南通三建与恒大地产及其控股子公司的合作规模巨大。9月14日,联合资信在一份下调江苏南通三建主体及相关债项信用等级的公告中称,截至2021年6月底,江苏南通三建与恒大地产的在手合同额为85.77亿元,2020年底该公司存货中涉及恒大的地产项目合计37.42亿元。截至2021年上半年,江苏南通三建应收账款和应收票据中,涉及恒大地产的款项合计12.12亿元;另有已背书或贴现的恒大商票31亿元左右。

2.jpg

2020年5月24日,江苏苏州太仓市浏河镇,建设中的恒大文化旅游城。2021年8月6日,一份停工公告悄然出现在旅游城的施工现场。

联合资信指出,受恒大集团资金面紧张影响,江苏南通三建在工程款结算和资金回流方面存在较大不确定性。

上述知情人士透露,截至2021年9月,恒大方拖欠江苏南通三建的工程款总量约200亿元。该知情人士说,不止太仓恒大文化旅游城,江苏南通三建与恒大地产合作的多数项目现阶段都停工了。

在湖北省鄂州市,恒大地产的整体投资力度仅次于省会城市武汉。如今,鄂州所有项目也遭遇停工风波。一名恒大鄂州公司新近离职员工告诉财新:“恒大地产在鄂州布局的5个项目基本停工了一个多月,复工难度很大,近期公司部分工程部员工也被裁员了。”

该恒大离职员工透露,仅鄂州恒大首府和鄂州恒大誉府两个项目,恒大地产就拖欠了施工方大约5亿元工程款。

恒大地产的停工潮依然在迅速蔓延。财新获取的一份湖南长沙恒大项目摸底情况表显示, 截至2021年9月,长沙在建项目共有31个。仅仅位于长沙开福区的7个在建项目,就有6个处于   停工或半停工状态。

上述7个项目,恒大地产拖欠的工程款共约1.37亿元,拖欠农民工薪酬(不包含企业已垫付工资)约7416万元,施工企业垫付农民工工资超过8000万元,单这几项欠款加起来就有2.9亿元。

其中,长沙恒大御景天下城二期的施工总包单位江苏省苏中建设集团股份有限公司(下 称“江苏苏中建设”),被拖欠了2100万元工程款,垫资支付农民工工资3034万元。8月底到期仍未兑付的恒大商票达1606万元,四季度还有6093万元恒大商票到期。

江苏苏中建设此前已向恒大方面发函表示,若9月11日前不支付款项,就停工止损。

资金链紧绷之下,停工早有征兆。在8月31日出炉的中期业绩报告中,恒大集团提到,截至2021年6月30日,一些与房地产开发相关的应付款项逾期未付,导致部分项目停工。下半年以来,恒大地产因流动性问题延迟支付供货款和工程款也造成部分相关项目停工。

停工潮拖延了恒大地产旗下项目的交楼进度。6月7日还在官方声明中宣称“生产经营一切正常”的恒大集团,于8月19日接受央行和银保监会相关部门的会谈,随后首次主动公布“想尽一切办法确保工程建设,保质保量完成楼盘交付”。8月底,一位恒大内部人士告诉财新,现阶段恒大集团所有工作的第一要务,就是“保交楼”,不让工地停工。

9月1日,恒大集团举行了“保交楼”军令状签署大会,许家印出现在签署大会上。恒大集团   八名副总裁率八大“保交楼”专项工作组,恒大地产旗下各省公司董事长率班子成员、项目总,共同签署“保交楼”军令状。

在恒大内部,“保交楼”的焦虑早已一触即发。2021年6月3日,恒大集团举行一年一度战略  合作伙伴交流会,上千家上中下游的合作企业参加。据财新了解,这场交流会,许家印不仅向外界释放降负债目标,在现场,他还与供应商、施工单位进行深入沟通,大意是仍希望他们先推进工程进度,等到后期楼盘销售回款再支付拖欠款项。

一位恒大合作施工方的项目经理透露,恒大地产拖欠工程款之后,他们曾在施工现场采取过一些过激行为,但双方是战略合作关系,“我们也不情愿恒大出现大危机,毕竟背后牵扯到千万业主家庭”。

另一名持有恒大逾期商票的施工合作企业高管也称,“在目前这个困难的节骨眼上,施工方还是要给予恒大一定支持”。

“合作伙伴有苦难言。”上述接近江苏南通三建的知情人士说,自9月初大张旗鼓提出“保交   楼”之后,至今恒大地产多个停工项目依然没办法复工。恒大方面还无法提供相应资金来结算施工单位垫付的资金、货款等。

财新获悉,在“保交楼”军令状签署大会之后,恒大正紧急对各地项目的在建/停工、工程进度、拖欠工程款、农民工欠薪和到期商票未兑付等情况进行摸底和统计。

据恒大集团2020年8月发给广东省政府的报告,截至2020年6月30日,恒大集团已售未交楼  的商品房数量为61.7万套,若恒大集团陷入危机,将有204万业主面临工程烂尾或无法收楼的风险。

而一年后的现在,情况恐更加恶化。中国恒大2021年中期业绩报告显示,当期公司实现合   约销售面积4301.4万平方米,同比增长11.4%;但交楼面积相比2020年上半年减少8.5%。同期,合同负债达2157.90亿元,相比2020年上半年的1486.30亿元增加45.19%。所谓合同负债,是指企业已收或应收客户对价,并应当向客户转让商品或提供劳务的义务,大部分包括房地产企业在合同签订后收取的定金等预收款项。

“‘保交楼’涉及几十万家庭,涉及地方稳定。但是恒大的市场信用岌岌可危,施工方不愿意再垫款。听说广东省住建部门正在协调解决复工问题。”一位关注恒大的银行人士称。

商票满天飞

惯用高杠杆的恒大地产,此前对大部分施工方,尤其是体量庞大的建筑施工公司往往采取“绑架式”合作模式。

前述接近江苏南通三建的知情人士称,若施工方希望以现金结算工程款,恒大地产会提出相应的交换条件,要求对方购买部分恒大财富的理财产品或者恒大方面发行的公司债券。“施工方出于持续合作考虑,通常会接受这些附加条件,这相当于大部分资金转一圈又回到恒大手里了”。

用依靠企业信用支撑的商票与供应商结算,是恒大的重要融资方式之一。据财新了解,从2017年开始,恒大在各地的子公司、项目公司都可以发行商票,其中恒大园林集团有限公司、恒大材料设备有限公司的发行量较大。

最初,这些商票多为半年期,年化利率在15%—16%之间;从2017年底开始,恒大对外发行大量一年期的商票,年化利率在2018年初突破20%,年底一度涨至30%。进入2019年后,恒大商票的年化利率上下震荡,但多维持在20%以上的高位。

一名恒大集团总部员工告诉财新,工程款与材料款一般是一年期商票贴息,部分紧急款项就用半年期商票贴息。以前恒大商票的贴息率维持在8%左右,但最近一年,贴息率提高至12%—16%。

“商票转让会产生折扣,提高贴息是为了弥补走低的折扣率。”上述知情人士透露,2021年上半年,江苏南通三建曾邀请过第三方公司制定一个恒大商票消化方案。方案中将商票分成未逾期、将要逾期、已逾期几大类,并统计每一类所对应的流通率与折扣率。

“2017年至2018年两年,恒大商票在市场上的折扣率还能达到八折至八五折。2021年5月起,少数还能转让出去的恒大商票,折扣率已经低到五折甚至四点五折。”该知情人士说。

恒大商票兑付压力日增。财新获悉,2021年8月之前,恒大方面还会一一打电话与商票到期的施工方商量,申请展期半年,补充6个点利息。从7月底开始,恒大不再对到期商票给出明确付款时间表。

对中小规模的供应商而言,持有大量逾期商票,是它们难以承受之重。多家上市公司近期就此发布公告。比如,涂料企业三棵树(603737.SH)于9月6日发布公告称,截至2021年8月31日,持有的恒大商票共有3.36亿元发生逾期;此外,公司还持有恒大尚未到期的应收票据余额3.34亿元、尚未到期的应收账款1.27亿元。三棵树2021年上半年净利润为1.32亿元,恒大尚未兑  付的逾期商票相当于其同期净利润的76%。

有类似遭遇的,还有从事建筑业务的广田集团(002482.SZ)。公告称,截至今年8月,该公司应收恒大商票余额27.15亿元,其中逾期未兑付部分3.35亿元,相当于公司上半年净利润的6倍有余。此外,从事建筑装饰的瑞和股份(002620.SZ)公告称,截至今年6月,应收恒大的商票余额14.81亿元,因恒大违约而转入应收账款的票据金额2.19亿元。

近几个月来,多家供应商因为恒大违约而提起诉讼,但往往立案之后又达成和解。一位代理过恒大相关案件的律师对财新称:“很多人与恒大打官司是边打边谈,还有更多的人没打官司。”

2020年年报显示,恒大集团持有商票2052.66亿元,涉及众多供应商,多由恒大集团提供担保。

“恒大商票满天飞,在商票圈若没做过恒大商票,都不算业内人。”一位熟悉地产公司融资的人士称,“恒大商票泛滥,且转向融资性票据,缺少实际贸易做支撑。如果恒大的负债没有足够的资产对应,这些商票会很麻烦。”

恒大商票规模巨大,形成了二级市场,投资人包括担保公司、保理公司等第三方公司。一位在江苏做资金生意的人士称,目前一年期的商票利率多为17%—20%,“有些快到期的可以再 延长200天,算下来年化利率达到36%”。然而,如今市场上已无人敢接手恒大的商票,因为“卖不出去”。

该人士称,针对逾期商票,恒大给出的解决方案是“以房抵债”。“恒大给的项目清单中有60个项目,大多是期房,有些还在银行质押。”他说,“我们一听就没细问了。”

“以房抵债”是恒大当下处理危机的重要手段。在过去两个月里,针对已逾期的商票,恒大向三棵树兑付了2.35亿元,仍有1.01亿元尚未兑付。但在兑付方式上,仅有1521万元是通过银  行转账方式兑付的,另外2.20亿元以位于武汉市江夏区、鄂州市华容区、深圳市龙岗区的三处期房兑付,预计完工交付时间分别为2022年、2024年和2023年。

这些用于抵债的房产有可能流向市场。公告称,三棵树已着手处置这些房产。截至9月6日,已与第三方签署了一份196.67万元的房产转让协议。

除了商票,在中国恒大的报表内,应付账款同样逐年递增。恒大在财报中称,截至2021年6月30日,一些与房地产开发相关的应付款项逾期未付,导致部分项目停工。财报显示,期内流动负债中,应付贸易账款及其他应付款项达到9511.33亿元,同比增长14.71%。

恒大称,正与供应商及建筑承包商洽谈,延期支付或以物业抵扣欠款,争取项目复工。

2021年7月1日至8月27日,恒大向供应商及承包商出售物业单位以抵扣部分欠款,总金额约251.7亿元。

寻求资产变现

恒大危机从2021年开年开始显现,公司不得不开源节流。

房企最大的开支是购买土地。财新据2021年中期数据统计,上半年恒大集团新购土地储备预计总建面积771万平方米,拿地成本约313.95亿元,相比2020年同期的1340.18亿元减少76.57%。

资金也在加速回笼。自年初以来,恒大售楼“以价换量”,6月实现合约销售额716.3亿元, 创2021年以来的月度销售高点。但据恒大公告,公司7月和8月的月销售额持续回落至437.8亿、380.8亿元,预期9月还将持续大幅下降。

此外,在2021年上半年,恒大集团还为旗下房产和汽车交易平台房车宝、恒大汽车(00708.HK)增发新股引入投资,累计筹资269.5亿港元。

6月1日至8月27日,恒大集团两度出售附属公司恒腾网络(00136.HK)19%股份、出售嘉凯城(000918.SZ)29.90%股权,还转让了深圳高新投7.08%股权,恒大冰泉49%股权以及旗下五个地产项目股权和非核心资产。以9月16日汇率粗略统计,不到三个月时间里,恒大集团资产变现共计191.58亿元。

相较巨大负债,这些资金回笼也只不过是杯水车薪。

恒大集团手头更庞大的资产在于土地储备。中期业绩报告显示,截至2021年6月30日,恒大集团拥有778个土地储备项目,总规划建筑面积2.14亿平方米,土地储备原值为4568亿元。此外,恒大集团还拥有146个旧改项目,其中大湾区的旧改项目多达131个。

财新获悉,恒大集团从6月初开始筹划出售旗下多项地产资产。过去三个多月,中国海外发展(00688.HK)、万科等头部房企,中国金茂(00817.HK)等央企都与恒大接触过。一名接近交易的知情人士透露,深圳市国资委与广州国资委都分别组织旗下的几家国企尽调过恒大深圳旧改项目。“恒大把市场上的接盘方都找了一遍。”他说。

不过,截至目前,恒大地产旗下绝大部分项目的买家仍未实质敲定。多位接触过恒大项目的房企人士告诉财新,恒大有些项目看似不错,但单个项目里面就存在好几笔债权,很难梳理清楚债务结构。

恒大旗下的优质资产,以深圳旧改项目为代表。中期业绩报告显示,位于深圳的旧改项目达62个,但多数可能还处于合约期。

广东合一城市更新研究院近期统计数据显示,在深圳,中国恒大计划立项的城市更新土储达193.39万平方米;已批规划的城市更新总量达525.56万平方米,其中住宅总量为253.98万平方米;但进行到实施主体确认阶段的城市更新土储仅60.59万平方米,可开发建设用地总量为40.37万平方米。

“这部分才是恒大在深圳已经有了一定进展的旧改项目。其中,进行到实施主体确认阶段,且后期可以改住宅类型的,才是企业愿意接盘的旧改项目。”合一城市更新集团董事总经理罗宇说。

一名接近交易的知情人士透露,恒大深圳的旧改项目平均融资成本介于8%—24%,且情况错综复杂,存在股权质押、名股实债、小股大债、拖欠合作方款项等诸多债务问题,实难处置。据财新了解,部分房企曾表示可以考虑承债式收购,但恒大方面开价很高,不愿亏本抛售。

3.jpg

2015年10月31日,广东深圳,即将拆除的大新北区涌下村,恒大集团挂出的鼓励拆迁横幅。在深圳,中国恒大计划立项的城市更新土储达193.39万平方米;已批规划的城市更新总量达525.56万平方米;但进行到实施主体确认阶段的城市更新土储仅60.59万平方米,可开发建设用地总量为40.37万平方米。

深圳旧改项目备受关注之时,恒大近年来布局的三、四线城市项目却乏人问津。在此前棚改货币化浪潮下,三、四线城市的购买力被提前透支。此后调控加码,棚改退潮,三、四线楼市普遍面临调整压力。这加大了恒大项目处置的难度。一名大型房企人士称,恒大将全国范围内的项目都列上清单任企业挑选,但大型房企根本就不考虑三、四线城市项目。

9月10日,恒大财富紧急召开全员大会,杜亮在传达许家印的讲话中提到,恒大集团的多数土地储备不能卖。“因为在中国,土地储备最值钱,这是恒大集团的最大法宝,也是最后家底。”杜亮说。

“比如一宗地块,恒大的拿地成本10亿元,土地本身价值达到20亿元,但市场上交易对手开价可能只有3亿元。如果这时就亏本卖掉,恒大就没有东山再起的资本了。”杜亮转述许家印的话说,只要把复工复产全部动员起来,将土地开发变成房子销售回笼资金,恒大就能偿还所有负债、缓过劲来。

财报显示,截至2021年上半年,恒大集团的存货与开发中物业合共12793.22亿元,相比2020年底的12582.66亿元还增加1.67%。“开发中物业”与“存货”都是房企的流动资产,按成本进行初始计量。房地产开发产品成本包括土地成本、施工成本和其他成本,符合资本化条件的借款费用也会计入。

这意味着,至少截至6月,恒大集团的项目资产成本和所对应的债务不减反增。可供对比的是,同期规模相当的另外两大龙头房企万科和碧桂园,存货均低于恒大集团,分别为10478.8亿元、11256.34亿元。

恒大集团正式对外承认将出让部分资产是在8月10日晚间,该公司将旗下汽车与物业板块的部分股权摆上货架。但9月14日的公告显示,截至目前,恒大集团虽然积极接触了多名潜在投资者,但尚未与投资者签订任何具有法律效力的协议。

以恒大物业(06666.HK)为例,据财新了解,包括万物云、碧桂园服务(006098.HK)在 内的多家企业都曾与恒大物业洽谈过,然而均未达成最终方案。一名潜在买家透露,恒大物业的管理面积达不到万物云的50%,但利润比万物云多了1倍。“现在估值尚未达到底部,我们公司不着急交易”。

9月17日,碧桂园服务执行董事、总经理李长江在一场房地产论坛上公开提到,碧桂园服务确实与恒大物业有过接触,但价格没谈拢。“未来是否还会与恒大物业进行合作,这个决定权不完全在我们,不排除还会有深度合作”。

根据中报,2021年上半年,恒大物业实现营收78.73亿元,期内净利润约19.34亿元,在管面积约4.5亿平方米。而万科中期财报披露万物云实现营收103.8亿元;截至2020年末,万物云的在管面积5.66亿平方米。

恒大集团谋求出售的项目清单里,还包括其位于香港湾仔的总部大楼中国恒大中心及广州总部大楼广州恒大中心,但两处资产同样未能按预期时间完成,目前还在积极接触潜在买家。

在新近拟定的自救方案中,恒大集团已数次对外释放“出售包括但不限于投资物业、酒店及其他物业股权和资产、引入投资者增加中国恒大及其附属公司股本”的消息。

时至今日,恒大遭遇的究竟是流动性危机,还是资不抵债走向破产重整?

当前,恒大对外仍宣称这是一场多因素迭加导致的流动性危机,否认破产传言,称年销售7000亿元及土地储备、货值能保证恒大度过此次危机。然而,这一切悬于恒大资产处置的进展,以及表内外债务显山露水后的恒大真容。

二、恒大何以至此——危机溯源

 

1.jpg

2020年8月18日,深圳南山区后海片区恒大集团大楼。2020年下半年,恒大竭尽全力,以1300亿元名股实债的新安排,勉强度过了A股借壳上市终止引发的对赌危机。

2021年8月初,恒大集团的债务纠纷已经演化为各地保全资产、要求恒大还款的诉讼潮。为防止各地各自为战,所有涉及恒大的诉讼都集中到了广东中院,这原本是稳定局面之举。

 

接下来的几天,关于恒大集团处置恒大汽车(00708.HK)、恒大物业(06666.HK)等资产的公告和消息满天飞。8月11日,恒大集团总裁夏海钧减持恒大物业和恒大汽车股票达上亿港元的做法,引发高度关注。

 

8月17日,许家印辞去恒大地产集团董事长,中国恒大(03333.HK)、恒大汽车、恒大物业股价暴跌。

8月19日晚间,央行和银保监会官网公告称,监管机构相关部门负责人约谈恒大集团高管,称恒大集团必须认真落实中央关于房地产市场平稳健康发展的战略部署,努力保持经营稳定,积极化解债务风险,维护房地产市场和金融稳定;依法依规做好重大事项真实信息披露, 不传播并及时澄清不实信息。

监管机构的态度,无异于一种严肃的警告,说明恒大无论是其资产负债表的真实性还是高管的个人操守,可能都在遭受质疑,几乎耗尽了决策当局的信任与耐心。如何化解恒大集团当下的风险,根据8月17日中央财经委员会第十次会议精神,地方政府需要强化属地风险处置责任和维稳第一责任。

以恒大年7000亿元的房地产年销售额,为何表内债务规模会高达近2万亿元?恒大的表外债务规模究竟有多大?恒大是如何一步步走到今天的?曾经以为“大而不能倒”的恒大,这次是否还有向死而生的机会?

与盛京银行的关联交易

2020年下半年,恒大竭尽全力,以1300亿元名股实债的安排化解了A股借壳上市终止引发的对赌危机。同期引发监管关注的,是恒大集团在2016年和2018年两次大手笔控制的盛京银行,与恒大集团之间的关联交易规模已达千亿元。

据财新了解,“之前辽宁省的银保监换过一任局长,之后对盛京有过现场检查,检查结果对外没有公开。但是对内来讲,盛京的问题是比较严重的,当初银保监局内部是有过一份文件上报到会里的。”一位股份行的金融市场部人士透露。

总部位于辽宁沈阳的盛京银行,2014年12月29日在香港联交所上市,2020年末资产规模达到10379亿元,是东北地区规模最大的银行。2016年,执掌盛京银行近15年的原党委书记兼董事长张玉坤,因辽宁贿选案不得不退出盛京银行之前,她决定引入恒大,安排了部分老股东将股权转让给了恒大。恒大得以以100.168亿元收购10亿内资股,再加上此前收购的H股股份,恒大南昌公开持有盛京银行的股份达到17.28%,成为盛京银行第一大股东。

恒大能获得张玉坤的认可,代价是承诺接盘盛京银行过往500多亿元的不良资产。“就是盛京银行通过各种渠道把本应暴露的不良资产转到了恒大的名下。”熟悉盛京银行的两位知情人士表达了类似的意思。

另有一位银行圈的资深人士称,恒大实际出资额可能不到500亿元,大约是三四百亿元,“恒大以不处理以前的责任人为代价,把这些不良接过去,成了盛京银行的大股东”。

“第一轮增资以后,恒大还没有完全掌控盛京银行,因为内部还有原来张玉坤时代的一拨人在,两派人的利益诉求不一样。”一位东北地区城商行的人士分析。

到了2019年,借着处置包商银行事件时发生的中小银行流动性分层危机,恒大集团通过新  一轮180亿元的增资扩股增持盛京银行至36.4%。而盛京银行的其余股东中,包括华人置业的刘銮雄、正博公司的实际控制人孙粗洪、Future Capital的罗琪茵等,都是长年来恒大集团实控人许家印“朋友圈”成员,市场一直猜测,恒大对于盛京银行有影响力的股权比例实际可能已经超过了50%。

“因为包商事件之后,不少城市商业银行流动性都非常紧张,各家银行的地方政府也都在想办法救。当时沈阳市本身没有那么多钱,于是选择引入恒大来帮忙化解风险,市里面再给恒大一些地和项目作为补偿。”一位接近沈阳市政府的人士描述当时的交易背景说。

在这第二轮增资扩股前后,盛京银行的人事乾坤大转,更多恒大集团背景的人进入盛京银行的董监高行列,包括2019年4月恒大集团原副总裁邱火发出任盛京银行董事长至今。他此前在光大银行任职10余年,先后出任光大银行北京分行行长、总行副行长等职,2016年5月加入恒大集团出任常务副总裁兼恒大金融集团董事长。在盛京银行的非执行董事也主要来自恒大, 包括恒大人寿董事长、此前也是中信银行副行长的朱加麟,恒大集团财务总监潘大荣、恒大集团资本市场中心总经理季昆等。

此外,恒大集团近年来从银行圈内不断挖人去盛京银行任职,人事变动如同走马灯。

接近盛京银行的知情人士表示,此前监管认定的恒大关联交易逾千亿元,除了前述500多亿元承担的不良资产项目,130亿元合规的股东贷款和债券,还有400多亿元是所谓恒大“朋友圈”成员在盛京的敞口,因此存在一些争议。

2021年6月,恒大集团在声明公告中表示,与盛京银行开展的金融业务,均符合国家的相关法律法规。

截至2020年底,盛京银行逾万亿元的资产规模中,除常规的贷款业务,还有3580亿元规模的金融投资,包括大量证券公司管理或者信托计划项下的非标资管产品(近1500亿元)。市场人士多有疑问,这其中是否还有更多以及多少资金以不同方式流入恒大?

“恒大债务问题暴露后,盛京银行的市场关注度也在提高。我们行的合作,目前就是存量业务到期后,不敢再多新增。”前述股份行的金融市场部人士说,对盛京银行的担忧,一方面是区域经济环境的信用风险暴露,包括“辽宁那么多的国企违约”,给银行带来的资产质量压力,另一方面是对来自盛京银行和恒大集团之间关联交易的担忧。“恒大集团进来这几年,盛京银行原本积累的问题是一直没解决,然后被发现新的关联交易问题,雪上加霜了。”他说。

7月30日,联合资信对盛京银行的主体信用评级由AAA下调为AA+,评级展望为稳定。联合资信在报告中指出,盛京银行匿名客户风险暴露程度高,且非同业集团客户风险暴露占一级资本的比重亦处在较高水平,已突破监管限制,需持续关注其大额风险集中暴露情况及相关风险。2019年底,盛京银行最大单家非同业客户的风险暴露规模高达1552.32亿元。2020年,这一数据虽有大幅下降,但年末存量仍超过900亿元。

“和海航、天津物产后期的情况比较像,到后期内部融资都混乱了,不管用什么办法,能拿来钱就行。”一位股份行的金融市场部资深人士分析。

为保住恒大的风险不向盛京银行继续蔓延,辽宁当地政府决意逐步收回盛京银行的控制权。

8月17日,盛京银行公告表示,两家沈阳市属国资东北制药集团有限责任公司和沈阳盛京金 控投资集团有限公司,分别受让第一大股东恒大南昌持有的该行1.38亿股和2883.33万股内资股股份,分别约占盛京银行已发行总股份的1.57%及0.33%,交易金额合计约10亿元。

恒大财富涉嫌自融

在恒大财富的投资者遭遇到期无法兑付风险的背后,是这一平台投向恒大项目的“自融”本质。所谓“自融”,即企业为了帮自己或关联公司融资,设立一个平台筹资,并将资金投入自己公司或关联公司的项目中,如果涉众超过一定数量,这种做法很容易踩上非法集资或非法吸收公众存款的红线。

财新获得的多份投资合同显示,恒大财富的理财产品多打着“供应链金融”的名义,融资人或为恒大集团的关联公司,或为其宣称的供应商;合同并不约定募资去向,而是形成不断滚动的“资金池”。

“这些钱都由恒大财富统一调配,大部分会投入各地的项目,此外恒大集团总部还会抽调一部分资金。”前述恒大财富内部人士称,当理财产品到期时,再由恒大集团财务拨付相关款项给恒大财富,完成投资者的本息兑付。

一名恒大财富的员工告诉财新,在其日常销售的话术体系中,恒大财富属于“标准的供应链金融”,即融资主体为恒大集团的上下游企业,“一般是材料供应商”。

比如理财产品“恒中展辉”的募集说明书显示,这是一款非公开定向债务融资工具,发行人是青岛绿野国际旅游发展有限公司(下称“青岛绿野”)。这一公司股东层层穿透之后,恒大金融控股集团(深圳)有限公司持股1.92%,后者即为恒大财富的主体公司。

多份投资合同显示,青岛绿野是多个理财产品的融资方,涉及规模数以亿元计。然而,青岛绿野方面于9月13日在电话中回应财新称,关于该公司在恒大财富的所有融资事项,从头到尾“全程委托”给了恒大财富,“本公司对此没有解释权”。

青岛绿野仅是恒大财富数以百计的融资方之一。两名恒大财富的内部员工均向财新表示, 融资方用于募资的银行账户,均由恒大财富实际控制和操作。“一些融资方是壳公司,另一些是和供应商协商后,恒大财富方面实际控制了它们的银行账户。”一名恒大财富的内部员工说。

值得注意的是,前述募资说明书显示,青岛绿野用于募资的银行账户,开设在盛京银行上海浦东支行,而恒大集团是盛京银行的第一大股东。

事实上,在这个“供应链金融”体系中,恒大集团占据了绝对主导权。募集说明书显示,“恒中展辉”的承销商为宸宇投资管理(深圳)有限公司,这是恒大集团的全资子公司,亦是恒大财富多款理财产品的承销商。

此外,“恒中展辉”由恒大互联网金融服务(深圳)有限公司出具《差额补足承诺函》,提供增信服务。恒大这一子公司为所有理财产品提供全额本息的担保。

“恒大财富的融资,用于恒大各地项目公司,这在恒大集团内部并不是秘密。”一名恒大员工对财新称。杜亮9月12日晚间亦向投资者表示,“你们(恒大财富投资者)的每一分钱,都被我们真真实实投入到地产每个项目里面,这些项目只要开盘售卖,你们投入的钱就会及时回来。”他还称,政府会聘请德勤会计师事务所进场审计,之后会对外披露投资情况。

公开资料显示,在2021年8月9日至9月13日,恒大各地的项目公司将部分项目的股权出质给了恒大财富,涉及股权金额逾200亿元。即便是在停止兑付的9月8日以后,出质行动仍还在继续。

投资者将这一举动理解为,恒大集团将恒大财富的募资挪至了项目公司。财新发现,这样的股权出质行为仅发生在2021年8月9日之后。一名恒大财富内部员工称,公司对此没有解释。“我们不确定,这究竟是因为要给之前各地项目公司从恒大财富提取资金补充合理手续,还是因为恒大财富即将逾期,所以恒大集团方面塞一些资产过来处置。”

多名房地产业内人士对恒大财富涉嫌自融的做法并不意外。“房企通过发行理财产品的方式募资,几乎全部都是自融。”一名熟悉房企融资的人士称,这在行业内几乎是通行做法,“房企那么缺钱,难道设了融资平台,还是为了帮别人借钱?”

该人士称,在P2P行业受到整顿后,多家房企的理财平台出于规避政策风险考虑,都转入“地下”。在恒大财富的平台上,投资者无法查看具体产品,若想投资,只能通过产品经理先咨询,再通过银行转账方式,将钱打入指定的账户。

2020年1月7日,长沙市雨花区打击和处置非法集资工作领导小组办公室曾发布红头文件,  提醒市民谨慎投资恒大集团旗下公司的理财产品。文件称,位于该区的恒大楼盘中有理财宣传广告,经查,恒大财富、宸宇投资并未取得湖南省从事金融业务的资质,已涉嫌非法金融。

第二天,恒大财富即发布声明称,公司代理销售的中小企业理财产品均在金融交易所正式备案,且长沙市雨花区已确认其代理销售产品的合规性。

“按照公司统一口径,我们是比照私募基金管理。”一名恒大财富的员工告诉财新,恒大财富没有基金牌照,因此对外亦仅宣称“代销”,“基金销售牌照在深圳市金海九州基金销售有限公司 ”。

工商登记资料显示,金海九州成立于2014年7月,经证监会批准从事基金销售业务。这家公司的股东穿透后,实为刘寿闰、罗诚、伍天歌、徐文、何妙玲等5名自然人,与恒大集团本身并无直接股权关系。“多人为恒大高管。”前述恒大财富员工称,刘寿闰是恒大财富的领导班子成员,分管品牌;罗诚是分管风控的“一把手”;伍天歌是副总经理;何妙玲为恒大集团副总裁。

这正是恒大财富在金融资质上打的“擦边球”。

据财新掌握的理财产品合同,目前与恒大财富合作的金交所主要有六家,规模均较小,比如“恒中展辉”产品在广西中马新城国际金融服务中心有限公司备案。理财合同显示,这家公司只提供备案服务,不就交易本身承担任何法律上的义务或责任,且其出具的关于理财产品信息及资料仅供参考,该机构对信息真实性不作任何保证。

“当前房企都宣称自己按照‘类私募’基金来管理,但即便是私募基金,目前的监管也越来越严。”前述熟悉房企融资的人士称。2020年底,证监会发布《关于加强私募投资基金监管的若干规定》,明确限制“自融”,使用私募基金管理人及其关联方名义、账户代私募基金收付基金财产、使用私募基金财产直接或者间接投资于私募基金管理人、控股股东、实际控制人及其实际控制的企业或项目等行为均被禁止。

隐性负债知多少

从资产负债表来看,恒大俨然是庞然大物。截至2021年6月底,中国恒大的总资产23775亿元,总负债19665亿元。在这近2万亿元的负债中,有息负债为5717亿元,较2020年底下降了大约1450亿元。

恒大的有息负债降低,很大一部分是依赖延期支付供应商的应付款实现的。在2021年上半年,恒大的应付贸易账款及其他应付款较2020年底增加了1220亿元。

然而,表内有息负债下降并不很能说明问题。房企存在大量表外负债,是众所周知的秘 密。恒大的表外负债到底有多少,是否超过目前恒大净资产3000多亿元甚至更多,始终成谜。

一名房地产行业人士称,在项目开发前期,房企需要投入大量资金,此时并表,会让表内负债变高。因此,房企往往通过各种手段,将这些在建项目放在表外;在项目预售开启,甚至项目现金流回正后,再通过股权转让的形式,将项目并表。

上篇提到的恒大“超收宝”纠纷,即揭开了恒大表外负债的冰山一角。前述《方案》显示,400亿元基金通过信托计划,投入多个地产项目,首批资金投入深圳两个旧改项目中。

其中一笔107.16亿元提供给深圳市亮旸实业有限公司,用于收购深圳多吉投资有限公司100%股权和承接相关债务。工商登记资料显示,深圳市亮旸实业有限公司是长安信托股份有限公 司的全资子公司。《方案》显示,这一项目委托恒大地产集团(深圳)有限公司“代建代   管”。这也意味着,在资金投入这一旧改项目中时,由于与恒大并不存在名义上的股权关系,因此项目无需并入恒大的财务报表。

另一笔162.81亿元提供给深圳市俊旸实业有限公司,用于收购深圳市馨乔实业有限公司。深圳市俊旸实业有限公司是中融国际信托有限公司的全资子公司,因此这一项目同样无需并入恒大的财务报表。

财新获得的员工“超收宝”7期的方案亦显示,恒大用类似的方式,再度利用杠杆资金,收购了10个项目公司的股权,这些项目同样暂时无需并表。

2.jpg

3.jpg

此外,名股实债也是一种隐性负债的模式。2017年以来,恒大曾进行了三轮密集的增资扩股,共计增资1300亿元,偿还了2013年以来陆续发行的1129亿元永续债。这些永续债曾帮助恒大完成从三、四线到一、二线城市的布局转型,使其一、二线城市项目占比超过70%。但高于13%且逐年跳升的永续债也吞噬了利润。在中国恒大2016年176.2亿元净利润中,归属于永续债持有人的净利润就高达106亿元。

恒大集团迫切需要甩掉永续债这个大包袱。在1300亿元战投中,山东高速集团有限公司(下称“山东高速”)出资最多,总计230亿元。但多位接近交易的人士称,山东高速还向恒大   提供其他借款,总额约600亿元,利率12%—15%。一位接近交易的人士称,“一家国企向单一企业提供这么大规模的借款很少见,市场高度关注,所以在2020年12月,山东高速坚决退出了恒大”。市场人士普遍认为,当初的这1300亿元战投即为名股实债,而2020年底转股后仍存在这种可能。

采用类似操作手法的,还有恒大旗下的经纪板块“房车宝”。2021年3月,“房车宝”引入多名战略投资者入股163.5亿港元,公开承诺如一年内未能上市,投资方有权要求恒大溢价15%回购股权。

恒大的隐形负债,还包括拖欠被并购方的股权款。一位代理地方房企起诉恒大的律师告诉财新,在并购上,恒大在合同中对支付股权款设定了很多前置条件,“比如在规定时间内没有拿到土地证、规划批文、承诺的土地面积不够、拆迁成本超标等等,恒大往往以没有达到付款条件为由,不支付股权转让款,或者支付了首付款后,第二期、第三期违约拒绝支付”。

综合财新调查和裁判文书网检索情况可知,截至目前,至少有几十家小型房企诉讼恒大, 请求法院判决解除曾经签订的股权转让协议,或者判令恒大支付股权转让款,其中不少已经一审胜诉。这些诉讼显示,恒大通常以“包干费”方式支付股权收购款,但通常首期支付30%后,后几期会以各种方式拒绝支付,甚至在楼盘售罄后也不支付股权款。一位代理律师对财新称:“恒大各地的项目公司也不希望与当地合作伙伴搞得这么僵,也愿意还钱,但它们没有话语权,售楼款已划至集团总部。”

财新数据显示,截至目前,共有49家由恒大地产直接控股的地方公司成为被执行人。这些案件大多在2021年4月至7月间立案,且呈现逐月增加的趋势。

此外,恒大集团还拖欠了部分地方政府的土地款。比如在2021年7月,兰州市自然资源局发布公告,要求41家开发企业将欠缴的土地出让金尽快补缴到位,名单中有20家隶属于恒大,其中有19家是“兰州恒大文旅城”各细分地块的项目公司。

一位熟悉中国香港资本市场的人士称,这些年来,恒大在境外长年有不少15%左右的高息   融资,此前从未爆雷。然而,他也困惑,“长期这么高的利息,恒大怎么赚钱呢?”

高利润与走钢丝

一位长期关注恒大的市场人士认为,恒大确实错过了2017年的调整机会。当年,恒大增资1300亿元偿还了1129亿元永续债,合同销售额第一次冲破5000亿元,收入增长47%突破3000亿元,净利润翻番达370.5亿元。这一年预收款高达2675亿元,也是恒大历史上非常高的。尽管2013年的永续债利息非常高,但恒大仍然认为当时的举债是正确的,因为它帮助恒大完成了从三、四线城市到一、二线城市的布局转型,一、二线核心城市的项目占比已经超过70%。

然而,即使是当年,恒大的资金也并非像许家印说的那样宽松。2017年恒大扣除受限制资金后,手持现金是1520亿元。2018年恒大净利润大增至722.1亿元,土地储备总规划的建筑面积突破3亿平方米。2018年末恒大总借款为6731.4亿元,虽然比2017年的7323.6亿元有所下降,但其中一年内到期借款金额高达3183亿元,占借款总额47.3%。虽然2018年恒大减少了在土地储备上的投入,但截至2018年底,恒大仍有1910亿元土地款需要支付,其中有955亿元需要在2019年支付。而同期,恒大不受限制的现金为1293亿元。

2019年恒大颓势显现,净利润从722.1亿元骤降到335亿元,有息负债约8000亿元,客户预  收款大幅降至1297亿元,手持现金1500亿元,不足以支付3721亿元一年内到期的债务。2020年净利润降至314亿元。2021年上半年,恒大地产和恒大童世界集团有限公司的房地产业务净亏损41亿元,新能源汽车业务净亏损49亿元,靠着出售资产才获得105亿元净利。

也就是说,恒大一直在走钢丝,即使在最好境况的时候,手持现金也不足以支付短期负债。相形之下,另两大房地产巨头万科(000002.SH)、碧桂园(02007.HK)的现金均可以覆盖短期负债,预收款也可以覆盖应付供应商的贸易款。

在业内人士看来,恒大跌跌撞撞走到今天,每次危机都挺过来了,而且每一次都利用新的杠杆获得策略性发展机会。

一位投资界资深人士分析,恒大是在一个持续上升的市场利用高杠杆维持了危险的平衡。对于房企来说,最重要的是资金,相比之下拿地都是次要的,因为房价大趋势总是在上涨,可以消化地价,所以谁能拿到资金才是最重要的。“恒大奇高的负债率、高昂的融资成本,甚至千方百计拖欠股权款、地价款,给员工融资奖励,一方面说明恒大资金链一直紧绷,另一方面也是恒大能撑到现在的原因——它总能拿到钱”。

然而,靠房地产持续上涨弥补高昂的财务成本,总有停下来的一天。

来自客户的预收款,对地产商而言是不用支付利息成本的最便宜的资金,但是恒大与万 科、碧桂园相比,差距相当大。同样是7000亿元的合同销售额,2020年万科的预收款是6847亿元,碧桂园是6956亿元,而恒大的预收款只有1875亿元。从十年数据看,万科往往当年的预收款比第二年的收入高,说明预收款在第二年结转为收入;恒大的预收款仅有第二年收入的一半左右,这说明要么恒大的预售比例低,要么当年就结转实现销售。

image.png

因为恒大的预收款少,只能更多地依靠借贷,所以财务成本更高。2020年,万科的有息负债为2585亿元,利息支出167亿元,扣除80亿元的利息资本化后,利息净支出为87亿元。

恒大2020年的有息负债为7165亿元,利息开支合计817亿元,其中包括银行及其他借款利  息585亿元、优先票据及可换股债券利息198亿元、中国债券利息33亿元。恒大将694亿元利息资本化后,利息净支出仅为122亿元,利息资本化比例达到85%,而万科只有50%。

2020年,碧桂园的有息债务余额为3265亿元,但平均利息成本只有5.56%,利息支出232亿 元;碧桂园将全部利息资本化,虽然资本化比例达到100%,高于恒大,但是资本化的利息规模只有恒大的三分之一。与同一梯队的两家房企相比,恒大每年的利息支出规模远超对手,只是通过高比例的利息资本化将账面支出降下来,以维持名义上的利润。

“利息资本化”是房地产企业常用的会计方法,是将借款利息支出确认为一项资产,而不计入财务成本,需要相当长时间才能达到可销售状态的存货以及投资性房地产等所发生的借款利息支出,才能进行利息资本化,在恒大报表中被列入“开发中物业”。

2017年至2020年,恒大每年将450亿、599亿、509亿、694亿元利息资本化,致2020年“开发中物业”中的利息资本化余额已高达1697亿元。

净利润对于恒大来说,是必不可少的融资先决条件。恒大地产引入战投时曾承诺,2017年至2020年四个年度的净利润分别不少于243亿、500亿、550亿、600亿元,每年至少将净利润的68%分派给股东。一位业内人士称:“高结转加紧确认收入,同时将成本推后,形成几百亿的利润,对恒大来讲并不是很难,因为它的盘子大,腾挪10%就是几百亿利润,但是这很难持续。和TOP10的其他房地产企业相比,恒大的楼盘在北上广深极少能进入前五名,它主要靠规模,资金成本、人力成本明显比别人高,房子售价比别人低,靠什么赚钱?”

2021年上半年,恒大在全国各地打折销售,回款还债,恒大披露交楼均价只同比下跌11.2%,但收入同比下降444亿元而爆出巨亏,可能不仅仅是因为降价,而是积重难返后的水落石出。

image.png

许家印的资本故事

恒大近年来在寻求房地产外的转型方面着力颇多,但给人印象更深刻的是资本市场上的泡沫:还没卖一辆车的恒大汽车的市值一度冲破6400亿港元,是20年来卖出几万亿元房子的中国恒大的2倍!恒大汽车当前市值已跌破300亿港元。

财新获悉,许家印“朋友圈”中一位私营老板,曾以每股0.3港元成本持有8000万股恒大健康(恒大汽车的前身),在每股50多港元时卖出,大赚40多亿港元。其间又以20港元参与恒大汽车配售,股价大跌后又继续补仓,最后被机构平仓。

恒大汽车的迷之操作,其本意应亦在融资。2020年报时恒大称已投入474亿元造车,有市场人士分析:“恒大汽车两轮募资300亿港元,也就是说用投资人的钱做了投资,恒大自己并没投入多少,但是获得高市值,股票可以高价质押融资获得资金。”

2018年9月恒大以145亿元入股新疆的广汇集团成为二股东,讲的也是一个卖车故事,因为广汇汽车(600297.SH)是国内最大的汽车经销商。但是,2020年11月1日,恒大就将股权以148.5亿元出售给申能集团。现在复盘2019年1月恒大健康以9.3亿美元闪购蒋大龙的国能电动车  瑞典公司(NEVS)51%的股权,可以看出这笔收购对恒大价值很小,而当时许家印快速拍板,概因此前与贾跃亭的FF合作失败后,恒大急需一个故事能续接造车神话。果然,收购后恒大健康股价一飞冲天。

2020年8月9日,恒大健康被香港证监会指出股权高度集中:香港证监会的查询结果显示,2020年8月5日,有18名股东合共持有19.83%股份,连同恒大持有的74.99%总计94.82%,仅余44749万股(占已发行股份5.18%)由其他投资者持有。如此高的集中度下,股价暴涨暴跌也就不奇怪了。

房车宝集团股份有限公司(下称“房车宝”)也是一个快速融资的故事。恒大以换股的方式   收购了线下超4万家门店51%的股权,这不需要支付收购款,而是以上市为诱饵给予其房车宝的股权,这样恒大只花了10多亿元做门店改造和系统整合,就获得不菲的资产。截至2020年底,房车宝的总资产及净资产分别达到了47.41亿及31.06亿元。

2021年3月29日,房车宝引入17家战略投资者,融资额163.5亿港元,17家投资者认购完成后,将合计持有目标公司10%的股份。据此,目标公司总估值约为1635亿港元。此次融资为新股加老股结合出售。房车宝向投资者发行6.51亿股新股,中国恒大还向投资者出售6.51亿股老股,对价均为81.75亿港元。

这意味着,恒大在一年时间内将房车宝估值到1635亿港元,并套现81.75亿港元。如此虚无  缥缈的“财技”,为何还能吸引投资者入局?一位参与认购的机构投资者直言:“大家看中的是15%的对赌协议。如果房车宝一年未上市恒大会回购,还能把钱拿回来。之前恒大物业上市就很快,恒大很会把握资本市场机会。”

不过,亦有投资者称:“房车宝既卖房又卖车只是一个故事,恒大一年内也不会出什么问题,所以我们敢投。但房车宝资质比较差,比恒大物业差很多,最好是别上市,上市之后更麻烦,业绩不行会露馅。”

很多机构买房车宝,就是相信恒大“大而不倒”,至少一年内不会倒。有机构投资人说:“去年恒大要战投转股的时候,债券大跌,我们当时判断恒大不会倒,结果买后赚了很多钱。前一段华夏幸福债券也大跌,但感觉平安不会救,就没敢买。”

在恒大危机愈演愈烈之后,一位房车宝的投资人称:“当时恒大着急套现做中期业绩,我们都没来得及和他们谈其他质押或担保条件,现在非常后悔。”

截至2021年6月,恒大最新股本总额132.48亿股,许家印、丁玉梅夫妇及其家族持有101.6212亿股,占总股本的76.7%。如果从上市公司股东的角度分析,自上市以来的恒大分红总额691.85亿元,其中529.65亿元分给了许氏夫妇及其家族。

恒大的资本故事是顺势扩张,还是为了给债务缠身的恒大地产以喘息?一位资本市场资深人士分析:“本质上恒大是通过汽车和房车宝这两个板块的运作,降低了恒大表内的整体负债率。通过高估值获得了融资。恒大做汽车或许能比别人做得长一点。但恒大终究是以投资汽车的名义圈地,希望从土地和房地产上把钱赚回来,比如在南沙拿了大片土地。而恒大地产有太庞杂,看不清,不敢投。”

浮华过后终会水落石出。随着房价下行和三条红线的推行,财技腾挪已经无法抵御经营上越积越高的财务成本,曾经风光无两的恒大陷入了重重危机。

许家印的个人资产也在悄悄发生变化。近日其在香港自住的山顶豪宅出现“转名”,或是为之后处置境外资产增加灵活便利性。许家印原透过巨山有限公司(下称“巨山”)持有布力径10号C洋房。香港公司注册处文件显示,许家印7月30日卸任巨山的董事,并于同日改由谭海军接任公司董事。截至9月16日,香港公司注册处文件显示,巨山尚未出现股东变更记录,意味着公司仍由许家印担任股东。

过去10年,也就是2011年到2020年期间,恒大集团年年分红,分红率一直维持在50%,远高于保利、融创、碧桂园、万科20%—30%的分红率。

巨额分红都分给了谁?截至2021年6月,恒大最新股本总额132.48亿股,许家印、丁玉梅夫妇及其家族持有101.6212亿股,占总股本的76.7%。如果从上市公司股东的角度分析,自2009年上市以来的恒大分红总额691.85亿元,其中529.65亿元分给了许氏夫妇及其家族。

Fix: Microsoft Store Error Code 0x80072F7D in Windows 10

re you stopped by the error code 0x80072F7D when trying to access the Microsoft Store in Windows 10? Many users encountered this issue after they upgraded their OS to Windows 10. The error message is as follows: Check your connection. Microsoft Store needs to be online. It looks like you’re not.

fix-microsoft-store-error-code-0x80072f7d.png

If you are also troubled by this issue, don’t worry. There are ways to work it out. To fix the Microsoft Store error code 0x80072F7D in Windows 10, you can follow the feasible methods listed below.

Method 1. Run the Internet Connection Troubleshooter

Microsoft Store error code 0x80072F7D will occur when there’s something wrong with your Internet connection. To address the issue in this case, the first thing you can do is to run the Internet Connection troubleshooter. The steps are as follows.

Step 1. Type “troubleshoot” into the search bar, and click on Troubleshoot in the search results.

troubleshoot-fix-microsoft-store-error-code-0x80072f7d.png

Step 2. Find Internet Connections and click on it.

internet-connections-fix-microsoft-store-error-code-0x80072f7d.jpg

Step 3. Click on Run the troubleshooter.

run-troubleshooter-fix-microsoft-store-error-code-0x80072f7d.png

Step 4. Select Troubleshoot my connections to the Internet. Then the troubleshooter will find and fix the problems with connecting to the Internet or to websites.

troubleshoot-connections-fix-microsoft-store-error-code-0x80072f7d.png

Method 2. Run WSReset.exe to Reset the Microsoft Store

The second method you can try is to reset the Microsoft Store. The operation is also very simple. You just need to run WSReset.exe like this:

Step 1. Use the shortcut keys Windows + R to launch the Run dialog box.

Step 2. Type “wsreset.exe” into the box and hit Enter to run it.

wsreset-fix-microsoft-store-error-code-0x80072f7d.png

Step 3. Restart your computer and check if the Microsoft Store error code 0x80072F7D is gone.

 

Method 3. Modify the Internet Settings

According to some users who encountered the Microsoft Store error code 0x80072F7D, the Internet Settings may be partly to blame for this issue. To determine if you are in the same situation, you can follow the steps below to check your Internet Settings.

Step 1. Use the shortcut keys Windows + I to launch Windows Settings.

Step 2. Click on Network & Internet.

network-internet-fix-microsoft-store-error-code-0x80072f7d.png

Step 3. Click on Network and Sharing Center to open it.

sharing-center-fix-microsoft-store-error-code-0x80072f7d.jpg

Step 4. Find Internet Options in the lower-left corner and click on it.

internet-options-fix-microsoft-store-error-code-0x80072f7d.png

Step 5. Get to the Advanced tab and see if the Use TLS 1.2 option under Settings is checked.

advanced-fix-microsoft-store-error-code-0x80072f7d.png

If no, that means you are in the same situation and it’s the problem with TLS 1.2. In this case, to get rid of the Microsoft Store error code 0x80072F7D, you just need to check the Use TLS 1.2 option and click on Apply and OK to save the change. Then reboot your computer and the Microsoft Store to see whether the error code is gone.

Method 4. Clear the Cache & Cookies in Microsoft Edge

If all else fails, try clearing the cache and cookies in Microsoft Edge to resolve the Microsoft Store error code 0x80072F7D. Take these steps:

Step 1. Launch Microsoft Edge and tap the ellipsis icon in the top right. Then select Settings.

settings-fix-microsoft-store-error-code-0x80072f7d.png

Step 2. Click on the Choose what to clear button.

choose-what-to-clear-fix-microsoft-store-error-code-0x80072f7d.png

Step 3. Check the Browsing historyCookies and saved website data and Cached data and files options, and then click on the Clear button.

clear-fix-microsoft-store-error-code-0x80072f7d.png

After clearing the cache and cookies completely, close the browser and restart your computer to let the changes take effect.

使用多个路由器有线桥接实现无线漫游

 

原文:https://blog.mangege.com/tech/2016/11/15/1.html

虽然 WDS 是平价的无线漫游实现最优先考虑的方案.但 WDS 几个路由之间的通信还是无线,无线没有有线稳定这是不争的事实.

使用有线桥接来实现无线漫游,各个路由之间的通信通过有线,相对来说理论上要稳定些.

示例:

三个路由器,一主二从.

两个也行,我这只是演示,表示接两个三个从路由都是没问题的.

1. 主路由设置

主路由和普通路由设置没有差别, Wan 口接光猫, Lan 接电脑和从路由器.

主路由为 openwrt 系统,其 Lan IP 为 192.168.2.1 .

我的主路由设置截图:

master router

2. 从路由 1 设置

所有 从路由要关闭 DHCP 服务器 ,并 Lan IP 要设置为与主路由的 Lan IP 同网段.

从路由的 Wan 无需要接网线, 主路由接根网线直接插到从路由的 Lan 上 .

从路由 1 为 openwrt 系统, 其 Lan IP 为 192.168.2.5 .

从路由器 Lan 口设置截图:

slave router 1

  • 圈1 为 Lan 的 IP ,通过此 IP 可以访问到你的从路由器.
  • 圈2 和 圈3 设置从路由器的网关和DNS,不设置从路由器不能上网,但接入从路由器的设备能上网.
  • 圈4 为关闭 Lan 口的 DHCP 服务器.

3. 从路由 2 设置

从路由 2 设置和 从路由 1 设置没什么差别,我这边只是给了一个 TP-LINK 的路由来演示,表示路由器不一定要用 openwrt 系统.

Wan 不接网线, 主路由过来的网线接在 Lan 口上. 设置 Lan 口 IP 和关闭 Lan DHCP 服务器.

slave router 2

4. 结尾

主要设置已经完成,之后配置 Wifi 为相同的 SSID 和 密码就行了.注意信道不要一样.推荐使用 1 6 11信道.比如我的主路由的信道是1 ,从路由 1 的信道是 6 ,从路由 2 的信道是 11 .

这样就低成本的实现高质量的无线漫游了.

原理

主要把从路由的 Lan 区当交换机用,只是比普通的交换机多了支持无线的接入,而无线接入进来还是在 Lan 的网段.

为什么要关闭 DHCP ? 因为从路由器都是当交换机,这样所有的 IP 都是从主路由的 DHCP 获取,这样获取的 IP 都是一样的,并且网关还是主路由器的 LAN IP .

网上有说有些路由器不支持把 LAN 口当交换机使用,感觉现在的路由应该都支持这么基础的功能吧.

参考资料

https://wiki.openwrt.org/doc/recipes/bridgedclient

上文提到要关闭防火墙,个人测试不关也没关系.

https://wiki.openwrt.org/doc/howto/wide.area.wifi

上文提到多个路由要用不同信道.

WPS Pro For Android

 

官网介绍地址:http://mo.wps.cn/pc-app/office-pro.html#pro_hp_contact

WPS Office for Android专业版下载地址:http://mo.wps.cn/pc-app/Android/moffice_11.4.1_default_ProCn00110_multidex_c88969cc5ef.apk

移动版激活码:

R8R8P-MTT6F-KLRPM-J7CAB-PJM8C
7LR67-WTXPA-KLUHV-GEK2E-QW4CK
EUYTH-3KWKL-PJMX7-XBCPW-9U2DD
THUV2-32HH7-6NMHN-PTX7Y-QQCTH
A4XV7-QP9JN-E7FCB-VQFRD-4NLKC
U2PWU-H7D9H-69T3B-JEYC2-3R2NG
7G2HE-JR8KL-ABB9D-Y7789-GLNFL
9DP6T-9AGWG-KWV33-9MPC8-JDCVF

 

 

NVIDIA FFmpeg Transcoding Guide

来源:

1. https://developer.nvidia.com/blog/nvidia-ffmpeg-transcoding-guide/

2. https://docs.nvidia.com/video-technologies/video-codec-sdk/ffmpeg-with-nvidia-gpu/

All NVIDIA GPUs starting with the Kepler generation support fully-accelerated hardware video encoding, and all GPUs starting with Fermi generation support fully-accelerated hardware video decoding.  As of July 2019 Kepler, Maxwell, Pascal, Volta and Turing generation GPUs support hardware encoding, and Fermi, Kepler, Maxwell, Pascal, Volta and Turing generation GPUs support hardware decoding.

The processing demands from high quality video applications have pushed limits for broadcast and telecommunication networks. Consumer behavior has evolved, evident in the trends of OTT video subscription and the rapid uptake of live streaming. All social media applications now include the feature on their respective platforms. Live streaming will drive overall video data traffic growth for both cellular and Wi-Fi as consumers move beyond watching on-demand video to viewing live streams.

Video content distributed to viewers is often transcoded into several adaptive bit rate (ABR) profiles for delivery. Content in production may arrive in one of the large numbers of codec formats that needs to be transcoded into another for distribution or archiving.

This makes video transcoding a critical piece of an efficient video pipeline – whether it is 1:N or M:N profiles. The ideal solution for transcoding needs to be cost effective in terms of cost (Dollar/stream) and power efficiency (Watts/stream) along with delivering high quality content with maximum throughput for the datacenter. Video providers want to reduce the cost of delivering more content with great quality to more screens.

The massive video content generated on all fronts requires robust hardware acceleration of video encoding, decoding, and transcoding. Let’s take a look at how NVIDIA GPUs incorporate dedicated video processing hardware and how you can take advantage of it.

NVIDIA Encoding and Decoding Hardware

NVIDIA GPUs ship with an on-chip hardware encoder and decoder unit often referred to as NVENC and NVDEC. Separate from the CUDA cores, NVENC/NVDEC run encoding or decoding workloads without slowing the execution of graphics or CUDA workloads running at the same time.

NVENC and NVDEC support the many important codecs for encoding and decoding. Figure 1 lists many of the codecs, format and features supported with current NVIDIA hardware. Actual support depends on the GPU that is used. An up-to-date support matrix can be found at the Video Encode and Decode Support Matrix page.

GPU encode and decode capabilities image
Figure 1: GPU hardware capabilities

Hardware accelerated transcoding with FFmpeg

Using the FFmpeg library is common practice when transcoding video data. Hardware acceleration dramatically improves the performance of the workflow. Figure 2 shows the different elements of the transcoding process with FFmpeg.

Transcoding pipeline with ffmpeg flow diagram
Figure 2: Transcoding pipeline with FFmpeg using NVIDIA hardware acceleration

FFmpeg supports hardware accelerated decoding and encoding via the hwaccel cudah264_cuvidhevc_cuvid and h264_nvenchevc_nvenc modules. Activating support for hardware acceleration when building from source requires some extra steps:

  • Clone the FFmpeg git repository https://git.ffmpeg.org/ffmpeg.git
  • Download and install a compatible driver from the NVIDIA web site
  • Download and install the CUDA toolkit
  • Clone the nv-codec-headers repository  and install using this repository as header-only: make install
  • Configure FFmpeg using the following command (use correct CUDA library path):
./configure --enable-cuda --enable-cuvid --enable-nvdec --enable-nvenc --enable-nonfree --enable-libnpp --extra-cflags=-I/usr/local/cuda/include  --extra-ldflags=-L/usr/local/cuda/lib64
  • Build with multiple processes to increase build speed and suppress excessive output: make -j -s

Using FFmpeg to do software 1:1 transcode is simple:

ffmpeg -i input.mp4 -c:a copy -c:v h264 -b:v 5M output.mp4
-c:a copy copies the audio stream without any re-encoding
-c:v h264 selects the software H.264 encoder for the output stream
-b:v 5M sets the output bitrate to 5Mb/s

But this is going to be slow slow since it only uses the CPU-based software encoder and decoder. Using the hardware encoder NVENC and decoder NVDEC requires adding some more parameters to tell ffmpeg which encoder and decoders to use. Maximizing the transcoding speed also means making sure that the decoded image is kept in GPU memory so the encoder can efficiently access it.

ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -c:v h264_nvenc -b:v 5M output.mp4
-hwaccel cuda chooses appropriate hw accelerator
-hwaccel_output_format cuda keeps the decoded frames in GPU memory
-c:v h264_nvenc selects the NVIDIA hardware accelerated H.264 encoder

Without the -hwaccel cuda -hwaccel_output_format cuda option, the decoded raw frames would be copied back to system memory via the PCIe bus, shown in figure 3. Later, the same image would be copied back to GPU memory via PCIe to encode on the GPU. These two additional transfers create latency due to the transfer time and will increase PCIe bandwidth occupancy.

Memory flow without hwaccel diagram
Figure 3: Memory flow without hwaccel

Adding the -hwaccel cuvid option means the raw decoded frames will not be copied and the transcoding will be faster and use less system resources, as shown in figure 4.

Memory flow with hwaccel diagram
Figure 4: Memory flow with hwaccel

Given PCIe bandwidth limits, copying uncompressed image data would quickly saturate the PCIe bus. Prevent unnecessary copies between system and GPU memory, using -hwaccel cuda -hwaccel_output_format cuda result in up to 2x the throughput compared to the unoptimized call not using -hwaccel cuvid.

Processing filters

Transcoding often involves not only changing format or bitrate of the input stream, but also resizing it. Two options exist for resizing on the GPU: using the npp_scale filter or the nvcuvid resize option. The nvcuvid resize option can be used when transcoding from one input to one output stream with different resolution (1:1 transcode). See the next line for an example.

ffmpeg -vsync 0 hwaccel cuvid -c:v h264_cuvid resize 1280x720 -i input.mp4 -c:a copy -c:v h264_nvenc -b:v 5M output.mp4

If multiple output resolutions are needed (1:N transcode), the scale_npp filter can resize decoded frames on the GPU. This way we can generate multiple output streams with multiple different resolutions but only using one resize step for all streams. See the next line for an example of 1:2 transcode.

ffmpeg -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 \ -c:a copy vf scale_npp=1280:720 -c:v h264_nvenc -b:v 5M output_720.mp4 \ -c:a copy -vf scale_npp=640:320 -c:v h264_nvenc -b:v 3M output_360.mp4

Using -vf "scale_npp=1280:720" will set scale_npp as filter for the decoded images

The interpolation algorithm can be defined for scale_npp as an additional argument. Cubic interpolation is used by default but other algorithms might give better results depending on scale factor and images. Using the super-sampling algorithm is recommended for best quality when downscaling. See below for an example:

ffmpeg -vsync 0 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -c:a copy vf scale_npp=1280:720:interp_algo=super -c:v h264_nvenc -b:v 5M output_720.mp4

Mixing CPU and GPU processing

Sometimes it might be necessary to mix CPU and GPU processing. For example you may need to decode on the CPU, because the format is unsupported on the GPU decoder, or because a filter is not available on the GPU. In those cases, you can’t use the -hwaccel cuvid or -hwaccel cuda flag. Instead, you need to manage uploading the data from system to GPU memory using the hwupload_cuda filter. In the example below, an H.264 stream is decoded on the GPU and downloaded to system memory since -hwaccel cuvid is not set. The fade filter is applied in system memory and the processed image uploaded to GPU memory using the hwupload_cuda filter. Finally, the image is scaled using scale_npp and encoded on the GPU.

ffmpeg -vsync 0 -c:v h264_cuvid -i input.264 -vf "fade,hwupload_cuda,scale_npp=1280:720" -c:v h264_nvenc output.264

Multi-GPU

Encoding and decoding work must be explicitly assigned to a GPU when using multiple GPUs in one system. GPUs are identified by their index number; by default all work is performed on the GPU with index 0. Use the following command to obtain a list of all NVIDIA GPUs in the system and their corresponding ID numbers:

ffmpeg -vsync 0 -i input.mp4 -c:v h264_nvenc -gpu list -f null 

Once you know the index, the -hwaccel_device index flag can be used to set the active GPU for decoding and encoding. In the example below the work will be executed on the gpu with index 1.

ffmpeg -vsync 0 -hwaccel cuvid -hwaccel_device 1 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 -c:a copy -c:v h264_nvenc -b:v 5M output.mp4

Optimizations

All encoder and decoder units should be utilized as much as possible for best throughput. nvidia-smi can be used to generate real-time information about NVENC, NVDEC and general GPU utilization.

nvidia-smi dmon
nvidia-smi -q -d UTILIZATION

Multiple actions may be taken depending on those results. If encoder utilization is low, it might be feasible to introduce another transcoding pipeline that uses CPU decode and NVENC encode to generate additional workload for the hardware encoder.

PCIe bandwidth might become the bottleneck when using CPU filters. If possible, filters should run on the GPU. Several CUDA filters exist in FFmpeg that can be used as templates to implement your own high-performance CUDA filter.

You can always track GPU utilization and memory transfers between host and device by profiling the ffmpeg application using the Nvidia Visual Profiler, part of the CUDA SDK. Simply launch “Run application to generate CPU and GPU timeline” and select the ffmpeg application with relevant CLI options. The application timeline is illustrated on fig. 5

ffmpeg in nvprof image
Figure 5: ffmpeg application timeline

Turquoise blocks show colorspace conversion done by CUDA kernels while yellow blocks show memory transfer between host and device. Using Visual profiler allows users to easily track operations done on GPU, such as CUDA-accelerated filters and data transfers to ensure no excessive memory copies are done.

Collect CPU-side perforamnce statistics by compiling ffmpeg with the --disable-stripping CLI option to enable performance profiling.

This prevents the compiler from stripping function names so that commodity profilers like Gprof or Visual Studio profiler can collect performance statistics. CPU load level should be low with hardware acceleration on and most time should be spent within the Video Code SDK API calls, which are marked as “External Code” as function names are stripped from driver libraries. Figure 6 shows an example screenshot.

ffmpeg profiling in Visual Studio image
Figure 6: ffmpeg performance profiling with Visual Studio

Further Reading

For more examples on how to use FFmpeg and a look at the advanced quality settings that are available please take a look at the “Using FFmpeg With NVIDIA GPU Hardware Acceleration” guide.

Conclusion

FFmpeg is a powerful and flexible open source video processing library with hardware accelerated decoding and encoding backends. It allows rapid video processing with full NVIDIA GPU hardware support in minutes. Commodity developer tools such as Gprof, Visual Profiler, and Microsoft Visual Studio may be used for fine performance analysis and tuning. Check out the ffmpeg sources and give it a go!

Go get through socks5 proxy

set git through socks5 proxy:

git config --global http.proxy socks5://127.0.0.1:1080

go get via socks5 proxy:

http_proxy=socks5://127.0.0.1:1080 go get github.com/mattn/go-sqlite3

Recover git global config:

git config --global --unset http.proxy