各位老铁们好,相信很多人对tiktok怎么开镜像都不是特别的了解,因此呢,今天就来为大家分享下关于tiktok怎么开镜像以及TikTok为什么会0播放怎么解决的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

TikTok为什么会0播放怎么解决
这是每一位新人任一道必过的坎
很多刚入门的小伙伴都会遇到一个普遍的问题,就是零播放,就像下面这张图一样,唯一一个播放还是自己用另一个号进去点的,很难受。
那么我来帮大家分析一下视频零播放的原因,并给出一定的解决方法。
导致0播放的原因主要有以下五个方面:
1、硬件环境问题
2、软件环境问题
3、视频内容问题
4、视频查重问题
5、审核延迟问题
下面按照顺序给大家一一讲解
01
硬件环境问题
硬件简单来讲,就是手机问题。
我们首先检查手机有没有拔出SIM卡,然后检查手机有没有残留运营商信息,因为TikTok就是读取运营商信息来限制国内用户的,如果不知道怎么看直接刷机最稳妥。没有什么事是刷机解决不了的,譬如foryou 黑屏 刷机就能解决。
同时随着TikTok软件的更新,有些手机的型号也会受到影响,例如iPhone6这一型号手机的有很多人被限流,有40%都遇到了无法破0的问题,这时便应该及时更换手机。
02
软件环境问题
软件环境问题主要涉及到的参数有以下几个:
IP地址
DNS
系统语言
系统时间
iPhone手机的广告追踪
IP地址定位在海外是使用TikTok的基础条件,否则将无法正常使用TikTok,那么具体怎么查看IP定位到了那个国家或者地区,主要看自己的V买的目标在哪,例如你是想做洛杉矶,那么就要把IP定位在洛杉矶。
特别需要注意的是,定位好一个IP后不要随机更换位置,否则被系统检测到账户一直跳来跳去就会被打上标签,账号一旦被打上标签,就算后期环境运营的再好,也是无法破0的。
这里就要强调下公共IP和动态IP了。
有的小伙伴为了方便买了现成的公共IP有很多线路那种。
那种就是很多人在用,也不包括里面有人在TikTok,如果有一个违规这个IP里所有人都会受牵连。
还有动态IP就是你每次登录的IP都不同,一般偶尔一下没事经常换官方就会检测到。
什么是动态IP这里的朋友可以打开 whoer.net 查看
你可以先查看我的IP:这里的这一串IP记录起来,然后关掉小火箭,然后半小时后在打开小火箭,在打开whoer看下IP有没有变化来判断是不是动态IP
与此同时DNS和系统语言也要与IP地址国家地区保持一致,例如做洛杉矶地区的账号,那么系统语言就应该改成英语,如果是做日本区的,语言大家懂得改成什么。
还有就是系统时间的要求上做到与国家一致,根据IP定位的城市来选,最好手动设置,因为有些国家不同城市的时区都有所不同,例如:美国就是横跨了,西五区至西十区。
上述条件是否满足可以用whoer.net这个网站来进行检测。
下面这一条是针对IOS用户无法用网站检测的,很多小伙伴会漏掉,如果是苹果手机的用户,那么一定要在 通用→隐私→广告中,IOS14以下的版本需要把 限制广告追踪打开 ,IOS14以上的版本,则需要把 个性化广告 关闭。
当然,除了这几个指标外,还存在节点污染问题,有些IP节点被人使用太多,仍然会被检测异常导致0播放,那么此时就应该重启一个IP来进行起号。
03
视频内容问题
视频在发布的时候,TikTok首先会对它进行机器审核,如果视频质量太差,模糊不清,满屏幕的像素点,则会导致机器审核无法通过这个视频,必然的就会出现0播放。
有些视频模糊不清,很大原因就是你在解析视频的时候视频被压缩了,或者在传输视频的时候被压缩,从而导致画质降低,这个时候我们就需要掌握无损解析技术和无损传输视频的方法。无损解析这个就可以看看一些解析视频的工具,是不是有无压缩解析的,无损互传视频的办法就很多了,例如苹果手机可以隔空投送或者用爱思助手,或者电脑和手机数据线连接导入,安卓和安卓可以QQ面对面快传。
这里我像大家推荐一个Windows、Mac、安卓、iOS之间的无缝互传的网站。
snapdrop.net这个工具可以实现Windows、Mac、安卓、iOS之间的无缝互传,前提只有一个:设备连接的是同一个网络,并在各自的浏览器输入以上网址即可界面简单易用手机锁屏也不影响传输我还尝试过手机B连手机A的热点,也可以实现传送像我们几十兆的这种短视频,都是妙传使用几天来一直比较稳定,特此推荐给大家。
在视频内容上,有时会因为视频类目的问题导致0播放,例如视频类目过于枯燥,视频内容毫无波动,不符合TikTok短视频的逻辑,这样便会有很大概率导致TikTok完全不给视频进行推送。
04
视频查重问题
视频查重的问题也是0播放中非常常见的问题,也是大概率出现的问题。造成视频查重的主要原因有两个,一个是剪辑的手法不够深度,另一个是视频被搬运的次数过多。
这里提到的视频剪辑深度需要简单的说明一下,不是简单的加滤镜加蒙版 就好了,因为视频滤镜蒙版过多就会遇到第三点视频的质量变差,我们一般运用的剪辑手法:镜像翻转、抽帧插针、掐头去尾、加蒙版、加滤镜、变速、放大缩小、加文案、改变音乐 等等很多种。但是我们一般用3/4种的处理手法就行了。太多会导致视频观感严重下降。
同时另一个核心就是看视频是不是被搬运次数太多,如果一条视频被人搬运太多了,我们可能在剪辑上就要花更多的时间和更多的精力对其去重,而且效率会非常低,其实是得不偿失,不如重新寻找更好的素材,所以搬运,我们尽量找冷门或者新的素材视频,来进行制作。
05
审核延迟问题
在某些时间段,会因为某些原因事物对某一类的视频素材审核进行严格监控,例如前段时间美国白人Policeman和黑人小伙的事件,不断发酵之后,便导致相关视频审核时间变长,所以这个时候就需要耐心等待。
这里可以给大家一个标准,一般正常有权重的号在发布视频的5小时内都会有播放量,如果遇到审核延迟的问题,最多可以等到12小时,如果12小时依旧0播放,那么建议直接重新起号,节约宝贵的时间。
06
合拍破0法
综合上面的几点,可以看出导致0播放的原因非常的多,但是并不会有人告诉你问题出在那里,所以我们需要用到一些方法对问题进行一个一个的排除。
具体方法如下:
打开TikTok的搜索界面,找一个热门视频,这个热门视频需要具备以下几个条件:
1、蓝V认证
2、5M粉丝以上
3、真人IP
4、12小时以内发布的新视频
找到一个这样的视频之后,点分享→合拍,随便拍一些内容,发布即可。
操作完后,观察6-12小时,看是否突破0播放,如果突破,则环境没有问题,如果仍然无法破0,则需要仔细检查自己的环境。
魏德:美国制裁越来越随意,中企反击之战怎么打
【采访/观察者网张广凯】
蚂蚁集团上市之路,出人意料的艰难。在中国官方突然叫停之前,实际上早在10月初,就有消息称,白宫内部已经讨论了将其加入实体清单的可能性。
但与蚂蚁已经几乎垄断国内市场,中国基于现实的风险防控因素进行审慎管理不同,蚂蚁目前在海外市场的份额还微不足道。在这种情况下,美国早早发出制裁威胁,是一个极为重要的变化。
美国制裁中兴、华为,理由是它们违规同伊朗做生意,试图打一场事实层面的战争。美国制裁TikTok,因为它占领了美国市场,“可能”影响国家安全。这两点在蚂蚁身上都不满足。你没有违反美国法律,也没有威胁美国市场,仅仅是在中国取得了成功,就可能遭受美国制裁?
而蚂蚁上市计划暂缓后,据路透社报道,特朗普政府也搁置了将蚂蚁集团列入黑名单的计划。据其中三名知情人士透露,导致特朗普搁置该计划的因素包括不想在大选前跟华尔街对抗,以及面临诉讼的可能性。
然而中美之间的博弈并不会随大选而落幕。美国政府为什么可以越来越随意地挥动制裁大棒?在新的形势下,中国政府和中国企业应当如何反击?观察者网专访了高博金律师事务所驻上海代表处律师魏德(WadeWeems)。高博金律师事务所曾代表福建晋华等中国企业应对美国制裁。
高博金律师事务所驻上海代表处律师魏德
观察者网:彭博社报道称,白宫最近讨论了蚂蚁集团进行制裁的可能性。其实蚂蚁集团目前在美国的业务非常少,即使制裁发生,对它的影响有多大?
魏德:现在制裁还没有发生,因此我们也不知道所谓的白宫讨论,到底涉及了哪些可能的理由。不过从媒体的报道来看,蚂蚁金服可能会被加入实体清单。
被加入实体清单,意味着企业将不能够获得任何以美国为来源的出口,包括美国生产的产品、美国的科技、美国的软件等等。而且清单的限制范围是广泛的,不仅仅是直接销售,经由其它国家的二次、三次销售它一样要管。只要是来自美国的产品、软件、技术,都不能够被转移给清单上的任何一个实体。
所以蚂蚁虽然在美国市场占有率比较小,但它只要用到了美国的产品,就会受到影响。蚂蚁依赖美国产品的程度到底有多大,将会决定美国潜在禁令的影响程度。
观察者网:美国潜在制裁的理由是蚂蚁集团可能垄断全球数字支付体系,掌握美国金融信息,威胁美国国家安全。但既然蚂蚁集团在美国的市场占有率还几乎为零,上述指控是不是过于牵强、随意?有什么法律依据呢?
魏德:采用实体清单这种工具,对美国政府是比较容易的。因为相对来讲,将外国企业加入实体清单的标准比较低,不需要非常强有力的证据。对于威胁国家安全的认定,行政机关有相当大的自主裁量权。
有时候美国政府做出一个制裁决定,也不一定只从制裁的经济效果来考虑。有时候美国政府知道一些被制裁企业可能并不那么依赖于美国的出口产品,但仍然要做出一个放到实体清单上的决定,因为这会产生一些象征性的意义。
比如最近美国也曾把新疆的若干家企业放到实体清单上。有一些新疆企业,比如说普通的纺织企业,和美国并没有多么密切的往来,也不依赖于美国的原料和设备。它们被放到实体清单上,实际受到的影响是相对较小的。美国政府还依然要这么做,主要是为了表达一些政治立场。
只有当蚂蚁真的被放到实体清单上,我们才能看到美国政府给出来的理由是什么,到底有没有道理。如果真的是“可能垄断全球支付体系”这样的理由的话,会是比较新颖的。
观察者网:其实近期美国对中国企业的制裁,已经体现了一些新的趋势,蚂蚁集团并不是孤例?
魏德:我们也认为,最近几年来美国的贸易制裁有了一些新的趋势。第一种情况是,美国政府在施展贸易制裁的时候,把过去已有工具的适用范围扩大了,比如我们刚刚说的国家安全问题。
福建晋华就是这样一个例子。美国将福建晋华加入实体清单的时候,一段时间都没有给出明确的理由。晋华原本和美光有知识产权纠纷,被美光起诉窃取商业秘密。所以我们只能理解为,窃取商业秘密可能也和国家安全是有关系的。现在,美国对国家安全的定义似乎是越来越宽泛了,有关机关可以较为宽泛地把很多东西都定义成危害国家安全。如果真像你所说,垄断全球支付体系也算是危害国家安全,这也是比较新颖的定义。
另外,美国也开发出了一些新的贸易制裁手段和工具。比如说用人权作为理由将公司列入实体清单,这是以前很罕见的,现在才开始大量出现的理由。
观察者网:确实像您所说,在国家安全的定义上,美国政府的自由裁量权是非常大的。它认为窃取商业秘密是威胁了我的国家安全,就可以把你加入实体清单。那么这个行政上的自由裁量权,会不会受到司法系统制约呢?法院能不能判定政府的裁量是错误的,从而叫停制裁?
魏德:我们首先要了解一下美国制裁和出口管制方面的基本制度。在美国,管制贸易的权力,归根结底是属于国会的。国会把其中一部分权力,授权给行政机关,这特别表现在跟外国打交道的领域上,比如对外贸易、外交事务等等。制裁和出口管制的权力,就是被国会授予到了行政机关。
在行政机关内,主要有两个机构在行使这项权力。一个是商务部,它主要负责货物的流动,也就是跟商品出口有关的事项。另外一部分权力属于财政部,它负责实施经济制裁。在这两项事务上,它们都有来自国会的授权。在这些授权下,它们的决定一定程度上可以不受司法审查。
不受司法审查是什么意思呢?主要就是说,它们每一个决定的事实部分,或者说决定的实体部分,一般是不受法院审查的。比如说一个公司想要直接去挑战一个行政机关的决定,说它的事实认定是错误的,它的理论根基是错误的,这些是比较困难的,法院一般都不予听取。这些决定本身,都属于行政机关自由裁量的范围,法院无法干涉。
在什么情况下,法院可以听取对美国行政机关的诉讼呢?主要是存在程序性问题的时候。比如在案件的处理机制上,政府应该召开听证会,允许我提交某些证据材料,或者在某一些程序上,应该给出合理的通知,让我有答辩机会。如果程序性权利受到侵害,当事人可以向法院要求救济。这是一般的情况。
当然还存在一些特殊情况。我们并不能直接攻击这个决定本身,但是如果这个决定造成的附带后果,是法律所不允许的,那么法院也可以介入。
一旦行政机关把国会给它的权力过度扩张,就可能和美国法律的其它要求发生冲突。微信和TikTok的有关诉讼就是一个很好的例子。在这些诉讼中,相关企业不能说美国政府决定制裁它们的理由是错的,但是它们可以提出,基于政府所主张的理由所做的制裁,会导致美国宪法第一修正案所保护的言论自由权利受到过分的侵害。因此法院就要做出裁量,政府是不是可以施加这个制裁。
另外还有一些可行的方法,比如在涉及到人权的制裁上,美国政府对企业进行指控的基础,往往只是一些NGO提出的报告。这些企业就可以去攻击报告本身,被美国政府用作根据的报告,可能是不真实的。或者企业要求出具这个报告的NGO,去改变报告的内容,澄清说具体的某一家企业其实没有问题。
观察者网:高博金也曾经帮助过晋华对制裁进行上诉,在这类案件中,你们具体是怎么做的呢?
魏德:一般来讲,当企业遭到美国制裁,我们可以先尝试跟美国政府进行一些沟通,理解它们制裁的真实目的,再寻求改变对方决定的办法。
当然,一个明显的问题是,现在中国企业想要在华盛顿寻求这样的对话,对方是不太有兴趣的。这跟以往有很大的区别。过去美国政府施加制裁的时候,目的只是要去改变外国企业的某些让美国不喜欢的做法。它把制裁当做一个筹码,要跟你谈判,说我不喜欢你的某些做法,如果无法改变,我就要制裁你。这时企业就有机会去跟美国有关部门讨论,怎么做才能打消美国对于国家安全或者其它方面的顾虑。
一个例子就是中兴通讯。美国把中兴列入实体清单,目的之一是为了促使中兴坐到谈判桌上,解决它在美国面临的一系列刑事和民事诉讼。当中兴开始在官司中妥协时,就被从实体清单上被移除了。
这是长期以来,实体清单最常规的使用方法,美国政府实施制裁,是为了跟其它部门协同合作,迫使美国执法行动中涉及的外国企业去谈判,去和解。
尤其是2018年,美国司法部出台了所谓的“中国行动计划”,针对中国企业的执法成为工作重点。美国经济管理部门的制裁,很大程度上是跟其它部门进行配合。
但是现在情况出现了很大的变化,对于中国企业,这个谈判过程是不存在的。美国政府对于中国企业的谈判请求,基本不予回应。在这种情况下,中国企业被制裁之后该怎么办呢?它必须要想方设法地让美国政府回到谈判桌上来。要达到这个目的,一个办法是来打一场诉讼,在诉讼这个场域下,政府是必须要回应的。这样一来双方也变换了交战的场地,有了一个更好的博弈平台。这是一个基本策略。
观察者网:还是以晋华为例,美光对晋华的窃取商业秘密指控是否站得住脚?背后是否存在一些政治性目的,是把中国整个国家作为打压目标?
魏德:政治层面,我没法评论。但福建晋华的案子,也能够彰显出一个趋势:在面对跨境知识产权纠纷的时候,企业不能够孤立地把它作为一个知识产权问题来看待,而应该考虑这样的纠纷是否会引发一系列可能的市场方面的风险和法律方面的风险,比如反不正当竞争,或者是反垄断,甚至国家安全。所以中国企业一定要有前瞻性的预估,需要一个综合性、全方位的应对策略。
观察者网:哪些类型的中国企业更容易遭到美国的制裁?
第二个方面,针对每一种不同的理由,美国政府采取的制裁或者管制手段是不同的。公司还应该考虑,在自己所处的高风险行业,美国政府一般会采取的制裁手段是什么。
第三个方面,一旦遭到制裁,自己受到的威胁有多大。刚才也说到,有一些企业,它跟美国可能来往相对少,它依赖美国出口产品的程度相对少。美国把它放进实体清单,可能对它影响并不大。如果你对美国的依赖性比较大,这个风险就相对更大。
观察者网:那么高风险企业有什么比较好的防范措施?
魏德:首先,如果你自己的风险点是无法控制、无法避免的,那么就应该对自己所承受的风险有所准备。你要对整个公司内部的流程运作,上下游的供应链,支付款的走向都通盘考虑,怎样进行一些重组,将美国制裁的影响降到最低。
第二,除了预防之外,你也应该提前准备一套遭到制裁后的应对性措施。不能等到这把悬着的剑掉在你头上了,你才开始应对。你需要提出一些有创造性的,或者相对激进的做法,而不是遵循老一套的规矩,去寻求和美国政府谈判。现在直接去谈判,只能是浪费大量的时间,取不到什么收益。
如果打一个军事上的比方,你的应对不能够只是正面出击,而是要迂回包抄。就像刚才讨论的诉讼战略,不攻击决定本身,而是去攻击对方做出决定的基本依据,迫使对方回到谈判桌上。
要做到这些,需要对美国政府的工作方式有想当的了解,了解不同政府机关的协同机制,以及它的弱点,找到合适的侧翼来进行攻击。
观察者网:美国大选已经近在眼前,如果拜登获胜,对中国的态度会相对温和吗?中国企业越来越多遭遇贸易制裁的长期趋势,是否仍然不会改变?
魏德:政治上的事情很难预测,谁也不知道会发生什么。但是一个基本事实就是,特朗普政府过去几年的对华政策,是他少有的得到国会两党共同支持的政策。这就意味着,不管是谁当选,对中国的执法政策,在大选后很有可能还会延续下去。也许在具体的执法细节上会有一些变化,但大的方向不会改变,因为我们现在没有看到有人提出跟特朗普政府截然相反的中国政策。
观察者网:我们看到,现在中国政府也推出了不可靠实体清单等手段,来制裁美国企业。在晋华的案子里,晋华还向中国法院提起了诉讼,要求禁止美光相关产品在中国的销售。目前中国在很多领域对美国产品还是比较依赖的,实行对等反击是否明智?
魏德:确实,仿佛镜像反应一样,美国采取的很多做法,在中国也逐渐地发展起来,包括不可靠实体清单,包括出口管制法的实施,显然都是跟美国相似的。
任何制裁也好,出口管制的也好,肯定都是双刃剑,会对制裁方也有损害。对美国来讲也是如此,每次把任何一个外国企业纳入到实体清单,都会在本国产生不利的效果,都会让美国供货商承担损失。
所以说,每一次的制裁决定都是一个计算,要权衡这一政策在海外达成的效果,以及在国内造成的损失。我们自然也无法替中国政府计算,猜测政府是如何计算这些损失的,但相信政府一定考虑到了相应的后果。最好的情况,当然还是大家找到一个建设性的解决办法,使得双方能够互相合作、避免损失。
怎么做副业增加收入
分享一下现在最值得干的几个副业:
一:文档下载器项目
这个项目本质是利用了信息差。上过大学的小朋友都知道,大学里经常会做一些很鸡肋的作业。
学生们不想浪费时间做怎么办?找度娘借鉴。但度娘哪肯让你白嫖?不花钱你就只能看看。
而度娘家的会员又卖得老贵,为一个破作业花费如此重金,着实有些不太聪明的样子。主要是大学里这样的作业来日方长,四年里会遇到很多......
聪明的小朋友已经顿悟了,既然度娘不肯,那就找“宝妈”。嗯,这就是这个项目的精髓,也是很多信息差项目的精髓。
完全可以当个中介赚差价,5.98的进价,完全可以15.98出。不用囤货,一单赚10块,10单就是一百。
操作思路:(仅供参考,如果你想象力够丰富,相信你会有更精彩的操作)
1.用qq小号加大学生群,越多越好。
2.用群昵称打广告,然后疯狂混群。
3.有人需要时,再去下单给他然后收钱。
对学生来说也就是食堂一顿饭钱,但却可以解决四年的鸡肋作业问题。有这个需求的人不在少数,如果执行力强,别说每天十单,日均百单都不难。这个项目的好处就在于没有风险,简单易执行,完全可以等有了单,再去拿货。
那么这样一个信息差项目,可以长期稳定地做吗?当然可以。因为这个项目不缺客户,每一年都有新的学生,每一届学生都会遇到相同的问题......
而通过这个项目积累下来的学生客户资源,有了基本的信任,那就还有更多持续买你的
二:今日头条的五种赚法
遥想当年,今日头条刚火的那一阵,正值平台烧钱砸内容的红利期,大佬们批量开号,用伪原创软件批量做内容撸收益......
如今的今日头条早已是个成熟的内容平台,过去的那些骚操作也早已湮灭在时代的车轮之下。那么现在的头条怎么玩?
头条的内容体系很全,文章、视频、微头条、问答、音频五大模块儿,每一个模块儿都是一种赚法,玩好一种其实就够了,贪多嚼不烂。
甭管它有多少种内容形式,内容平台的玩法就四步:
领域定位——建号养号——内容输出——爆款变现
开号就不多说了,找度娘就OK,平台规则和创作技巧在平台官方页面就有。最难的环节是持续输出有价值的内容,这也是很多头条号作者还没看到收益就放弃的主要原因。
所以建议想做头条号的胖友,先积累某一个垂直领域的专业知识。可以买本领域相关的书,边输入边输出。当你对某个领域有了足够深入的认识,那么无论哪种内容形式,你都能轻松做出受众爱看的内容,从而获得收益。
看到这里,讲个道理:最佳的副业,其实是你所掌握的知识、技能、经验的变现。所以与其苦苦寻找合适的副业,不如先沉下心来积累某一领域的知识技能和经验。
三:小红书博主
相比写文章,写笔记更加简单易行,对大多数人而言,做一个小红书博主未尝不是一个更好的副业选择。
总的来看,小红书仍然是一个优质的种草社区。相比一开始的购物心得分享,小红书现在的内容也已经多元化,覆盖了很多领域。
所以只要你把自己生活的某个方面的心得技巧分享出来,不需要长篇大论地写文章,只需一条条排列出来,再配几张图片,一篇合格的笔记就搞定了。
那么小红书吸粉,哪些点最为关键呢?
1.真实感。
2.美图。
3.笔记排版。
要想玩赚小红书,真实感一定要渗透到方方面面。从账号头像、昵称、签名、图片、内容等等方面,都要让人感觉是一个真实的人而不是营销号,要给人一种既美好又真实的感觉。
图片可以用各种修图软件做出质感,美图秀秀、黄油相机、轻颜相机等配合使用即可。笔记的排版,直接去看头部的博主怎么排的,那些用于排版的调皮有趣的符号,搜狗输入法和讯飞输入法里都有。
由于小红书用户以消费能力强的女性为主,所以只要你在某个垂类有个几千粉,就可以开始变现了。1k~5k粉就可以接软植入广告,一条广告单价一般在200~2000左右,价格高低要看粉丝粘性。
如果粉丝超过5k,笔记的平均曝光量超过万次后,就能入驻小红书官方的品牌合作平台稳定恰饭啦。
四:喜马拉雅配音
如果你不想费力写文章,不想露脸拍视频,那么音频平台是个不错的副业选择。在头部音频内容平台上,给文字作品配音,就能多一份收入。
当然,最佳的方式是把自己有价值的内容录制成音频课程出售,时间比较多的朋友可以去尝试,万一爆了,那就是很可观的收益了。
如果你觉得自己的声音没有磁性,得不到音频内容用户的青睐,那么没关系,练就完事
你可以选择认证为有声主播,录制自己的音频内容,也可以选择去给其它作品配音。在喜马拉雅里进入“创作中心”,进入“我要赚钱”,你可以看到多种赚钱方式,选择适合自己的即可
怎样在切入切出虚拟摄像头时营造卡顿效果
背景介绍:本人原先是android逆向工程师,后来因为工作变动,离开了协议分析这类的岗位,目前在做直播机与第三方应用兼容性分析相关分析,所以就有了这篇兼容性分析文章。
问题:tiktok在我们推流设备直播时,经过几个特定步骤后切换前后置摄像头会出现卡住的问题。
重现步骤:直播界面打开更多菜单->然后退到后台->回到前台->切换前后置菜单。
现象:直播画面卡住不动了。
解决思路:找到点击切换按钮后的点击事件回调,找到切换摄像头的核心逻辑,来找到卡住原因。
1、如果了解ART虚拟机的同学会知道,jni函数和java函数都会调用到art虚拟机ArtMethod的Invoke函数。

