2017-04-20 294 views
1

我最近使用ffmpeg library for android壓縮長度爲10秒,大小近25 MB的視頻。以下是我嘗試使用以下命令:如何在android中快速壓縮視頻?

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

OR

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

這兩個命令的太慢。我在完成任務之前取消了這項任務,因爲它花費了太多時間。花了8分鐘以上才能處理20%的視頻。時間對我來說非常重要,所以我不能選擇ffmpeg。我有以下問題:

  • 有沒有命令錯誤或ffmpeg反正慢?
  • 如果其慢那麼有沒有任何其他有據可查和視頻壓縮,我可以在Android上使用可靠的方法/庫?
+0

的MP4已經被壓縮。 – CommonsWare

+0

我不能縮小尺寸嗎? –

+0

您可以降低其分辨率。您可以降低幀頻。你可以砍掉它的一部分(例如,修剪它的長度到X秒)。這些都不代表壓縮,只不過從ZIP壓縮文件中刪除文件代表的是「壓縮」ZIP壓縮文件。對視頻進行代碼轉換 - 您正在使用'ffmpeg'做什麼,以及更改分辨率或幀速率會涉及什麼 - 很慢。 – CommonsWare

回答

0

你的文件在MP4容器和已經擁有了流在一些預定義的編解碼器。 現在任何容器(不是專門用於mp4)的大小將取決於使用什麼樣的壓縮(鬆散編解碼器)來壓縮數據。這就是爲什麼你會看到不同格式的相同內容的不同大小。 有這可能會影響該文件即幀速率,分辨率,音頻比特率的大小等等,如果減少他們,那麼文件的大小變得不那麼其它參數。例如在youtube中,您可以選擇在帶寬問題時以較低的速率播放視頻。

但是,如果您選擇這樣做,您將不得不重新處理整個文件,並且需要花費大量的時間,因爲您要拆分容器,解碼編碼解碼器,應用濾鏡(減少幀等) ),然後錄製,然後再重新組合。這整個過程如果不值多少MB額外的保存,除非你有一些引人注目的用例。

一種解決方案是使用更強大的機器,但再次,這是通過應用程序的體系結構/約束不限於使用功能強大的機器。專門爲ffmpeg回答它不會有太大的區別。