tiktok怎样开镜像?

原创 admin  2023-03-04 08:23  阅读 2 次

怎样在切入切出虚拟摄像头时营造卡顿效果

背景介绍:本人原为android反向工程师,因工作变动退出了协议分析类岗位,目前正在进行直播机与第三方APP应用的兼容性分析,有此兼容性分析文章。

问题: tiktok在按下流媒体设备进行现场直播时,如果经过几个特定步骤在前后摄像机之间切换,就会出现卡涩的问题。

再现步骤:在实时界面中打开更多菜单→返回后台→返回前台→切换前后菜单。

现象:直播屏幕堵塞了,不能动了。

解决方案:找到点击切换按钮后点击事件的回调,找到切换摄像头的核心逻辑,找到卡住的原因。

1、如果知道ART虚拟机的同学会知道的话,jni函数和java函数两者都会调用ART虚拟机ArtM: Android.view.view.perform click

ArtM:; lr:0x4af78c; libart.so : Android.view.view.perform click

ArtM:; lr:0x2: Java.lang.:; lr:0x2: x.ggh.Liz

ArtM:; lr:0x2: Java.util.link:; lr:0x2: Java.util.hashmap.putall

ArtM:; lr:0x2: Java.util.hashmap.put

ArtM:; lr:0x2: x.d:; lr:0x2: x.d5k.onclick

使用frida hook libart.so的art method invoke函数找到了单击事件的回调类X.D5k。

找到与该类对应的onClick函数后,我感觉我简单研究了整个过程,发现核心代码在对直播流处理进行评论。

在核心代码之后寻找LiveCore,我想这就是live的核心代码。 其实现类为LiveCoreImpl,LiveStream的实现类为LiveStream。

这里只是编写了日志信息的合成和应用镜像等代码,但是找到了核心类LiveStreamVideoCapture。

跟踪到这里,发现链接已经断开,又在frida中打开tiktok卡,在启动页上死了,下次使用Xposed继续流程。

上面的代码赶不上切换摄像头的核心逻辑,但是找到了两个核心逻辑的LiveStreamVideoCapture类和LiveCoreImpl。 因为每个都与直播视频流控制直播核心流程控制相关,所以Xposed后续的时候重点放在这两个类上,这里开始了扩招。 粘贴名为hook的两个类的所有函数。请注意,此处使用的classloader是application的classloader。

日志太多了。 在这里用shell命令setprop进行了日志控制。

然后,找到CameraVideoCapturer类的tryDeliverFrame。 这里正在处理摄像机的视频帧。 感觉越来越接近了。 继续使用名为hook的方法。 然后,在卡在摄像机切换中之后,这个方法也停止了调用。 没办法,只能继续寻找堆栈中run方法的调用方。

继续hook。

找到这个班。

现在熟悉照相机开发的学生应该知道这是SurfaceText在ure.setonframeavailablelistener之后,摄影机的可用帧回调此函数,在摄影机之间切换时,也不会同时回调纸箱和可用帧。

接下来是hook原生摄像头。

调用的是android.hardware.Camera,即与camera1相关的api,在切换卡顿时没有调用Camera.open函数。

第一次开始实时时调用了这两个函数,但在单击“切换摄影机”时没有调用。 在名为X.HCF的类中找到switchCamera函数时,估计第一次打开摄像机时和切换前后摄像机所做的流程不同。 此错误仅在切换相机时出现,因此不关注首次打开相机时的流程。

果然,切换照相机的时候遵循了这个流程。 这又发现了一个名为LiveStreamVideoCapture的核心类。 那么我们就简单进去看看有没有制作出SwitchCaptur测试,我们发现这个类只被创建一次,每次切换run方法时都会被调用,如果被卡住的话也会被调用。 结合上述Camera.open被卡住时没有被调用的情况,可以大胆推测中间进程的某个条件没有得到满足就被返回了。 根据堆栈信息继续寻找几个关键点。

我发现CameraVideoCapture也有切换照相机的流程。 一步一步往下,就可以调用上面的我们在hook过的X.HCF的switchCamera了。 那么,我们来看看这里的switchCamera是否被调用了。

