屏幕记录的帧速率是多少

时间:2015-04-09 18:58:49

标签: android adb

我正在使用adb screenrecord功能来录制我的游戏视频。我知道默认比特率是4Mbps。但帧速率怎么样?
我怎么知道框架是什么以及如何改变它?

3 个答案:

答案 0 :(得分:7)

在录制屏幕时无法强制帧速率值。但是,很多软件在处理可变帧率方面存在问题。我偶然发现的解决方法是使用ffmpeg命令行实用程序并执行以下操作:

ffmpeg -i "test.mp4" -c:v libx264 -preset ultrafast -crf 15 -r 30 -threads 8 -c:a copy "test_new.mp4"

这会将test.mp4视频转换为test_new.mp4,固定帧率为30 fps。 我知道原来的问题已经很老了,但也许会帮助别人。

答案 1 :(得分:4)

帧速率是可变的,不是固定的。每次更新屏幕时,都会记录一帧。如果屏幕未更新,则不记录任何帧。因此,没有设置帧速率,因为它取决于系统更新屏幕的速度。

在大多数设备上,最大值为60fps。如果您想以较低的费率录制,或者拥有固定费率的视频,则需要使用类似ffmpeg的内容进行转换。

可以在bigflake page上找到更多信息。

要查看此操作,您可以在screenrecord v1.2中启用--bugreport标记(首先在Android 5.0“Lollipop中发布”)。这为每个单独的帧提供了数字和时间戳。您可以在this video中看到它。

答案 2 :(得分:0)

录制屏幕时,一般情况下很少有选项。您可以将一些修饰符添加到ADB shell命令,如--bit-rate--size <WIDTHxHEIGHT>。您也可以使用--time-limit <TIME>命令更改最大视频长度,但必须一次性完成。但是,您无法对屏幕旋转做任何事情 - 它根本不受支持。如果您旋转屏幕,部分视频将被切断。 例如,您可以使用,将比特率从4mbps更改为8mbps adb shell screenrecord --bit-rate 8000000 /sdcard/pull_request.mp4 有关支持的分辨率,比特率和问题的详细信息,请参阅此link。使用adb screenrecord你只能改变比特率! 比特率取决于编解码器和分辨率。帧率取决于系统工作和视频播放过程中的变化!

关于比特率和帧率: 您可以使用分辨率和帧速率找到未压缩视频的比特率,通过近似值找到无损视频,但有损视频的比特率是帧率和res独立的(好吧,除了质量/恒定量子模式,但那些不是't&t; t真的可以预测)。无论如何 Pixels width * pixels height * bits per pixel * framerate / 1024 bits in a kilobit应该为未压缩而执行此操作 即640 * 480 * 24 (rgb) * 23.976 / 1024 = 172,627 kbps