Vig*_*esh 71 compression video video-processing lossy-compression
这个问题可能非常基础
有没有办法减少有损压缩(WMV,MPEG)格式的帧大小/速率,以获得相同格式的较小尺寸的较小视频.
是否有任何开源或专有api?
Jas*_*n B 86
ffmpeg提供此功能.所有你需要做的就是运行
ffmpeg -i <inputfilename> -s 640x480 -b 512k -vcodec mpeg1video -acodec copy <outputfilename>
Run Code Online (Sandbox Code Playgroud)
对于较新版本的ffmpeg,您需要更改-b
为-b:v
:
ffmpeg -i <inputfilename> -s 640x480 -b:v 512k -vcodec mpeg1video -acodec copy <outputfilename>
Run Code Online (Sandbox Code Playgroud)
使用MPEG 1视频编解码器将输入视频文件转换为640 x 480大小和512千比特/秒比特率的视频,然后只复制原始音频流.当然,您可以插入所需的任何值,并使用大小和比特率来实现您正在寻找的质量/尺寸权衡.文档中还描述了大量其他选项
运行ffmpeg -formats
或ffmpeg -codecs
获取所有可用格式和编解码器的列表.如果您不必针对最终输出定位特定编解码器,则可以使用最先进的编解码器(如H.264)实现更好的压缩比,同时将质量损失降至最低.
reb*_*00x 37
如果你想保持相同的屏幕尺寸,可以考虑使用crf因子:https://trac.ffmpeg.org/wiki/Encode/H.264
这是对我-strict -2
有用的命令:(在mac上你需要添加才能使用aac音频编解码器.
ffmpeg -i input.mp4 -c:v libx264 -crf 24 -b:v 1M -c:a aac output.mp4
Run Code Online (Sandbox Code Playgroud)
Lek*_*eyn 30
使用H.264编解码器,您还可以选择不同的预设,而不是按照https://trac.ffmpeg.org/wiki/x264EncodingGuide中的说明选择不同的预设.我还发现KeyJ的博客(存档版本)上的视频编码器比较是一个有趣的读物,它将H.264与Theora和其他人进行了比较.
以下是我尝试的各种选项的比较.录制的视频最初尺寸为673M,使用RecordMyScreen在iPad上拍摄.它的持续时间约为20分钟,分辨率为1024x768(视频的一半为空白,因此我将其裁剪为768x768).为了减小尺寸,我将分辨率降低到480x480.没有音频.
结果,采用相同的1024x768作为基础(并应用裁剪,缩放和过滤器):
-b 512k
添加后,大小降至77M(编码时间:1m17s).-preset veryslow
(和没有-b
),它变成了70M(编码时间:6m14s)-b 512k
和-preset veryslow
,尺寸变为77M(比仅仅小100K -b 512k
).-preset veryslow -crf 28
,我得到一个39M的文件,花了5m47s(没有视觉质量差异给我).N = 1,所以用一粒盐取结果并进行自己的测试.