情况1 )滑动实时界面,按home键,然后返回tiktok并切换摄像头。 此时,status ) )函数返回1,前往后续的Camera.open流程。

情况2 )首先滑动界面,然后切换摄像头,按home键,然后返回tiktok,最后切换摄像头。 此时,status ) )函数返回2,不再跟随Camera.open的流程。

从日志上看switchCamera的话,两种情况都会去。 此外,如果结合switchCamera的源代码进行查看,则源代码中的status ) )函数的返回值将决定是否继续调用切换摄像机的过程。 很遗憾,两种情况都会发生,会被卡住。 (为什么两个status值不同呢? 在这里留个洞,最后补上。 ) ) ) 652这让我为难了!

在这过程中,突然脑子变得清醒了。 既然画面被堵塞了,就一定会有错误信息的回调。 果然一检索CameraVideoCaptur测试进程。

错误信息清楚地表明照相机无法打开,因为照相机不支持变焦。 那么,到目前为止已经找到了摄像头堵塞的直接原因,但为什么卡在特殊的操作流程之后,无法进行通常的操作还没有找到。 于是跟着堆栈信息继续向上找。

进入这里的流程,我发现了照相机进入变焦的流程。 为了验证预期,我们决定在调用此函数之前,将消息的what字段更改为2,以避免此流程,并检查接口是否堵塞。 因此,出现了以下代码。

经过这个篡改,就算真的被随意耍了,直播界面也不会挂科了。 只要在那里找到发给handler的这个消息,我就真的应该很接近。

然后,查找截断此handler的sendMessage相关消息的what字段赋值为1的函数。

然后我找到了那个。 这个函数也和缩放有关。 它离不开十。

按前面的堆栈继续hook,堵塞的时候这些方法确实都去了,正常的时候不去,那么在X.Dvc的LIZ上继续使用堆栈扔。

得到以下两种堆栈:

x.DCM接收到touch事件,将其传递给名为X.DCc的类进行手势判断,发现这是需要执行缩放的手势,然后执行相机的缩放功能。 (由于我们的业务原因,我觉得必须隐藏下面的导航栏,在窗口下方显示导航栏,控件需要在向上拉动的同时进行相机缩放。 ) )

X.DCc类

X.DCO的invoke方法

单击tiktok的切换摄影机Button触发进入摄影机缩放时,此处将导致我们以前的单击事件。 红框的部分是对之前没有注意到的、最重要的照相机变焦功能判断部分的补充。

到此为止,我们找到了摄像头堵塞的直接原因和根本原因。 做手势,然后点击切换摄像头,进入判断摄像头变焦功能的过程。 我们的虚拟摄像机不支持变焦,所以摄像机开机失败,卡在了摄像机的最后一个框架(可能是黑屏)上。 所以,交付给framework集团的开发者,让他们支持摄像机变焦的相关功能就可以了。

接下来填补前面剩下的洞。 为什么下降到背景时,status函数的返回值会不同呢?

让我们回到CameraVideoCapturer类来看看这个status ) )函数到底是什么样的!

发现他在父类ExternalVideoCapturer的函数中返回字段。 那么,让我们看看在他那里进行了代入。

通过使用AndroidStudio提供的字段读写索引功能,可以使用父类的start、stop、release函数和自己的onErrorOnHandler函数(即抛出-421错误堆栈的函数) 熟悉摄像头开发的学生应该都知道,一般我们的界面下降到后台就会释放摄像头,然后回到前台重新打开。 现在,让我们将这些函数全部设置为hook,以验证预期。

在这里,hook了很多onCaptureStarted函数。 该函数调用父类的onStart函数,查看是否有调整了onCaptureStarted,但没有调整父类的onStart的情况。 然后,CameraVideoCapturer自己重写的onStart和父类ExternalVideoCapturer的onStart函数也做了hook。

以下是刚打开实时时的日志。 此时,状态= 1。

情况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

