我有一个视频聊天的屏幕录像,文件大小很大,因为屏幕录像本身的帧率为 59.93 fps。但是,我认为视频聊天的帧率为 15-30 fps。另外,这是视频聊天,所以单个帧显然也被压缩了。
我不想降低视频质量(考虑到这是视频聊天,视频质量已经有点差了)。但是,我想减小文件大小。不过,我不太清楚如何最好地做到这一点……我想我的问题可以归结为:
- 有没有办法以某种方式降低视频的帧速率,使其与视频聊天的帧速率同步?
- 还有其他我不知道的压缩选项吗?
如果有帮助的话,这里是 ffmpeg -i 输出:
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '.\Untitled1.mov':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2015-08-02T20:32:54.000000Z
com.apple.quicktime.make: Apple
com.apple.quicktime.model: MacBookAir4,2
com.apple.quicktime.software: Mac OS X 10.10.4 (14E46)
com.apple.quicktime.creationdate: 2015-08-02T12:46:10-0700
Duration: 00:45:19.57, start: 0.000000, bitrate: 12981 kb/s
Stream #0:0[0x1](und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1438x874, 12974 kb/s, SAR 1:1 DAR 719:437, 59.93 fps, 60 tbr, 6k tbn (default)
Metadata:
creation_time : 2015-08-02T20:32:54.000000Z
handler_name : Core Media Video
vendor_id : [0][0][0][0]
encoder : H.264
答案1
FFMPEG 在使用时会简单地丢弃视频中“不必要的”帧-filter:v fps=n
详细解释可见这里
通过另外将视频从 h264 转换为 h265,您可以将视频压缩大约 10 倍,而不会出现明显的质量损失。这意味着 100MB 的文件之后只会占用 10MB 的空间,而不考虑降低的帧速率。
例子:
ffmpeg -i <input> -filter:v fps=30 -c:v libx265 -vtag hvc1 -c:a copy <output>