编译ffmpeg以支持libx264编码器

时间:2016-10-18 12:58:04

标签: java android video ffmpeg codec

我正在使用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。请建议我如何实现这个目标?

0 个答案:

没有答案