输出日志:
findtargetmethod:android.view.View.performClick
ArtMethodInvoke【22955】:;lr:0x4af78c;libart.so:android.view.View.performClick
ArtMethodInvoke【22955】:;lr:0x2e2800;libart.so:java.lang.Enum.toString
ArtMethodInvoke【22955】:;lr:0x2e2800;libart.so:X.Ggh.LIZ
ArtMethodInvoke【22955】:;lr:0x2e2800;libart.so:java.util.LinkedHashMap.<init>
ArtMethodInvoke【22955】:;lr:0x2e2800;libart.so:java.util.HashMap.putAll
ArtMethodInvoke【22955】:;lr:0x2e2800;libart.so:java.util.HashMap.put
ArtMethodInvoke【22955】:;lr:0x2e2800;libart.so:X.DED.LIZ
ArtMethodInvoke【22955】:;lr:0x2e2800;libart.so:X.D5k.onClick
通过fridahooklibart.so的ArtMethod的Invoke函数,我们找到了点击事件的回调类X.D5k.

找到这个类对应的onClick函数后,我对整个流程做个简单的研读,感觉发现了核心代码在注释直播流处理。

跟着核心代码一路往下找到LiveCore这应该就是直播的核心代码,其实现类为LiveCoreImpl,ILiveStream的实现类为LiveStream。


