FFmpeg库压缩视频文件太慢了。Android

3
我在我的Android项目中使用ffmpeg库来进行视频文件压缩。
为了实现ffmpeg,我参考了这个链接,但是ffmpeg花费的时间太长了,仅仅压缩一个6秒的视频就需要1分钟的时间。我正在使用以下命令进行视频压缩:
ffmpeg -y -i /sdcard/videokit/in.mp4 -strict experimental -vf transpose=1 -s 160x120 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k /sdcard/videokit/out.mp4

请问是否有可能通过更改上述命令中的某些设置或参数来缩短压缩时间?或者是否有比ffmpeg更快地压缩视频的方法?谢谢。


虽然可能有方法使ffmpeg更快,但我也会考虑不要在同一磁盘上使用输入/输出流,并尝试在不同设备上使用不同的SD卡来运行代码。 - n_b
1
请查看 https://dev59.com/X-k6XIcBkEYKwwoYAfO1 - Gyan
@Leo Wiki,你找到解决方案了吗?我也遇到了同样的问题,视频压缩非常慢。 - Piyush
1个回答

10

虽然你能做的事情不多,但确实有一些值得考虑的事情:

  • 可以将-preset值设置为fast/veryfast/ultrafast
  • 可以将-crf值设置为18到28之间(通常为此范围)。
  • 最重要的是,如果您不想更改音频/视频编解码器,应该使用以下命令保留原始设置:-c copy(这可以极大地提高执行时间,具体取决于您的用例)

请参考此链接获取预设和crf设置


根据您的建议,我将我的命令从“ffmpeg -y -i %s -strict experimental -s 160x120 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k %s”改写为“ffmpeg -y -i %s -crf 27 -preset veryfast -strict experimental -s 160x120 -r 30 -aspect 4:3 -ab 48000 -ac 2 -ar 22050 -b 2097k %s”,但是我的应用程序崩溃了,在日志中没有任何输出。 - Leo Wiki
3
"-c copy" 的设置让我从几分钟的等待时间缩短到了几秒钟! - King Julien
1
@SarthakMittal 哥们儿!你真是个救星!非常感谢 :D - Dinesh Singh
从每秒0.175个样本到80个样本的速度!然而,压缩并没有起作用,反而增加了文件的大小。 - Said Torres
@SaidTorres,我很高兴这个答案仍然有用,因为我不再从事ffmpeg工作,所以无法用更多的想法更新它,如果你发现其他有帮助的东西,我建议你发布自己的答案,这将有助于未来遇到这个问题的读者。 - Sarthak Mittal
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接