我正在使用ffmpeg库进行视频压缩。我正在使用ffmpeg4android_lib中的示例代码和以下命令来压缩视频。
String[] complexCommand = new String[]{ "ffmpeg", "-y", "-i",
"/sdcard/videokit/in.mp4", "-strict", "experimental",
"-vcodec", "mpeg4", "-b:v", "500k",
"-acodec", "aac", "-ar", "48000", "-ac", "1",
"-b:a", "96k", "-s", "480x360", "/sdcard/videokit/out.mp4" };
in.mp4视频文件是从相机记录的,最初是46 MB。它将视频文件大小转换为1.7 mb,质量更好。当我从Whatsapp Gallery中选择另一个已经被Whatsapp压缩的视频时,就像我有一个6分钟持续时间和9.8 MB大小的Whatsapp视频,当我选择这个视频用相同的命令进行压缩时,它的大小就变成了26 mb比原来大。当我将视频比特率从500k降低到150k时,输出文件大小变小但质量变差,这是不可接受的。
我发现人们正在使用libx264编码器以最小的文件大小找到更好的质量。我已经更改了我的压缩命令以使用此编码器。
String[] complexCommand = new String[]{ "ffmpeg", "-y", "-i",
"/sdcard/videokit/in.mp4", "-strict", "experimental",
"-vcodec", "libx264", "-preset", "medium", "-b:v", "500k",
"-crf", "26", "-acodec", "aac", "-ar", "48000", "-ac", "1",
"-b:a", "96k", "-s", "480x360", "/sdcard/videokit/out.mp4" };
但是上面的命令不适用于ffmpeg库。我收到以下问题,写入vk.log文件中的日志
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'libx264'.
Reading option '-preset' ...Unrecognized option 'preset'.
Error splitting the argument list: Option not found
ffmpeg4android: ffmpeg_parse_options not passed
exit_program: 1
我正在尝试使用编码器libx264,但ffmpeg未编译以支持此编码器。如何使用ffmpeg配置libx264?我找到了以下引用配置ffmpeg与libx264
1- ffmpeg on Heroku: unrecognized option 'preset'
2- http://blog.oneiroi.co.uk/linux/ffmpeg-install-with-libx264-h264/
3- http://writingminds.github.io/ffmpeg-android/
我是否必须下载NDK,并且必须通过上述参考文献中定义的libx264命令对其进行配置。我没有得到如何通过命令配置它,因为我必须使用ffmpeg在Android Studio中配置它,我使用的是Windows而不是ubuntu或Linux。请建议我如何实现这个目标?