发现此处只是做了日志信息的合成和应用镜像之类的代码,但是又找到一个核心的类LiveStreamVideoCapture。

追踪到这里发现链路断了,又凑巧通过frida打开tiktok卡死在启动页上,那么接下来使用Xposed继续理流程。
上面的代码虽然没有追中到切换摄像头的核心逻辑,但是我们找到了两个核心逻辑的类LiveStreamVideoCapture和LiveCoreImpl,分别和直播视频流控制直播核心流程控制相关,所以Xposed继续走的时候以这两个类为重点,那么此处就开始放大招了,hook这两个类的所有函数,贴上代码。注意这里使用的classloader是application的classloader。


日志太多了,这里通过shell命令setprop做了个日志控制。



然后找到CameraVideoCapturer类的tryDeliverFrame,这里是处理相机的视频帧,感觉越来越接近真相了,继续hook这个方法,然后发现相机切换卡住以后,这个方法也停止调用了,那么没办法,继续往上找堆栈中run方法的调用调用处。

继续hook。


找到这个类。

至此,熟悉相机开发的同学应该知道,这就是SurfaceTexture.setOnFrameAvailableListener后,相机的可用帧会回调到这个函数,切换相机后卡顿,可用帧也同时不回调。
接下来hook原生相机。



调用的是android.hardware.Camera,也就是camera1相关的api,切换卡顿的时候并没有调用Camera.open函数。


