1

我最近使用ffmpeg 库来压缩长度为 10 秒且大小接近 25 MB 的视频。以下是我尝试使用的命令:

ffmpeg -i /video.mp4 -vcodec h264 -b:v 1000k -acodec mp2 /output.mp4

或者

ffmpeg -i input.mp4 -vcodec h264 -crf 20 output.mp4

这两个命令都太慢了。我在任务完成之前取消了它,因为它花费了太多时间。处理 20% 的视频需要 8 多分钟。时间对我来说真的很重要,所以我不能选择 ffmpeg。我有以下问题:

  • 命令有问题还是ffmpeg很慢?
  • 如果它很慢,那么我可以在android中使用任何其他有据可查且可靠的视频压缩方式/库吗?
4

1 回答 1

0

您的文件位于 mp4 容器中,并且已经在某些预定义的编解码器中包含其流。现在任何容器(不是特别是 mp4)的大小将取决于用于压缩数据的压缩类型(松散的编解码器)。这就是为什么您会看到不同格式的相同内容的不同大小。还有其他参数会影响文件的大小,即帧速率、分辨率、音频比特率等。如果减少它们,文件的大小就会变小。例如,在 youtube 中,当带宽成为问题时,您可以选择以较低的速率播放视频。

但是,如果您选择这样做,您将不得不再次重新处理整个文件,这将花费大量时间,因为您正在解复用容器、解码编解码器、应用过滤器(减少帧等),然后录制,然后再重新组合。除非您有一些令人信服的用例,否则整个过程不值得节省几 MB。

一种解决方案是使用更强大的机器,但这同样受到应用程序架构/约束的限制,无法使用强大的机器。专门为 ffmpeg 回答不会有太大的不同。

于 2017-04-21T06:07:18.093 回答