使用Whisper+Gemini为外语视频添加中文字幕
工作环境 Arch Linux计算机 待翻译mp4格式视频 Gemini api key NVIDIA显卡 识别和提取字幕 首先,需要从视频文件中,将原始字幕提取出来。如果视频中已经内嵌了字幕,那么直接使用工具提取就是了,但如果没有,就需要使用AI模型来做这件事。 我们使用来自OpenAI的Whisper来做这件事 首先,确保已经安装必备软件包: …
|
|
|
48
|
|
961 字
|
5 分钟
使用libsu来在Android中访问超级用户权限
在Android中,APP自身无法获得root权限(uid变成0)。 我尝试过在内核态修改APP的uid,但是这样做会导致APP进程卡死。 所以,需要使用root权限进行一些复杂操作时,最好的方法就是启动一个具备root权限的守护进程,由守护进程来操作。而这样启动的守护进程无法绘制UI,虽然有一些手段可以绘制,但是存在很多问题,比如触摸穿透。 所以…
|
|
|
153
|
|
686 字
|
6 分钟
在Linux内核态隐藏用户空间进程
情景导入 在Linux中,一切皆文件。隐藏进程和隐藏文件的原理是一样的。 每一个用户空间进程,都会在/proc下生成一个以pid作为名称的目录,进程的各项信息放置在该目录中。top等命令可以通过遍历/proc目录来得到系统中正在运行的进程信息。 所以,隐藏一个进程,只需要移除它在proc中的条目即可。 通过网络搜索可以知道,proc文件系统不是一个…
|
|
|
76
|
|
1455 字
|
14 分钟
gitea服务器配置问题
在使用gitea的ssh协议操作远程仓库时,出现协议错误,报行长度字符串错误,展示的行长度字符串是This,这是nologin shell的输出,也就是运行gitea的用户使用的shell是禁止登录的nologin,所以无法使用ssh协议登录至系统。将shell改为sh后可以正常操作。 但是引入了一个问题,在gitea的web页面中,每一个用户都可…
|
|
|
52
|
|
494 字
|
2 分钟
使用lldb-server在CLion上调试Android Native进程
环境 Arch Linux操作系统 Xiaomi HyperOS 1.0.6.0 NDK r26 CLion Nave lldb 17.0.6 lldb-server for android 17.0.3 adb 1.0.41 实现原理 在Android中启动lldb-server可执行文件,lldb-server将创建一个套接字,由主机操作系统运…
|
|
|
76
|
|
2277 字
|
10 分钟
Android进程隔离
TargetSDK 28以上的APP,即使拥有Root权限,也无法访问/data/data下其他APP的文件。 这是因为进程处于继承挂载命名空间中,继承了APP的挂载命名空间。 挂载命名空间是Linux内核用来隔离系统资源的一个机制,当zygote启动一个子进程时,子进程将会创建一个新的命名空间,并卸载一些挂载点。这样一来,由此进程负责运行的APP…
|
|
|
69
|
|
264 字
|
2 分钟
baloo占用过多磁盘
发现安装在长江存储器上的Arch Linux有明显卡顿,经过排查发现,瓶颈处于磁盘IO上。 使用top命令发现CPU有20%的时间片都在等待磁盘IO,使用iotop来查找IO密集的进程。 最后定位到一个名叫baloo_file_extractor的进程上。这是KDE Plasma桌面环境中的一个组件,用于处理文件的索引和搜索。 在安装Arch Li…
|
|
|
68
|
|
236 字
|
1 分钟内
lambda问题
C++一个坑。如果直接按值捕获外部对象,那么在lambda内部修改它,会被视为语法错误,不能通过编译。但是在Class成员函数中按值捕获外部所有的对象,将Class的this指针还有Class内部的成员变量一起捕获了,直接使用变量名访问成员变量时,会产生二义性,实际上访问的是lambda按值捕获的时候拷贝的哪一个,而不是this指向内存中的那个。原…
|
|
|
83
|
|
2832 字
|
16 分钟
安装Nvidia驱动踩坑记录
背景 由于Linux自带的开源nouveau驱动,由逆向工程得到,无法完全发挥显卡性能,也不能精确控制功耗,亮度调整经常失效,无法自主决定使用哪块显卡,续航严重不足。所以我决定安装Nvidia官方的驱动程序。 硬件配置 华硕天选3笔记本电脑 Nvidia RTX 3060独立显卡 AMD集成显卡 Kali Linux操作系统 Kali Live启动…
|
|
|
108
|
|
1015 字
|
7 分钟