首次开直播的时候调用了这两个函数,点击切换相机的时候并没有调用,在X.HCF这个类里找到switchCamera函数,那么猜测首次开相机,和切换前后相机走的并不是同一个流程,因为这个bug只有在切换相机时才会出现,所以我们就不关注首次开相机的流程。


果然,切换相机的时候走了这个流程,这是又发现了LiveStreamVideoCapture这个核心类,那么简单进去看看SwitchCaptureRunnable这个有没有被创建。


经过测试,发现这个类只会被创建一次,而run方法每次切换都会被调用,而且卡住的情况下也会被调用,那么结合上面Camera.open卡住时没有调用,可以大胆的猜测中间过程某个条件不满足被return了。根据堆栈信息继续往下找几个关键点。


发现CameraVideoCapture里也有切换相机的流程,切一步步往下走,能调用到上面我们hook过的X.HCF的switchCamera,那么我们就看看这里的switchCamera有没有调用吧。
•情况一:先滑动直播界面,再按home键,然后回到tiktok,再切换相机,此时status()函数返回1,走了后续Camera.open流程。


•情况二:先滑动界面,再切换相机,然后按home键,接着回到tiktok,最后切换相机,此时status()函数返回2,没走后续Camera.open流程。

从日志看switchCamera两种情况都走了,再结合switchCamera的源码看,源码里的status()函数的返回值决定了是否继续往下调用切换相机的流程,很遗憾的是,两种情况都出现了,而且都会卡住(为什么两个status值会不一样呢,这里先留个坑,最后来填)。这可把我难住了!
就在这时脑子突然开窍,既然画面卡住,那么必然有错误信息回调,果然一搜索CameraVideoCapture这个核心类有onError函数,毫不犹豫hook它,发现每次出错时,这个函数的错误码都会报-421错误(截图省略-421错误码的测试过程)。


