Ffmpeg 视频压缩
在日常开发中,会经常碰到需要视频压缩的情况,那对于视频压缩,当然是希望压缩率高,但是质量损失小;下面就介绍下 ffmpeg 视频压缩。
命令行参数-crf
在优先保证画面质量(也不太在乎转码时间)的情况下,使用-crf参数来控制转码是比较适宜的。这个参数的取值范围为051,其中0为无损模式,数值越大,画质越差,生成的文件却越小。从主观上讲,1828是一个合理的范围。18被认为是视觉无损的(从技术角度上看当然还是有损的),它的输出视频质量和输入视频相当。
在日常开发中,会经常碰到需要视频压缩的情况,那对于视频压缩,当然是希望压缩率高,但是质量损失小;下面就介绍下 ffmpeg 视频压缩。
在优先保证画面质量(也不太在乎转码时间)的情况下,使用-crf参数来控制转码是比较适宜的。这个参数的取值范围为051,其中0为无损模式,数值越大,画质越差,生成的文件却越小。从主观上讲,1828是一个合理的范围。18被认为是视觉无损的(从技术角度上看当然还是有损的),它的输出视频质量和输入视频相当。
最近在集成 firebase-crashlytics 的时候,发现编译 release 的时候会抛出如下的错误:
* What went wrong:
Execution failed for task ':app:uploadCrashlyticsMappingFileXXXRelease'.
> org.apache.http.conn.HttpHostConnectException: Connect to firebasecrashlyticssymbols.googleapis.com:443 [firebasecrashlyticssymbols.googleapis.com/172.217.160.74] failed: Connection timed out: connect
从错误信息看是发现 firebasecrashlyticssymbols.googleapis.com 这个 host 请求超时了,但是我确实科学上网了呀?我在浏览器中去访问这个 host 也能正常请求,那这是什么原因呢?
adb shell "dumpsys activity top | grep ACTIVITY | tail -n 1"
命令执行结果:
基本的使用说明可以直接看官方网站,比较清晰了:
https://developer.android.com/training/data-storage/room
重点主要记录下和 RxJava 结合使用上的问题。
更少的重复代码,编译时检查的SQL查询,除此之外还有异步功能和可观察的查询-听起来是不是很牛?有了 Room,这些都成为可能。异步查询返回 LiveData 或者 RxJava 的 Maybe, Single 或者 Flowable。
它们都是可观察的查询,可以让你在在数据变更的时候自动获得更新,以便确保UI上反应的是数据库的最新数据。如果你已经在app中使用了RxJava 2 ,那么把 Room 和 Maybe, Single 以及 Flowable 一起使用应该会非常轻松。
有的时候我们想知道机器支持哪些编解码,HDR视频又支持哪些?当然市面上有很多app可以辅助查看,但是作为一个合格的码农,从代码上我们应该怎么去获取这些信息呢,下面我们就来看看。
当我们用 pip install 的时候,会出现如下的错误:
ReadTimeoutError: HTTPSConnectionPool(host=‘xxxxxx', port=443): Read timed out.
这个时候大概率是因为需要去国外下载,但是访问一直超时导致,那这个时候怎么办?这个时候你肯定会想到,有没有什么方法可以将下载源替换,是否有国内的源?
最近在研究 rembg 这个可以移出图片背景的库,发现需要 python 3.9 的支持,但是我的 Linux 服务器是 3.6 的,针对这个情况我们需要怎么安装 3.9 版本的呢?
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
出现提示时,按[Enter]以继续.
在做比如遥控器按键开发时,或者想自己改改按键映射到不同的key上,需要如何进行查看和配置?步骤如下:
通过 getevent -l 找到对应的设备,之后利用 getevent -i 找到 vendor 和 product ID,之后利用这些信息去找到对应的 kl 文件,然后按自己的想法去改这个文件就行了,那我们一步一步来。
线上的服务过段时间就会出现 oom 的错误,但是日志不太够,所以记录下整个问题的排查过程,用于后续进行借鉴。
查询CPU占用情况以及进程PID
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14235 work 20 0 1550m 77m 3988 S 8.0 0.0 21226:25 instance_inspec
47449 root 39 19 1934m 207m 28m S 4.0 0.1 2957:30 webdir-agent
22546 work 20 0 1392m 232m 7256 S 2.7 0.1 33983:04 node /home/work
3752 root 39 19 802m 71m 9408 S 1.7 0.0 1458:30 baas_agent
26618 root 20 0 3779m 66m 6004 S 1.3 0.0 105:56.94 radar-agent-cli
5871 work 20 0 1283m 364m 7132 S 1.0 0.2 35418:49 node /home/work
30848 root 20 0 864m 25m 12m S 1.0 0.0 240:32.29 radar-agent-ser
2272 root 20 0 2269m 206m 7996 S 0.7 0.1 107:50.20 naming-agent
13171 root 20 0 52128 41m 2052 S 0.7 0.0 1452:10 uwsgi
13277 root 20 0 701m 6108 4360 S 0.7 0.0 429:44.24 monitor_gianod.
3588 root 20 0 700m 5924 4336 S 0.3 0.0 242:46.84 monitor_baas_ag
7764 root 20 0 957m 38m 9292 S 0.3 0.0 4607:52 agent.hosteye
7810 root 39 19 5862m 79m 12m S 0.3 0.0 757:45.74 argus-agent
8303 root 39 19 4982m 30m 1012 S 0.3 0.0 41:15.63 noah-client
显示Java堆详细信息,打印一个堆的摘要信息,包括使用的GC算法、堆配置信息和各内存区域内存使用信息
Linux 中时钟有两种,RTC 时钟和系统时钟。RTC时钟即使断电也是处于供电状态的,一般有纽扣电池进行供电,开机时会将 RTC 时间同步到系统时间,之后系统时间独立运作,那对于这两种时钟,Linux 中相关命令如下。