录屏帧率是多少
What is the frame rate of screen record
我正在使用 adb screenrecord 功能来录制我的游戏视频。我知道默认比特率是 4Mbps。但是帧率呢?
我怎么知道什么是框架以及如何改变它?
录屏的时候一般选项很少。您可以为 ADB shell 命令添加一些修饰符,例如 --bit-rate
和 --size <WIDTHxHEIGHT>
。您还可以使用 --time-limit <TIME>
命令更改最大视频长度,但您必须每次都这样做。但是,对于屏幕旋转您无能为力——根本不支持它。如果旋转屏幕,部分视频将被截断。
例如,您可以通过使用将比特率从 4mbps 更改为 8mbps
adb shell screenrecord --bit-rate 8000000 /sdcard/pull_request.mp4
有关支持的分辨率、比特率和问题的详细信息,请参阅此 link。通过使用 adb screenrecord
你只能改变比特率!!!
比特率取决于编解码器和分辨率。帧率取决于系统工作和视频播放过程中的变化!
关于比特率和帧率:
您可以使用分辨率和帧率找到未压缩视频的比特率,并通过近似找到无损视频,但有损视频的比特率与帧率和分辨率无关(嗯,除了 quality/constant 量化模式,但这些并不是真正可预测的)。反正
Pixels width * pixels height * bits per pixel * framerate / 1024 bits in a kilobit
应该为未压缩的做
即 640 * 480 * 24 (rgb) * 23.976 / 1024 = 172,627 kbps
帧速率是可变的,不是固定的。每次屏幕更新时,都会记录一帧。如果屏幕未更新,则不会记录任何帧。因此没有设置帧率,因为它是由系统更新屏幕的速度决定的。
在大多数设备上,这将是最大 60fps。如果你想以较低的速率录制,或者有一个固定速率的视频,你将需要使用类似 ffmpeg 的东西来转换它。
可以在 bigflake page 上找到更多信息。
要查看实际效果,您可以在 screenrecord v1.2 中启用 --bugreport
标志(首次在 Android 5.0 "Lollipop" 中发布)。这给每个单独的帧一个数字和一个时间戳。您可以在 this video.
中看到它的实际效果
无法在录制屏幕时强制设置帧速率值。然而,很多软件在处理可变帧率方面存在问题。我偶然发现的解决方法是使用 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。
我知道原来的问题已经很老了,但也许它会对某人有所帮助。
我正在使用 adb screenrecord 功能来录制我的游戏视频。我知道默认比特率是 4Mbps。但是帧率呢?
我怎么知道什么是框架以及如何改变它?
录屏的时候一般选项很少。您可以为 ADB shell 命令添加一些修饰符,例如 --bit-rate
和 --size <WIDTHxHEIGHT>
。您还可以使用 --time-limit <TIME>
命令更改最大视频长度,但您必须每次都这样做。但是,对于屏幕旋转您无能为力——根本不支持它。如果旋转屏幕,部分视频将被截断。
例如,您可以通过使用将比特率从 4mbps 更改为 8mbps
adb shell screenrecord --bit-rate 8000000 /sdcard/pull_request.mp4
有关支持的分辨率、比特率和问题的详细信息,请参阅此 link。通过使用 adb screenrecord
你只能改变比特率!!!
比特率取决于编解码器和分辨率。帧率取决于系统工作和视频播放过程中的变化!
关于比特率和帧率:
您可以使用分辨率和帧率找到未压缩视频的比特率,并通过近似找到无损视频,但有损视频的比特率与帧率和分辨率无关(嗯,除了 quality/constant 量化模式,但这些并不是真正可预测的)。反正
Pixels width * pixels height * bits per pixel * framerate / 1024 bits in a kilobit
应该为未压缩的做
即 640 * 480 * 24 (rgb) * 23.976 / 1024 = 172,627 kbps
帧速率是可变的,不是固定的。每次屏幕更新时,都会记录一帧。如果屏幕未更新,则不会记录任何帧。因此没有设置帧率,因为它是由系统更新屏幕的速度决定的。
在大多数设备上,这将是最大 60fps。如果你想以较低的速率录制,或者有一个固定速率的视频,你将需要使用类似 ffmpeg 的东西来转换它。
可以在 bigflake page 上找到更多信息。
要查看实际效果,您可以在 screenrecord v1.2 中启用 --bugreport
标志(首次在 Android 5.0 "Lollipop" 中发布)。这给每个单独的帧一个数字和一个时间戳。您可以在 this video.
无法在录制屏幕时强制设置帧速率值。然而,很多软件在处理可变帧率方面存在问题。我偶然发现的解决方法是使用 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。
我知道原来的问题已经很老了,但也许它会对某人有所帮助。