错误信息非常明确的告诉我们是因为相机不支持缩放,导致的打开相机失败,那么至此相机卡住的直接原因找到了,但是还没找到为什么特殊的操作流程后会卡住,而正常的操作不会。于是乎继续跟着堆栈信息往上找。

发现走进了这里的流程,导致的相机进缩放流程,为了验证猜想,我决定在这个函数调用前,把message里的what字段改成2,让它不走这个流程,来看看是不是就不会导致界面卡住,于是就有了下面这段代码。

经过这一番篡改,果真随便怎么折腾,直播界面都不会卡住了。那么我只要找到那里给handler发送的这个message就应该离真想很近了。


然后找这个handler的sendMessage相关切message的what字段赋值为1的函数。

然后我找到了它,这个函数还和缩放相关,那就八九不离十了。


按之前的堆栈继续hook,发现卡住的时候这些方法确实都走了,而正常的时候是不走的,那么在X.Dvc的LIZ继续用抛堆栈大法。
得到如下两种堆栈:
•X.DCM接收到了touch事件,然后交由X.DCc这个类进行手势判断,发现是需要执行缩放的手势,于是执行了相机的缩放功能(由于我们业务原因需要隐藏底部NavigationBar,在Window底部上划会显示NavigationBar,上划的手势同时触发了控件的以为需要执行相机缩放),但是我们的虚拟摄像头又不支持缩放,导致打开相机失败,画面就卡在了之前相机拿到的最后一帧。

