【问题标题】:Android ffmpeg apply video effects take timeAndroid ffmpeg 应用视频效果需要时间
【发布时间】:2014-02-22 16:34:31
【问题描述】:

我正在使用下面的命令来应用效果,它需要 6-8 分钟来应用 2 分钟视频的效果。 请帮助我提高 ffmpeg 命令的有效时间。

String commandStr = "ffmpeg -y -i "
            + mVideoData.getPath()
            + " -strict experimental -vf curves=vintage -s 640x480 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k -vcodec mpeg4 /sdcard/videokit/curve.mp4";

提前致谢。

【问题讨论】:

    标签: android ffmpeg video-editing


    【解决方案1】:

    请记住,您正在使用手机。

    这些不是 CPU 的主力,它们只是手机,专为使用少量电池长时间运行而设计。 curves 过滤器非常耗费资源,因为它会为输入视频中的每一帧的每一个像素计算一个新值。视频编码器本身可能不会成为这里的瓶颈。

    视频效果最好不是在手机本身上呈现,而是在一些强大的网络服务器上呈现。在手机上,您可能希望先在预览剪辑或静止图像上运行效果。

    【讨论】:

      【解决方案2】:

      首先,我完全同意@slhck。您必须了解移动计算的局限性。不过这里还是要让你满意,你可以试试这些。

      包括-preset ultrafast 选项。它大大减少了时间,但牺牲了质量。我使用此命令运行了您的命令以制作 4 min. 视频,并且需要 3-4 分钟才能完成。

      String commandStr = "ffmpeg -y -i "
              + mVideoData.getPath()
              + " -strict experimental -vf curves=vintage -s 640x480 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k -preset ultrafast /sdcard/videokit/curve.mp4"; 
      

      接下来,您也可以降低 audio bitrate 并移除 audio sampling 速率。如果可能,也减少framerate。所有这些都可以共同减少您的时间。

      希望这对你有帮助。干杯。:)

      【讨论】:

      • 感谢您的回复。使用上述命令,但没有任何时间改进。
      • 嗯,我已经试过了;但您必须查看整体结果(适用于所有文件大小)。
      • 请注意,OP 使用 mpeg4 编码器,而您的命令使用 x264。即使使用超快预设,使用 x264 也会让整个过程再次运行得更久。也许可以尝试编码为 MJPEG 或无损地查看过滤本身需要多长时间(cc @PrvN)
      【解决方案3】:

      每秒图像创建视频

      commandStr = "ffmpeg -framerate 1/1 -i " + privatePath + "img_%d.jpg -strict experimental -vf curves=vintage -s 640x480 -r 10 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k -preset ultrafast "+privatePath+ "Video.mp4";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-27
        • 2016-12-17
        • 1970-01-01
        相关资源
        最近更新 更多