压缩视频后,Android的质量越来越差

时间:2015-09-01 12:49:46

标签: android eclipse video ffmpeg compression

我在Android中使用ffmpeg完成了视频压缩,我遇到了一些问题。

我已经捕获了一个完全一分钟的视频,并且在我的nexus 5上有123 MB的大小。我做了相同视频的视频压缩,从大约123 MB到1.30 MB,它将需要2分钟左右,这是成功完成。

但问题是我的SD卡中有压缩视频,当我播放时,视频质量完全无聊,下面是使用ffmpeg的代码。

String[] complexCommand = {"ffmpeg", "-i", videoPath, "-strict","experimental","-s", "160x120","-r","25", "-vcodec", "mpeg4", "-b", "150k", "-ab","48000", "-ac", "2", "-ar", "22050", demoVideoFolder + "Compressed_Video.mp4"};

LoadJNI vk = new LoadJNI();
            try {
                 vk.run(complexCommand, workFolder, getApplicationContext(),
                 false);
                GeneralUtils.copyFileToFolder(vkLogPath, demoVideoFolder);
            } catch (Throwable e) {
                Log.e(Prefs.TAG, "vk run exeption.", e);
            } finally {
                if (wakeLock.isHeld())
                    wakeLock.release();
                else {
                    Log.i(Prefs.TAG,
                            "Wake lock is already released, doing nothing");
                }
            }
            Log.i(Prefs.TAG, "doInBackground finished");

此处 videopath 是我的文件路径, demofolder 是我的输出文件夹。我附上了快照,只是看看它。

enter image description here

请告诉我应该做些什么,所以在此之前,您的努力将受到高度赞赏并对此表示感谢。

1 个答案:

答案 0 :(得分:4)

"沉闷"是非常主观的,我真的不知道该怎么做。如果您有想要讨论的特定工件,请发布截图。我可以对您的命令行做一些可能有用或可能没有帮助的一般性评论:

  • -s 160x120 - 我们回到1995年了吗?这就是我们所说的"邮票大小的视频"在90年代中期。如果您不知道,这会将视频大小调整为160x120分辨率,从而破坏质量。
  • -r 25你在这里随意掉线并添加帧。您最有可能想要使用fps过滤器,或完全删除此选项。
  • -vcodec mpeg4 - 人们现在使用H.264(-vcodec libx264),如果不是HEVC / VP9(-vcodec libx265 / libvpx-vp9)。
  • -b 150k - 这是一个非常低的比特率。如果您不喜欢视频质量,请提高比特率。
  • - 严格实验 - 除非你知道自己在做什么,否则不要使用它。