X.DCc类

X.DCO的invoke方法

•点击tiktok的切换相机Button,触发进入相机的缩放,这里就和我们之前的点击事件联系上了,红框部分就是补上了之前没关注但是最重要的相机缩放功能判断部分。


至此,我们已经把相机卡住的直接原因和根本原因都找到了,先手势再点击切换相机触发了进入相机缩放功能判断流程,由于我们的虚拟相机不支持缩放,导致打开相机失败,卡在相机的最后一帧(也可能是黑屏)。所以只要交付给framework组开发人员,让他们支持相机缩放相关功能就可以了。
接下来来填前面留下的坑,为什么退到后台会导致status函数的返回值不一样?
我们回到CameraVideoCapturer类,看看这个status()函数到底是个什么鬼!

发现他是父类ExternalVideoCapturer的函数,而且就是返回个字段,那再看看他那里进行了赋值。

通过AndroidStudio自带的字段读写索引功能,很容易找到父类里的start、stop和release函数,以及自身的onErrorOnHandler函数里(也就是我们之前抛-421错误堆栈的函数)。如果熟悉相机开发的同学应该知道,一般我们界面退到后台会释放相机,然后回到前台重新打开。那么接下来我们把这几个函数都hook一下,来验证猜想。

这里我多hook了一个onCaptureStarted函数,这个函数会调用父类的onStart函数,想看看是否会有调了onCaptureStarted但是没调父类的onStart的情况。然后还hook了CameraVideoCapturer自身重写的onStart和父类ExternalVideoCapturer的onStart函数。
下面是刚打开直播时的日志,此时status=1。