情况2 )首先滑动界面,然后切换摄像头,按home键,然后返回tiktok,最后切换摄像头。 此时,status ) )函数返回2,不再跟随Camera.open的流程。

不贴上之前的流程。 直接打开后面的进程记录。

后退到背景status=1

返回前台status=1

切换第一照相机此次,画面正常状态= 1

第二次切换摄影机时,在调用switchCamera之前先抛出一次-421错误,使status=2。 然后,如果switchCamera函数确定status为2,则会返回,不调用Cam

如何打开国际版tiktok应用软件?

国际版tiktok的使用教程如下。

工具: Vivo手机、UC浏览器、tiktok国际版APP。

1、打开Vivo手机,登录UC浏览器。

2、在UC浏览器中,在搜索栏中输入tiktok国际版软件名称,自动弹出相应的搜索结果,点击进入。

3、进入搜索结果,查看详情,点击tiktok国际版apk下载按钮。

4、弹出下载窗口,点击下载即可。

5、下载完成后自动安装。 如果没有自动安装,可以手动操作安装。 安装完成后,可以在手机上打开tiktok国际版app使用。

如何在国内使用tiktok?

TikTok是抖音国际版,不在国内提供。

TikTok的运营策略是针对不同的市场采取适合当地需求的本地化运营策略。 TikTok多次名列美国、印度、德国、法国、日本、印度尼西亚和俄罗斯等App Store和Google Play之首。 TikTok在全球各地设有办事处,包括洛杉矶、纽约、伦敦、巴黎、柏林、迪拜、孟买、新加坡、雅加达、首尔和东京。

软件的特点

1、用户可以通过TikTok上传或观看15秒和60秒以内的短视频内容。 TikTok是标准的UGC模式产品,本身不生产任何作品,用户生产内容,其他用户消费。

