暴风影音2010(人去楼空 官网猝死暴风影音今何在?)
作者:佚名 来源:4889软件园 时间:2023-04-13 10:17:32
暴风影音2010(人去楼空 官网猝死暴风影音今何在?)
暴风影音2010文章列表:
- 1、人去楼空 官网猝死暴风影音今何在?
- 2、2020魔幻系列之暴风集团:400亿转眼灰飞烟灭
- 3、暴风影音落幕:播放器时代流干了最后一滴血
- 4、如何实现在线视频播放?
- 5、暴风影音官网、App无法正常打开 此前集团高管已全部辞职
人去楼空 官网猝死暴风影音今何在?
近日,有网友发现,暴风影音官方网站以及App均出现问题,无法正常打开。
曾经风光无限的暴风集团,股价更是一路下跌至最低3元。截至11月26日收盘,市值仅有12.09亿元,不及高点时的3%。
11月26日下午,央视财经记者探访了暴风集团昔日的办公地址。
记者探访暴风影音办公地址 “暴风”去哪儿了
央视财经记者 李琳:我身后就是暴风集团曾经的办公地址,位于北京海淀区的首享科技大厦。就在今年7月29日,也就是暴风公告冯鑫被逮捕后的第二天,央视财经记者曾实地探访过这里,当时暴风集团的员工仍然在大厦的13层正常办公。
短短几个月过去,今天这里已经人去楼空了。
记者发现,在大厦一楼的公司楼层指引上已经没有了暴风集团的名字。记者来到暴风集团曾经的办公地址,也就是大厦的13层,看到如今这里已经是空空荡荡,只有零星的装修工人在这里作业。
一些被遗落的标签和奖杯,隐约显示这里曾有过的火热的工作状态和获得过的辉煌。
而对于暴风集团搬去了哪里,大厦的工作人员表示并不知情。
记者随后来到暴风集团在北京西四环附近的一处办公地址,同样一无所获。除了办公地址找不到了,暴风影音官方网站以及App,也均出现问题。
记者拨打了暴风影音的客服电话,一直无人接听。
暴风集团第三季度财报显示,前三季度公司实现营业收入9360.04万元,同比下滑90.95%,净利润为负6.49亿元。
11月25日,暴风集团发布公告,表示公司因存在2019年公司净资产为负的风险,可能触发暂停上市机制。同时,公司持续经营困难,除冯鑫外,公司的高级管理人员已全部辞职。
“暴风”将停 后人需警醒
“暴风”的案例能给市场带来哪些启示?
财经评论员 王超:自从实控人冯鑫被抓,暴风集团其他的高管就像獐子岛的扇贝一样纷纷跑路,不见踪影。如今,暴风影音的官网和App已经宕机、“猝死”,作为一代人共同青春回忆的暴风影音,也终将和我们的青春一样,消逝在风中。
回顾暴风集团的兴衰史,我用五个词来形容:
1.风调雨顺
从2003年到2009年,暴风的发展可谓风调雨顺,2009年用户数一度超过2.8亿,日活用户超过2500万,成为继QQ和迅雷之后的又一互联网新贵。
2.风雨无阻
2010年,暴风开始谋求在A股上市。为实现上市指标,暴风极度压缩成本,以确保盈利。但是,当万事俱备的时候,证监会却发起了IPO自查运动,直到2014年才重新恢复。而恰恰在这几年,对于上市风雨无阻的暴风科技,却错过了关键的战略转型期。
3.风头无二
2015年,暴风终于成功上市,恰恰赶在了新一轮A股互联网泡沫的风口,暴风一上市就创造了40天36个涨停的神话,市值最高超过400亿元,一时间风头无二。
4.暴风骤雨
市值的暴涨让董事长冯鑫的心态发生了变化,随即而来的是,暴风开始了暴风骤雨式的跟风式并购。但因战略和战术上的一系列失误,大部分并购都以失败告终。
5.凄风苦雨
2016年,冯鑫为了弥补公司巨大的缺口,开始用2亿元来撬动52亿的产业并购基金,但最终以被收购标的的破产而终结,暴风董事长冯鑫四个月前被带走调查,从此开始了他个人凄风苦雨的日子。
如今的暴风已是风雨飘摇,面对如此凄惨景象,我们应该从中反思一些什么呢?
如果当时A股就有科创板,暴风会不会及时上市加速转型呢?
如果暴风上市之后,A股有合理的定价机制,暴风是否还会吹起如此巨大的泡沫导致投资者在高位套牢呢?
如果冯鑫始终牢记企业发展的初心,没有被资本的膨胀冲昏了头脑,是否可以避免身陷囹圄呢?
如果一个企业能够始终聚焦科技创新,避免盲目追风,是否现在可以活得更好?可以为社会创造更多价值呢?
可惜的是,现实没有如果,这一系列问题要留给后人去思考。
2020魔幻系列之暴风集团:400亿转眼灰飞烟灭
文|AI财经社 杨俏
编辑|郭璐庆
暴风集团从成为妖股再到退市,只用了5年时间。留下的后遗症背后,却是光大证券45.65亿元的亏损。
日前,光大证券发布了2020年度业绩预增公告,预计2020年公司归属于上市公司股东的净利润为24.15亿元。同时,光大证券发布了另一则公告,称2020年计提预计负债及减值准备共计22.47亿元,减少净利润20.73亿元。
其中,有15.5亿元与暴风集团双方的MPS收购案相关,再加上此前2018年至2019年MPS收购案累计计提的30.11亿元,光大证券因此合计“出血”45.65亿。
互联网市场瞬息万变,商海沉浮之间,MPS的主要参与方暴风的沦落也成为了70后、80后这一代人的青春记忆。
“不给我请假就辞职”
山西走出的互联网企业家不少,耳熟能详的有百度李彦宏、乐视贾跃亭以及暴风集团冯鑫。
1993年,成绩不佳的冯鑫没有拿到学位证便毕业了,后续被分配至山西阳泉矿务局,但因为不想看人脸色,没呆几天就辞职了。
此后的几年,冯鑫做过食品公司的销售,BP机的维修,煤炭运输,历史老师,更是在北京大红门开了个馒头厂,作为营销副厂长不愿受束缚,再次跑路。
另一个比冯鑫早出生4年的贾跃亭,不甘心留在地方税务局做一个“农村会计”,毅然辞职开办了卓越实业公司。
不知道想要什么的冯鑫,恰巧在1998年春节期间看到了《联想为什么》一书,书中的杨元庆、郭为给了他启发,他顿然发觉,这才是他想要做的。一心决定去联想的冯鑫,虎头虎脑的跑到联想大楼直言想在此工作。
“我想来联想工作,做什么都行。人家问,你有北京户口吗?我说没有,他们说那我们不要。当时我找工作就是这么找的,傻得不行。”冯鑫说。
但他并没有放弃去联想的决心,恰巧在《北京青年报》中看到了“求伯君砸锅卖铁再造金山,联想出资”的广告,“我想着也是联想投资的公司,就想去金山工作。”
进入金山,冯鑫开启了自己的互联网生涯。走基层,会算账,他走到了金山毒霸事业部副总经理的位置。
在金山任职期间,恰好是韩日世界杯中国足球队第一次入围世界杯,冯鑫向雷军请假去看球,并直言:"不给我请假就辞职。"
顶头上司王峰日后也评价冯鑫:"打工的时候,唯一敢顶撞包括我在内的顶头上司的人。"
在金山的6年时间里,冯鑫结识了雷军(小米创始人)、周鸿祎(360集团董事长兼CEO)、蔡文胜(美图董事长)等一众大佬,也为他后来的事业崛起埋下了伏笔。
2004年,冯鑫被周鸿祎挖到了雅虎中国出任个人软件事业部总经理。此时的他,已经嗅到了视频行业的机会,有了创业的念头。
“我找周鸿祎,周鸿祎说你这个方向我不做。我找雷军,他说要考虑两周。考虑了三天我就受不了了,我觉得我是在等待别人宣判我的命运。我算了一下,下定决心,就开干了。其实,你找人投资觉得要200万才能开始干,自己算算花20万也能开始。”后来,冯鑫用20万元成立了“酷热影音”,两三个月便赚了100万。
当年,31岁的贾跃亭才刚刚来到北京,创立了乐视网,成为当时市场上第一家专业的视频播放器。
没有赶上视频播放器的风口,冯鑫只能在蔡文胜的助攻之下,2007年凭借IDG投资的300万美元,收购了暴风影音,组建成立暴风科技。
暴风影音因其2M宽带下1020P的超清观看体验、多种视频解析格式转码等优势,在2009年的时候,用户数量达到了2.8亿,占当时网民总数的73%。成为仅次于QQ和迅雷的第三大软件。
刚好2010年乐视网在创业板成功上市,让冯鑫看到了希望。IDG熊晓鸽告诉他,“暴风更适合在国内上市”。
彼时,爱奇艺、优酷等视频网站盯上了长视频领域,依靠资本的力量,烧钱重金追求视频版权。
冯鑫无暇顾及其他,曾求助“旧金山”的雷军,“我冯鑫到底是哪里有问题?"雷军总结了三点,方向不够大、缺乏帮手和对钱的认识不够深刻。
一波三折之后,暴风终于盼来了A股上市,并赶上牛市的疯涨、一时间风头无两。
创造A股神话
2015年,是A股市场疯狂的一年。创业板从2014年底的1471点,上涨至4037点,“互联网 ”更是成为稀缺标的,成为资本市场的追捧。
当年3月,暴风集团正式在国内创业板挂牌上市并受到热烈的追捧。连续41个交易日收获37个涨停板,一字涨停28个,股价从发行价7.14元最高达到327元,总市值突破400亿,市盈率超过千倍,成为了市场上著名的“妖股”,作为A股曾经的“第一高价股”,甚至一度被视为是中概股回归的“标杆”与“旗帜”。
彼时,阿里、百度、网易、京东、新浪等互联网大企业均在美国上市,而腾讯在香港,乐视成为了A股最大的互联网公司。当年,乐视的市值也是一路飙升,达到了巅峰的1700亿元。
暴风内部也创造了10位亿万富翁,31位千万富翁和66位百万富翁。冯鑫第一次体验到了,什么叫做一夜暴富。
他更是公开表示,下一个暴风的亿万富翁将在未来招聘的精英人才中产生。
但他并不知道,这一幕迟迟未来,也不会来。
资本市场追捧暴风时,却忽略了与市值严重不符的基本面。当年暴风的营收为6.5亿元,净利润1.73亿元,2014年,营收3.86亿元,净利润4194万元。
彼时,其他视频都在向移动端转移之时,暴风的广告和流量都有所流失。意识到PC端业务下滑的趋势,暴风开始押注新风口——VR。
2015年1月成立的暴风魔镜,是暴风参股的子公司,主营业务为虚拟现实业务。无论其声誉还是业务,都具有强大的投资背景。其股权与投资中,包括华谊兄弟、天音通信、瑞成汇达、光启松禾等企业。
暴风正式进军电视市场也是于2015年,成立了暴风TV。低价售卖硬件,预装自己的软件平台,赚内容平台的盈利。虽然靠着电视销售,暴风的营收在2016年达到了16.7亿元,但却首次陷入了上市以来的亏损,全年亏损2.4亿元。
2017年,暴风又成立了新文化公司,将以VR、AR为核心,专注于文化旅游等领域的IP投资、项目孵化和产品运营。
此番扩张背后,资本市场逐渐冷静下来。2017年7月17日,暴风集团股价回落至19.95元/股,总市值跌至66亿元。
直至2018年,暴风集团实现了11.3亿元的营收,同比下降41.2%,其中9亿元营收来自电视硬件收入,占总营收的80%,亏损高达10.9亿元,同比暴跌2077.7%。
在股价下跌、公司亏损的面前,冯鑫只看到了电视业务所带来的转机。更是提出了“ALL for TV”的集团战略,并计划2019年将TV业务注入上市公司。
在暴风拓展新业务线的同时,主营的视频业务迅速冷落,2018年,视频点播业务贡献的营收不到4%,广告业务占总营收的12.62%。
股市狂欢之后,留给市场的是一地鸡毛。冯鑫事后也表示,“自己太膨胀了,拿着几十块钱,却在做着几千块钱的事。”
“不是恶人”
冯鑫此前经常参加足球和乒乓球运动,也一直关注着体育产业。
他认为,在暴风的生意布局中,核心是屏幕和娱乐。“我们做VR和电视,内容的核心应该是影视和体育,人类文化史上不败的就是影视和体育。”
2016年2月,暴风集团与光大证券旗下孙公司光大浸辉分别出资2亿元和6000万成立浸鑫基金,同时募资50亿元收购境外体育传媒公司MPS 65%的股权,冲击体育行业。MPS曾具有意甲、英超、法网等多项热门体育赛事的版权。
据天眼查APP显示,浸鑫基金股权名单中有银行、信托等在内的14位出资方,包括招商财富、上海华瑞银行、上海爱建信托、钜派投资等。
冯鑫本想通过2亿资金以小博大,将MPS收购后装入上市公司当中,通过资本运作完成做大市值。却不知,自己早已被“割了韭菜”。
不足2年时间,MPS出现高管套现离职、版权陆续到期、经营不佳等危机,2018年10月被英国高等法院宣布破产清算。
预期收益瞬间化为乌有,暴风集团和冯鑫已无力赔偿其他出资方的损失,背上了巨额债务。后期更是因其中的利益纠纷,冯鑫被同样亏损的光大浸辉、上海浸鑫告上了法庭,请求收回损失合计7.5亿元。
2019年7月,冯鑫因行贿入狱,9月,暴风集团被证监会立案调查。
冯鑫和暴风双双跌入低谷后,2019年,暴风前三季度营收仅为0.94亿元,净利润亏损6.5亿元,负债总额达到了10.17亿元。
到2020年年中,暴风集团内部已剩不足10名员工。10月26日,暴风集团发布公告称,公司股票被深圳证券交易所决定终止上市。
到11月10日,暴风集团正式退市,股价停留在了0.28元。截至其退市前,暴风集团还有63526户股东。
在这场风暴中,冯鑫没有责怪团队,没有责怪帮他做业务的人,也没有临阵脱逃。
蓝港互动创始人王峰,也曾是冯鑫在金山的上司,发朋友圈表示:"他没有敌人,绝对不是恶人。"
本文由《财经天下》周刊旗下账号AI财经社原创出品,未经许可,任何渠道、平台请勿转载。违者必究。
暴风影音落幕:播放器时代流干了最后一滴血
即便再过十年仍会有人记住播放器们的名字,但那只不过是回忆或者情怀。
旗下的产品停摆,总部人走楼空。结局令人唏嘘的暴风影音,发出了PC影音播放器时代最后一声哀嚎。
感慨暴风影音命运的同时,不妨回看下PC影音播放器曾经的巅峰时期。 网速慢得像蜗牛的年代,暴风影音、迅雷等影音播放器凭借技术和用户体验的优势成为赢家。
但随后用户观看视频的阵地从PC端向Pad、移动端上转移,付费观影成为主流。视频网站手握巨头资本,快速发展,再也没给影音播放器们留下一丝的反超机会。
“优爱腾”视频APP当道的后播放器时代,一度“装机必备”的PC影音播放器淡出了人们视线。快播、暴风、迅雷看看们倒下的身影,成了播放器时代结束的句点。
黄金年代
即将享受5G网络1秒下载1GB电影的人们,多少人能记起十多年前每秒几十KB的“龟速”?
除了令人“捉急”的下载速度,还需要下载到自己的电脑硬盘上,再用播放器解码观看;加上播放器支持的格式有限,下载的视频还未必能成功播放。放到现在,这基本都是网友无法忍受的槽点。
当时,微软操作系统自带有media player播放器,但在解析有限的视频资源面前,则显得十分鸡肋。
2003年,暴风影音横空出世,在解决了680种视频播放格式之后,“神器”之名被叫响,并一度获得国内播放器市场70%以上的份额。
可以说,暴风影音当年主要解决了视频“能看”的问题,在“怎么好看”的问题上,则主要是依靠一些基于P2P技术的播放器,解决在线视频点播观看时带宽、负载有限的问题,还解决了观看人数一多视频就卡的问题。
2005年,PPS诞生。这款播放器是能直接收看全球电视节目的网络电视。对于2008年在海外留学的学生而言,在线观看北京奥运会直播的回忆中必不能少了PPS。它的广告时间很长,却不妨碍其受到网友们的推崇。
PPLive也在同一年出现,是如今PPTV的前身。由于提供更丰富的体育直播赛事,PPLive聚拢了一批在线看直播的体育迷。趁着早期网络电视直播的红利,它们在网民中颇有人气。
在那个年代,“网速不佳”是上网通病。在这种情况下,谁的技术越强,用户体验越佳,自然用户多、黏性强。
到了2007年,快播出现。凭借更优的编解码技术和P2P技术,以及视频BT种子可以在线观看的功能,快播迅速崛起。但能称霸市场多年,还在于它能打开市面上绝大部分的资源站。
网友看视频的需求在几年间不断走高,一些能提供盗版甚至色情内容的电影资源站一定程度上弥补了线上正版资源不足的矛盾。对于快播而言,大量的盗版内容和资源站都成为其吸引用户和流量的利器。于是在2011年,快播成立的第四年,它的营收超1亿元。
原本作为暴风影音“好搭档”的下载工具迅雷,也在那几年推出了自己的播放器迅雷看看。也是在2011年,迅雷看看覆盖用户数超过暴风影音。艾瑞在2012年一项调查显示,迅雷看看已经位列2012上半年中国十大影音播放类软件的榜首。榜单中的前两位,已无暴风影音的身影。
来自巨头的进攻
对于这样的“落伍”,当时的暴风影音或许无暇顾及、也未必在意。
因为在2008年时,暴风的心思已经从播放器生意转向了别处。在线视频领域中,它正与土豆、优酷等视频网站一起激战正酣。
在线视频网站一度与播放器同时起步,同期发展。乐视网、土豆、56、优酷、酷6等后来为我们所熟知的视频网站,都是在2004年到2006年间建立。到2007年时,类似的视频网站已超过200家。
其后数年,视频网站累计吸引风险投资超过4亿美元,截止2008年前7个月融资近1.5亿美元。
但那个时候,大多数视频网站采用的UGC模式并未完全走通。依赖用户生产、上传内容从而累积流量提高广告营收的方式,并未能有效转化为商业收益。而带宽和服务器成本又居高不下,因此不得不靠增加融资来维持运作。
2008年3月,美国视频网站Hulu上线,当年即获得近1亿美元收入。它“正版免费 广告”商业模式,验证了“通过优质内容去吸引用户再通过广告盈利”是清晰的、可行的盈利模式。
一直烧钱血拼摸索盈利模式的国内视频网站们见状,借鉴Hulu模式调整自己的发展模式,一边下血本购买带宽,一边千方百计大手笔购入更多正版资源。
同样是提供视频观看功能,一开始,影音播放器的客户端优势明显,P2P技术下缓冲速度比在线视频网站更快,内容也更高清。
此前,暴风董事长冯鑫甚至截图优酷网视频与自家作比,以清晰度差为由呛声优酷等视频网站,并得到了一众播放器老总的声援。随着视频网站们此后也推出自己的PC客户端,播放技术有所提升,PC影音播放器在“高清”上的竞争优势已经大不如从前。
网络整体的气候环境也在发生变化。宽带环境逐步改善,网速提升,移动互联网时代正到来,电脑上“本地”观看的传统方式渐渐被在线、无线观看所淘汰,下载需求被压缩,一部分用户从PC客户端上迁移到了移动端。
数据表明,2013年10月,移动端月度覆盖人数已经达到1.38亿人,同比增长58.4%,同期PC端增长率只有1.2%。
长期被盈利难题所困扰的视频网站们,在BAT巨头大鳄资本的持续输血下,用版权的“买买买”构建起自己的护城河,并确立了行业竞争的新游戏规则。
在这种局面下播放器的问题被无限放大:找资源,下载都需要用户反复折腾,用户体验比视频网站相差太多。
2010年被业内视为有标志性意义的一年。最早胜出的赢家乐视坐拥2300多部电影、43000多部电视剧版权,在2010年8月时登陆A股。也是这一年,视频领域开始成为有关部门打击盗版的重点领域。
2013年,腾讯、优酷、乐视等数十家视频网站和版权方发起“中国网络视频反盗版联合行动”,起诉百度和快播。在这次行动中,百度影音和快播公司被有关部门认定为构成盗版事实,最终也导致了王欣入狱。
用正版内容作为武器,视频网站们完成了对播放器们的围剿。
事实上,暴风影音、PPS等播放器们在整个过程中并非完全被动挨打。以暴风为例,它在2013年时也尝试购买大量版权,但因背后缺少资金支持,烧钱拼版权的做法难以再进行下去。
稍晚一些进入在线视频领域的PPS、PPTV,后来也都因在版权上的投入不足,而没有树立起有效的壁垒。从播放器领域打到在线视频的转型,基本上全都以失败告终。
在多轮洗牌过后,优酷土豆、爱奇艺、腾讯视频三足鼎立的在线视频格局就此确立,背后的BAT三巨头虎视眈眈。
时代的终结
暴风的命运被在线视频的发展彻底改写,“装机必备”变得不再必须。
即便是回归A股成了明星,搞“DT大娱乐”、VR眼镜或者“生态联邦”,都没能改变它早已衰落的命运;
快播于2014年被查封,大量的盗版电影站遭到下线,创始人王欣入狱。当年,侵权播放器提供的免费观看在“技术无罪论”下仍引起广泛争议。但等到三年后王欣出狱时,新的视频付费时代已经来临了;
另一位曾风光无限的播放器迅雷看看,则在2015年时被迅雷宣布作价1.3亿元出售给北京响巢国际传媒有限公司,被外界批为“贱卖”。而迅雷表示,这是为剥离“非核心及无盈利能力”业务,同时保证移动业务和“水晶项目”的战略执行,现在看来,竟然是提前脱手卖了个好价钱;
PPS和PPTV则委身巨头,分别被爱奇艺和苏宁收购,随后逐渐远离行业的焦点。相比暴风快播的倒闭结局,还算体面。
在误判、错失新的行业发展机遇后,如果没有及时的自救,走向衰落无可避免,差异或许只是时间快慢的不同。就像暴风影音,倒下并非猝然。
暴风,快播,PPS。即便再过十年仍会有人记住播放器们的名字,但那只不过是回忆或者情怀。这个行业的存在,注定只是视频产业发展历史中的一辆婴儿车。
来源:亿欧网
如何实现在线视频播放?
视频点播
1. 视频点播需求分析
1.1 需求描述
视频点播需求如下:
1、学生可以在windows浏览器上在线观看视频。
2、播放器具有快进、快退、暂停等基本功能。
1.2 视频点播解决方案
1.2.1 流媒体
流媒体
详细参考:https://baike.baidu.com/item/流媒体/98740?fr=aladdin
概括理解:流媒体就是将视频文件分成许多小块儿,将这些小块儿作为数据包通过网络发送出去,实现一边传输视频 数据 包一边观看视频。
流式传输
在网络上传输音、视频信息有两个方式:下载和流式传输。
下载:就是把音、视频文件完全下载到本机后开始播放,它的特点是必须等到视频文件下载完成方可播放,播放等待时间较长,无法去播放还未下载的部分视频。
流式传输:就是客户端通过链接视频服务器实时传输音、视频信息,实现“边下载边播放”。
流式传输包括如下两种方式:
1) 顺序流式传输
即顺序下载音、视频文件,可以实现边下载边播放,不过,用户只能观看已下载的视频内容,无法快进到未下载的视频部分,顺序流式传输可以使用Http服务器来实现,比如Nginx、Apache等。
2)实时流式传输
实时流式传输可以解决顺序流式传输无法快进的问题,它与Http流式传输不同,它必须使用流媒体服务器并且使用流媒体协议来传输视频,它比Http流式传输复杂。常见的实时流式传输协议有RTSP、RTMP、RSVP等。
流媒体系统的概要结构
通过流媒体系统的概要结构学习流媒体系统的基本业务流程。
1、将原始的视频文件通过编码器转换为适合网络传输的流格式,编码后的视频直接输送给媒体服务器。
原始的视频文件通常是事先录制好的视频,比如通过摄像机、摄像头等录像、录音设备采集到的音视频文件,体积较大,要想在网络上传输需要经过压缩处理,即通过编码器进行编码 。
2、媒体服务获取到编码好的视频文件,对外提供流媒体数据传输接口,接口协议包括 :HTTP、RTSP、RTMP等
3、播放器通过流媒体协议与媒体服务器通信,获取视频数据,播放视频。
1.2.2 点播方案
本项目包括点播和直播两种方式,我们先调研点播的方案,如下:
1、 播放器通过 http协议从http服务器上下载视频文件进行播放
问题:必须等到视频下载完才可以播放,不支持快进到某个时间点进行播放
2、 播放器通过rtmp协议连接媒体服务器以实时流方式播放视频
使用rtmp协议需要架设媒体服务器,造价高,对于直播多采用此方案。
3、 播放器使用HLS协议连接http服务器(Nginx、Apache等)实现近实时流方式播放视频
HLS协议规定:基于Http协议,视频封装格式为ts,视频的编码格式为H264,音频编码格式为MP3、AAC或者AC-3
HLS是什么 ?
HLS的工作方式是:将视频拆分成若干ts格式的小文件,通过m3u8格式的索引文件对这些ts小文件建立索引。一般10秒一个ts文件,播放器连接m3u8文件播放,当快进时通过m3u8即可找到对应的索引文件,并去下载对应的ts文件,从而实现快进、快退以近实时 的方式播放视频。
IOS、Android设备、及各大浏览器都支持HLS协议。
详细参考:https://baike.baidu.com/item/HLS/8328931?fr=aladdin
采用HLS方案即可实现边下载边播放,可以不用使用rtmp等流媒体协议,不用构建专用的媒体服务器,节省成本。
本项目点播方案确定为方案3。
2 FFmpeg 的基本使用
我们将视频录制完成后,使用视频编码软件对视频进行编码,本项目 使用FFmpeg对视频进行编码 。
下载 :ffmpeg-20180227-fa0c9d6-win64-static.zip,并解压,本教程将ffmpeg解压到了C:Java_Softxczxffmpeg-20180227-fa0c9d6-win64-static下。
FFmpeg被许多开源项目采用,QQ影音、暴风影音、VLC等。
下载:FFmpeg https://www.ffmpeg.org/download.html#build-windows
将C:Java_Softxczxffmpeg-20180227-fa0c9d6-win64-staticbin目录配置在path环境变量中。
简单的测试:
将一个.avi文件转成mp4、mp3、gif等。
比如我们将lucene.avi文件转成mp4,运行如下命令:
ffmpeg -i lucene.avi lucene.mp4
转成mp3:ffmpeg -i lucene.avi lucene.mp3
转成gif:ffmpeg -i lucene.avi lucene.gif
官方文档(英文):http://ffmpeg.org/ffmpeg.html
2.1 生成m3u8/ts文件
使用ffmpeg生成 m3u8的步骤如下:
第一步:先将avi视频转成mp4
ffmpeg.exe -i lucene.avi -c:v libx264 -s 1280x720 -pix_fmt yuv420p -b:a 63k -b:v 753k -r 18 .lucene.mp4
下面把各参数意思大概讲讲,大概了解意思即可,不再此展开流媒体专业知识的讲解。
-c:v 视频编码为x264 ,x264编码是H264的一种开源编码格式。
-s 设置分辨率
-pix_fmt yuv420p:设置像素采样方式,主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0,它的作用是根据采样方式来从码流中还原每个像素点的YUV(亮度信息与色彩信息)值。
-b 设置码率,-b:a和-b:v分别表示音频的码率和视频的码率,-b表示音频加视频的总码率。码率对一个视频质量有很大的作用。
-r:帧率,表示每秒更新图像画面的次数,通常大于24肉眼就没有连贯与停顿的感觉了。
第二步:将mp4生成m3u8
ffmpeg -i lucene.mp4 -hls_time 10 -hls_list_size 0 -hls_segment_filename ./hls/lucene_d.ts ./hls/lucene.m3u8
-hls_time 设置每片的长度,单位为秒
-hls_list_size n: 保存的分片的数量,设置为0表示保存所有分片
-hls_segment_filename :段文件的名称,d表示5位数字
生成的效果是:将lucene.mp4视频文件每10秒生成一个ts文件,最后生成一个m3u8文件,m3u8文件是ts的索引文件。
使用VLC打开m3u8文件,测试播放效果,VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。(http://www.videolan.org/)
3. 视频(媒资)处理
开发环境
1. 创建媒资数据库
导入shcool.sql
2. 创建媒资服务工程
基于springboot创建工程
3. 上传文件
3.1 断点续传解决方案
通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了,电断了没有上传完成,需要客户重新上传,这是致命的,所以对于大文件上传的要求最基本的是断点续传。
什么是断点续传:
引用百度百科:断点续传指的是在下载或上传时,将下载或上传任务(一个文件或一个压缩包)人为的划分为几个部分,每一个部分采用一个线程进行上传或下载,如果碰到网络故障,可以从已经上传或下载的部分开始继续上传下载未完成的部分,而没有必要从头开始上传下载,断点续传可以提高节省操作时间,提高用户体验性。
上传流程如下:
1、上传前先把文件分成块
2、一块一块的上传,上传中断后重新上传,已上传的分块则不用再上传
3、各分块上传完成最后合并文件
文件下载则同理。
3.2 文件分块与合并
为了更好的理解文件分块上传的原理,下边用java代码测试文件的分块与合并。
3.3 文件分块
文件分块的流程如下:
1、获取源文件长度
2、根据设定的分块文件的大小计算出块数
3、从源文件读数据依次向每一个块文件写数据
//测试文件分块方法 @Test public void testChunk() throws IOException { File sourceFile = new File("F:/develop/ffmpeg/lucene.mp4");// File sourceFile = new File("d:/logo.png"); String chunkPath = "F:/develop/ffmpeg/chunk/"; File chunkFolder = new File(chunkPath); if(!chunkFolder.exists()){ chunkFolder.mkdirs(); } //分块大小 long chunkSize = 1024*1024*1; //分块数量 long chunkNum = (long) Math.ceil(sourceFile.length() * 1.0 / chunkSize ); if(chunkNum<=0){ chunkNum = 1; } //缓冲区大小 byte[] b = new byte[1024]; //使用RandomAccessFile访问文件 RandomAccessFile raf_read = new RandomAccessFile(sourceFile, "r"); //分块 for(int i=0;i<chunkNum;i ){ //创建分块文件 File file = new File(chunkPath i); boolean newFile = file.createNewFile(); if(newFile){ //向分块文件中写数据 RandomAccessFile raf_write = new RandomAccessFile(file, "rw"); int len = -1; while((len = raf_read.read(b))!=-1){ raf_write.write(b,0,len); if(file.length()>chunkSize){ break; } } raf_write.close(); } } raf_read.close();? }
3.4 文件合并
文件合并流程:
1、找到要合并的文件并按文件合并的先后进行排序
2、创建合并文件
3、依次从合并的文件中读取数据向合并文件写入数据
//测试文件合并方法@Testpublic void testMerge() throws IOException { //块文件目录 File chunkFolder = new File("F:/develop/ffmpeg/chunk/"); //合并文件 File mergeFile = new File("F:/develop/ffmpeg/lucene1.mp4"); if(mergeFile.exists()){ mergeFile.delete(); } //创建新的合并文件 mergeFile.createNewFile(); //用于写文件 RandomAccessFile raf_write = new RandomAccessFile(mergeFile, "rw"); //指针指向文件顶端 raf_write.seek(0); //缓冲区 byte[] b = new byte[1024]; //分块列表 File[] fileArray = chunkFolder.listFiles(); // 转成集合,便于排序 List<File> fileList = new ArrayList<File>(Arrays.asList(fileArray)); // 从小到大排序 Collections.sort(fileList, new Comparator<File>() { @Override public int compare(File o1, File o2) { if (Integer.parseInt(o1.getName()) < Integer.parseInt(o2.getName())) { return -1; } return 1; } }); //合并文件 for(File chunkFile:fileList){ RandomAccessFile raf_read = new RandomAccessFile(chunkFile,"rw"); int len = -1; while((len=raf_read.read(b))!=-1){ raf_write.write(b,0,len);? } raf_read.close(); } raf_write.close();?}
4. 前端页面
WebUploader介绍
如何在web页面实现断点续传?
常见的方案有:
1、通过Flash上传,比如SWFupload、Uploadify。
2、安装浏览器插件,变相的pc客户端,用的比较少。
3、Html5
随着html5的流行,本项目采用Html5完成文件分块上传。
本项目使用WebUploader完成大文件上传功能的开发,WebUploader官网地址:http://fexteam.gz01.bdysite.com/webuploader/
使用WebUploader上传流程如下:
钩子方法
在webuploader中提供很多钩子方法,下边列出一些重要的:
本项目使用如下钩子方法:
1)before-send-file
在开始对文件分块儿之前调用,可以做一些上传文件前的准备工作,比如检查文件目录是否创建完成等。
2)before-send
在上传文件分块之前调用此方法,可以请求服务端检查分块是否存在,如果已存在则此分块儿不再上传。
3)after-send-file
在所有分块上传完成后触发,可以请求服务端合并分块文件。
注册钩子方法源代码:
WebUploader.Uploader.register({ "before-send-file":"beforeSendFile", "before-send":"beforeSend", "after-send-file":"afterSendFile" }
构建WebUploader
使用webUploader前需要创建webUploader对象。
指定上传分块的地址:/api/media/upload/uploadchunk
// 创建uploader对象,配置参数this.uploader = WebUploader.create( { swf:"/static/plugins/webuploader/dist/Uploader.swf",//上传文件的flash文件,浏览器不支持h5时启动flash server:"/api/media/upload/uploadchunk",//上传分块的服务端地址,注意跨域问题 fileVal:"file",//文件上传域的name pick:"#picker",//指定选择文件的按钮容器 auto:false,//手动触发上传 disableGlobalDnd:true,//禁掉整个页面的拖拽功能 chunked:true,// 是否分块上传 chunkSize:1*1024*1024, // 分块大小(默认5M) threads:3, // 开启多个线程(默认3个) prepareNextFile:true// 允许在文件传输时提前把下一个文件准备好 })
before-send-file
文件开始上传前前端请求服务端准备上传工作。
type:"POST",url:"/api/media/upload/register",data:{ // 文件唯一表示 fileMd5:this.fileMd5, fileName: file.name, fileSize:file.size, mimetype:file.type, fileExt:file.ext}
before-send
上传分块前前端请求服务端校验分块是否存在。
type:"POST",url:"/api/media/upload/checkchunk",data:{ // 文件唯一表示 fileMd5:this.fileMd5, // 当前分块下标 chunk:block.chunk, // 当前分块大小 chunkSize:block.end-block.start}
after-send-file
在所有分块上传完成后触发,可以请求服务端合并分块文件。
type:"POST",url:"/api/media/upload/mergechunks",data:{ fileMd5:this.fileMd5, fileName: file.name, fileSize:file.size, mimetype:file.type, fileExt:file.ext}
页面效果
学员使用:
直接解压资料xc-ui-pc-teach到webstorm工作目录
通过nginx访问,在nginx中配置 (解决跨域)
server { listen 82; server_name localhost; #视频中心 location / { proxy_pass http://127.0.0.1:12000; proxy_set_header Host $http_host; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Credentials true; add_header Access-Control-Allow-Methods GET; } ? #媒资管理后台跨域 location ^~ /api/media/ { proxy_pass http://127.0.0.1:9000/media/; ? proxy_set_header Host $http_host; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Credentials true; add_header Access-Control-Allow-Methods "GET,POST,OPTIONS"; } }
可以访问 http://127.0.0.1:12000/#/media/upload 或者 http://localhost:82/#/media/upload/ 查看页面效果。
5. 媒资服务端编写
服务端需要实现如下功能:
1、上传前检查上传环境
检查文件是否上传,已上传则直接返回。
检查文件上传路径是否存在,不存在则创建。
2、分块检查
检查分块文件是否上传,已上传则返回true。
未上传则检查上传路径是否存在,不存在则创建。
3、分块上传
将分块文件上传到指定的路径。
4、合并分块
将所有分块文件合并为一个文件。
在数据库记录文件信息。
由于上传过程复杂,开发时按业务流程分别实现。
配置
application.yml配置上传文件的路径:
xc-service-manage-media: upload-location: C:/school/video/ # 媒资保存路径 ffmpeg-path: C:/Java_Soft/xczx/ffmpeg-20180227-fa0c9d6-win64-static/bin/ffmpeg.exe # ffmpeg路径
定义Dao
使用mybatis-plus
@Mapper@Componentpublic interface FileMsgMapper extends BaseMapper<FileMsg> {}
定义controller
@RestController@RequestMapping("/media/upload")public class MediaUploadController {?? @Autowired MediaUploadService mediaUploadService;? /** * 文件上传前的注册 */? @PostMapping("/register") public ResponseResult register(String fileMd5, String fileName, Long fileSize, String mimetype, String fileExt) {? return mediaUploadService.register(fileMd5, fileName, fileSize, mimetype, fileExt);? }? /** * 检测分块 * * @param fileMd5 * @param chunk * @param chunkSize * @return */? @PostMapping("/checkchunk") public ResponseResult checkchunk(String fileMd5, Integer chunk, Integer chunkSize) { return mediaUploadService.checkchunk(fileMd5, chunk, chunkSize); }? /** * 上传分块 * * @param file * @param fileMd5 * @param chunk * @return */ @PostMapping("/uploadchunk") public ResponseResult uploadchunk(MultipartFile file, String fileMd5, Integer chunk) { return mediaUploadService.uploadchunk(file, fileMd5, chunk); }? /** * 合并分块 * * @param fileMd5 * @param fileName * @param fileSize * @param mimetype * @param fileExt * @return */ @PostMapping("/mergechunks") public ResponseResult mergechunks(String fileMd5, String fileName, Long fileSize, String mimetype, String fileExt) { return mediaUploadService.mergechunks(fileMd5, fileName, fileSize, mimetype, fileExt); }}?
定义service (略)由于代码过多,请参见源码。
现在视频已经通过断点续传的方式,上传到了我们的媒资服务器, 接下来就要使用FFmpeg将视频转换成 流媒体。
6.视频处理技术方案
如何通过程序进行视频处理?
ffmpeg是一个可行的视频处理程序,可以通过Java调用ffmpeg.exe完成视频处理。
在java中可以使用Runtime类和Process Builder类两种方式来执行外部程序,工作中至少掌握一种。
本项目使用Process Builder的方式来调用ffmpeg完成视频处理。
关于Process Builder的测试如下 :
@Test public void testProcessBuilder(){ ProcessBuilder processBuilder = new ProcessBuilder();// processBuilder.command("ping","127.0.0.1"); processBuilder.command("ipconfig"); //将标准输入流和错误输入流合并,通过标准输入流读取信息 processBuilder.redirectErrorStream(true); try { //启动进程 Process start = processBuilder.start(); //获取输入流 inputStream inputStream = start.getInputStream(); //转成字符输入流 InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"gbk"); int len = -1; char[] c = new char[1024]; StringBuffer outputString = new StringBuffer(); //读取进程输入流中的内容 while ((len= inputStreamReader.read(c))!=-1) { String s = new String(c,0,len); outputString.append(s); System.out.print(s); } inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } @Test public void testFFmpeg(){ ProcessBuilder processBuilder = new ProcessBuilder(); //定义命令内容 List<String> command = new ArrayList<>(); command.add("D:Program Filesffmpeg-20180227-fa0c9d6-win64-staticbinffmpeg.exe"); command.add("-i"); command.add("E:ffmpeg_test1.avi"); command.add("-y");//覆盖输出文件 command.add("-c:v"); command.add("libx264"); command.add("-s"); command.add("1280x720"); command.add("-pix_fmt"); command.add("yuv420p"); command.add("-b:a"); command.add("63k"); command.add("-b:v"); command.add("753k"); command.add("-r"); command.add("18"); command.add("E:ffmpeg_test1.mp4"); processBuilder.command(command); //将标准输入流和错误输入流合并,通过标准输入流读取信息 processBuilder.redirectErrorStream(true); try { //启动进程 Process start = processBuilder.start(); //获取输入流 InputStream inputStream = start.getInputStream(); //转成字符输入流 InputStreamReader inputStreamReader = new InputStreamReader(inputStream,"gbk"); int len = -1; char[] c = new char[1024]; StringBuffer outputString = new StringBuffer(); //读取进程输入流中的内容 while ((len= inputStreamReader.read(c))!=-1) { String s = new String(c,0,len); outputString.append(s); System.out.print(s); } inputStream.close(); } catch (IOException e) { e.printStackTrace(); } }
我们已经准备好了工具类:
Mp4VideoUtil.java完成avi转mp4
HlsVideoUtil.java完成mp4转hls
可以直接使用。
6.1 处理流程
当视频合并成功后
把视频处理成m3u8流媒体
把视频信息写到数据库
具体代码: 在合并完成方法中调用
@Value("${xc-service-manage-media.ffmpeg-path}") String ffmpeg_path;?? private void ChangeHLS(File mergeFile, String fileMd5) {? // mp4 文件保存目录 String fileFolderPath = getFileFolderPath(fileMd5); //生成的mp4的文件名称 String mp4_name = fileMd5 ".mp4"; //生成的mp4所在的路径 String mp4folder_path = fileFolderPath;?? //创建工具类对象 Mp4VideoUtil mp4VideoUtil = new Mp4VideoUtil(ffmpeg_path, mergeFile.getAbsolutePath(), mp4_name, mp4folder_path);? //进行处理 String result = mp4VideoUtil.generateMp4();?? //4、将mp4生成m3u8和ts文件 //String ffmpeg_path, String video_path, String m3u8_name,String m3u8folder_path //mp4视频文件路径 String mp4_video_path = mp4folder_path mp4_name;? //m3u8_name文件名称 String m3u8_name = fileMd5 ".m3u8"; //m3u8文件所在目录 String m3u8folder_path = fileFolderPath "hls/";? HlsVideoUtil hlsVideoUtil = new HlsVideoUtil(ffmpeg_path, mp4_video_path, m3u8_name, m3u8folder_path);? //生成m3u8和ts文件 String tsResult = hlsVideoUtil.generateM3u8();? //保存fileUrl(此url就是视频播放的相对路径) String filePath = fileFolderPath "hls/" m3u8_name;?? // 将fileUrl 保存到数据库 FileMsg fileMsg = new FileMsg(); fileMsg.setFileId(fileMd5); fileMsg.setFileName(mergeFile.getName()); fileMsg.setFilePath(filePath); fileMsg.setFileUrl(filePath.split("C:/school/video")[1]);? fileMsgMapper.insert(fileMsg);?? //优化: 文件处理成功后, 可以删除mp4文件?? }
说明:
mp4转成m3u8如何判断转换成功?
第一、根据视频时长来判断,同mp4转换成功的判断方法。
第二、最后还要判断m3u8文件内容是否完整。
4 播放器
4.1 技术选型
视频编码后要使用播放器对其进行解码、播放视频内容。在web应用中常用的播放器有flash播放器、H5播放器或浏览器插件播放器,其中以flash和H5播放器最常见。
flash播放器:缺点是需要在客户机安装Adobe Flash Player播放器,优点是flash播放器已经很成熟了,并且浏览器对flash支持也很好。
H5播放器:基于h5自带video标签进行构建,优点是大部分浏览器支持H5,不用再安装第三方的flash播放器,并且随着前端技术的发展,h5技术会越来越成熟。
本项目采用H5播放器,使用Video.js开源播放器。
Video.js是一款基于HTML5世界的网络视频播放器。它支持HTML5和Flash视频,它支持在台式机和移动设备上播放视频。这个项目于2010年中开始,目前已在40万网站使用。
官方地址:http://videojs.com/
4.2 下载video.js
Video.js: https://github.com/videojs/video.js
videojs-contrib-hls: https://github.com/videojs/videojs-contrib-hls#installation
(videojs-contrib-hls是播放hls的一个插件)
使用文档:http://docs.videojs.com/tutorial-videojs_.html
本教程使用 video.js 6.7.3 版本,videojs-contrib-hls 5.14.1版本
将资料中提供的plugins赋值到xc-ui-pc-video项目目录下
4.3 搭建媒体服务器
正常使用video.js播放视频是通过一个网页,用户通过浏览器打开网页去播放视频,网页和视频都从web服务器请求。
4.3.1 Nginx媒体服务器
根据上边的流程,我们在媒体服务器上安装Nginx,并配置如下 :
server { listen 81; server_name localhost; # 流媒体 静态资源 location ^~ /school/video/ { alias C:/school/video/; } # 视频静态资源 location / { alias C:/CODE/JAVA/school/xc-ui-pc-video/; index index.html index.htm; } }
4.4 测试video.js
把资料中的video.html 复制到 C:/CODE/JAVA/school/xc-ui-pc-video/ 如图:
上面已经使用nginx 代理 C:/CODE/JAVA/school/xc-ui-pc-video/ 目录。 所以可以通过http请求直接访问video.html页面
把src路径修改为自己的媒资访问路径
测试:
用户打开浏览器输入 http://localhost:81/video.html 。即可打开视频播放页面,并播放。
暴风影音官网、App无法正常打开 此前集团高管已全部辞职
今日,三言财经发现,暴风影音官方网站移动端和PC端以及App均出现问题,无法正常打开,官网出现乱码排版,App则显示网络异常。自暴风公司创始人冯鑫被捕以来,暴风公司就一直风波不断。深交所多次对其下发问询函。
手机端访问网站
7月28日,暴风集团发布公告称,公司实控人冯鑫因涉嫌犯罪被公安机关采取强制措施,相关事项尚待公安机关进一步调查。同日,暴风金融通过官方微信平台发布公告,称为保证暴风金融用户的利益及资金安全,平台将停止发布新标。与此同时,受此消息影响,部分产品将延迟兑付。
8月29日,暴风集团发布半年报。报告期内,实现营业收入7.9亿元,同比下降4.21%,归属于上市公司股东的净亏损1.06亿元,上年同期净利润为1572万元。
9月2日,上海静安区检察院称,以涉嫌对非国家工作人员行贿罪、职务侵占罪对犯罪嫌疑人暴风集团股份有限公司法定代表人冯鑫批准逮捕。
9月3日,深交所出具问询函,要求暴风说明情况,包括公司是否知悉该事,其行贿罪等是否与公司有关,以及冯鑫目前仍为公司法定代表人,被捕后是否可以正常履行职责。
9月4日,暴风集团发布公告称,收到中国证券监督管理委员会《调查通知书》。因公司涉嫌信息披露违法违规,根据有关规定,中国证券监督管理委员会决定对公司进行立案调查。
9月17日,深交所发布《关于对暴风集团股份有限公司及相关当事人给予公开谴责处分的公告》。该公告披露了暴风集团的有关违规事实、当事人申辩情况、纪律处分委员会审议情况以及纪律处分决定。
《公告》显示,深交所对于暴风集团作出两项处分决定。一是对暴风集团给予公开谴责的处分;二是对暴风集团股份有限公司控股股东、实际控制人、董事长兼总经理冯鑫,时任董事兼董事会秘书毕士钧给予公开谴责的处分。
10月14日,暴风集团再次收到深交所下发的问询函。在这份包含12个问题的问询函中,深交所关注了暴风集团的大额商誉减值、暴风智能电视生产和暴风金融等的情况。
10月30日,暴风集团披露三季报显示,公司前三季度实现营收0.936亿元,同比下滑90.95%;净利润亏损6.5亿元,上年同期亏损2.28亿元,同比下滑184.50%。
10月31日,深交所发布关注函表示,已关注到暴风公司高级管理人员已全部辞职,协助信息披露事物的证券事务代表也已辞职,要求公司尽快聘用相关高级管理人员,确保经营稳定。
11月19日,暴风集团发布关于股票存在被暂停上市风险的提示性公告称,公司2019年9月30日合并财务报表归属于母公司所有者的净资产为-63,344.99万元(未经审计),公司存在经审计后2019年末归属于上市公司股东的净资产为负的风险。根据相关规定,若公司经审计的2019年度财务会计报告显示2019年年末的净资产为负,深圳证券交易所可能暂停公司股票上市。
11月21日,暴风集团发布两则公告。一则公告透露,由于人员流失严重和暂无合作的审计机构,公司存在无法在法定期限内披露2019 年年度报告的风险;另一则公告称,公司于近日收到北京证监局的《关注函》。
《关注函》称,北京证监局关注到,公司实际控制人、董事长、总经理冯鑫被羁押后,公司高管人员已于近期悉数辞职。为维护公司正常经营, 北京证监局已于10月21日召开紧急协调会,要求公司董事会、监事会及在岗人员坚守岗位、尽职履责,全力维护公司经营稳定,对履职不力的,北京证监局将依据相关规定追责。
今日晚间,暴风集团发布公告称,于近日收到《裁决书》,被裁决向上海歌斐支付转让价款4.62亿元,公司和冯鑫应于裁决书送达之日起10日内支付完毕。逾期支付将依法加倍支付迟延履行期间的债务利息。
创始人被捕、高层出走、业务不见起色、存在退市风险,曾在40天里拉出36个涨停板,市值突破408亿元,风光无二的创业板“股王”暴风集团,如今的境况真是令人不胜唏嘘。
责编:王楠
相关阅读
- 外媒称《使命召唤:现代战争3》看起来像《使命召唤19:现代战争2》的DLC
- 玩游戏的台式机配置(学生买电脑,必要的5个配置)
- 卡关卡到心碎,是什么让她坚持玩《代号:鸢》?
- Extra Nice新游《亥灵胎》将于明年发售支持中文
- 新的《英雄联盟》模式将不仅仅是“类似MOBA的体验”
- 骑士电影_骑士电影_74hy影视院2020(什么?未来YAMAHA 50cc车款将会由HONDA代工)
- 史上嘉宾最多BilibiliWorld开幕,超九万人打卡
- 火影忍者342(火影忍者OL忍考342难民阵容分享)
- 极品飞车18宿敌(极品飞车19封测试玩体验 联网要坑国服玩家)
- 经典FPS《潜行者:切尔诺贝利的阴影》更新添加中文支持