•情况一:先滑动直播界面,再按home键,然后回到tiktok,再切换相机,此时status()函数返回1,走了后续Camera.open流程。
这是直播退到后台时的调用,说明确实释放掉了,但是又调用了父类的onStart函数,那么此时的应该为2的status又变回了1。

接下来回到前台,此时一切正常status还是为1,而且重走了自身的onStart函数,相当于相机整个流程完全重开。

再接着切换相机第一次,这时的status还是为1,相机正常,紧接着我们发现了-421错误,发现又重走了父类的onStart函数,那么此时status还是1。

接下来切换相机画面卡住了,但还是走了父类的onStart。


以上就是第一种情况,由于每次切换相机都会抛完-421错误后,再调用父类ExternalVideoCapturer的start函数来重置status,也就造成了能调用Camera.open但是画面卡住的情况。
•情况二:先滑动界面,再切换相机,然后按home键,接着回到tiktok,最后切换相机,此时status()函数返回2,没走后续Camera.open流程。
前面流程就不贴了,直接开后面的流程记录。
退到后台status=1

回到前台status=1

切换相机第一次,画面正常status=1

切换相机第二次,在调用switchCamera之前先抛了一次-421的错误,导致status=2,然后switchCamera函数里判断status为2就被return,没有调用Camera.open函数,接下来也没有更多函数来重置status的状态,所以无论怎么切换相机,都无法执行到Camera.open(),除非tiktok退到后台,再回到前台。


以上就是第二钟情况。
关于tiktok怎么开镜像和TikTok为什么会0播放怎么解决的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