2、TikTok的注册比较松。 一个电子邮件地址就可以注册TikTok账户。 当然,也可以用号码、第三方App的账号( Fac

短视频平台机器,是如何检测短视频内容,是否重复一致?

疯狂网为您解答:

无论何种形式的内容都作为数据存储在存储服务器上,直接比较数据是其中的一种方法。

打个比方,我会看着你的照片,我会让你进入我的记忆中。 那么,我会记住你的肤色、身高、五感、一、其他特征。 这是模糊的记忆。 计算机的存储方法是把这张照片分成几个小方块,也就是我们说的像素,记住每个小方块的位置和颜色如果是视频的话,还会记录小方块的变化,那么直接比较记录了两个小方块色值的数据,就可以正确判断两张照片是否一致。 视频中也可以这么说。 单纯的比较是不够的。 也许装上过滤系统就可以避免了。 实际上需要使用非常复杂的检查,但是如果伪造原始视频的话,可以从以下角度处理。

1、加入过滤器。 滤镜与我们视频处理的统一调色不同,视频位置的变化不同,所以如果我们至少提高了其中一个视频的色调,本质上差异不大。

2、进行镜像。 左右或上下镜像。 根据内容不同,镜像后只要不影响视频本身的表现就可以了。

3、分镜头。 例如,我们通常的视频有25帧、30帧、60帧。 假设原始视频是6秒的视频。 每秒60帧,一共360帧。 你抽出60帧的话,后面的各帧和原来的视频有区别。 当然,如果原始视频的每一帧都没有差异的话,系统会发现的。

可以用其他很多方法处理视频。 科技不断进步,各平台的反作弊技术也不断提高,不同的平台有不同的规则,可以多尝试。

目前,这种伪原创技术多用于Tiktok的搬运号码。 抖音的短视频直接处理后运到Tiktok上,有播放就有创作者支持计划,前期就能获得收益。 即使在有了以后的账号后开始自己制作短视频,也可以接收广告,或者拿商品。

w11的tiktok怎么打开

TikTok是抖音国际版,国内不提供。

TikTok是字节跳动旗下的短视频社交平台,于2017年5月上线。 愿景是“促进创造,带来喜悦”。

美国当地时间2020年8月24日,TikTok对特朗普8月6日颁布的第一项行政命令正式提起诉讼,并在新闻发布会上表示:“我们不能轻易起诉,但我们别无选择。 只能为了保护我们的权利以及我们社区和员工的权利而行动。 ”

获得荣誉:

2018年12月,苹果公司发布了“2018年度最佳选择排行榜( Best of 2018 )”,TikTok超过了LINE、Google Maps等经典APP,是日本App Store年度人气免费APP排行榜之一

2018年12月,TikTok在谷歌play年度大奖中获得了印度尼西亚2018年度“最佳APP”奖。 谷歌play正式宣布获奖的理由是,TikTok拥有“丰富的社区交流和精彩的用户创造内容( UGC )”。

2019年1月,印度全国日报《印度快报》(Th

TikTok如何破0播放

Tiktok最常见的问题是,我的视频发布是怎么持续很久的,怎么还在0上播放? 我的这个号码受到限制吗? 这是号码。 吗? 怎么办?

孩子们,有很多问号吗?

其实,我理解大家这种不安的心情。 因为我也经历过这种不安的感觉。 现在这个问题已经过去了。 经过大家的经验总结和我自己的实际操作,基本上解决了这个问题。 现在我把自己的操作过程整理成文档。 希望能成为大家想法的参考。 说实话,我用这个方法试了搬运抖音、快手、TikTok的大V视频,幸好没能监控到。 如果平台要检查的话,我会同样调查。

一.确保破0播放TikTok环境100%正常

0要打破播放,第一步是确保手动100%模拟环境。 但是主教练嘉伟说70%以上没有差别,但是因为有强迫症所以必须把它定为100%。 具体操作看了导师嘉伟的文档,这里就不介绍了。

我认为这一步非常重要。 虽然模拟度是100%,很不安,但是有在百度上输入“IP地址查询”,调查现在的IP是否真的出去了的习惯。 如上图所示。 如果认真完成以上步骤,之后出现0播放的情况下,无需考虑是否是环境因素,而是直接排除。

二、破0播放2视频搬运剪辑技巧方法

不善于使用工具; 视频时间:掐住脖子走到尽头; 画面处理:放大缩小滤镜镜; 消除冗馀

倍速效应; 改变音乐寻找节点,删除; 字幕、贴纸(保罗投票);

加以说明; 帧变更:钟表、外壳; 视频源; 换个主题

我只需要里面的四五个技巧,就可以破0播放便携式视频了。

我用剪切工具录了视频教程。 整个视频五分钟。 通过观看本教程,即使你是基于0的同学,也可以同样轻松地制作完整的视频。

搬运视频剪辑处理教程

可以使用的TikTok人气音乐70首

如果有必要的联系的话我会发送过去。

三、破0播出3创作优质作品

纵观TitTok的优秀作品,你会发现技术技巧其实并不重要,作品的内容很重要。

四.插入一股份额

我零播的时候,之所以有这么多资料,都是因为自己敲了20多天。

用一个一个的方法试试,去调查原因。

坏了的技巧不过是几种

2.不仅仅是硬件ip内容,播放原因故障诊断也为零

按照教程的技巧一个一个地检查哦

具体操作流程

硬件故障诊断

1.)在编号阶段,iPhone上是否有注销数据,安卓上是否有三清recovery ) )。

2 .在经过验证的vvv基础上安装whoer100%

内容故障排除

1 .内容质量太差了,这就要学习优质的对象。 我注意到一个同学喜欢埋头于视频

2 .此外,还有搬运的重复问题。 搬运重复问题的情况下,深度处理一定不充分。

如果仍然被识别,则深度处理不充分的概率很高。 让我们来看看深度处理的技巧。 每秒覆盖所有帧,不要曝光任何帧。 这个做好了吗

如果你不喜欢花时间自主学习,那就主动调查原因,用零播放手机关掉数据,然后把安卓三清recovery、基础设置验证的vvv全部重做吧

来源:https://www.huanp.com/douyin/135223.html
声明:欢迎分享本文,转载请保留出处!

发表评论


表情