簡體   English   中英

構建用於Android的FFmpeg以使用命令行參數

[英]Building FFmpeg for Android to use command line arguments

我正在嘗試構建FFmpeg庫,以便在我的Android應用程序中使用NDK。 原因是因為我在android中使用本機視頻捕獲功能,因為我真的不想編寫自己的錄像機。 但是,本機視頻捕獲僅允許高質量編碼或低質量編碼。 我想要介於兩者之間,我相信解決方案是使用FFmpeg庫將高質量視頻重新編碼為更輕。

到目前為止,我已經能夠根據本指南構建FFmpeg庫: http//www.roman10.net/how-to-build-ffmpeg-for-android/以及我能夠獲得的一些調整上班。

但是,我發現的所有內容似乎都是關於編寫自己的編碼器,這對我來說似乎有些過分。 我真正想做的就是將命令行格式的字符串發送到FFmpeg的main()函數並重新編碼我的視頻。 但是,我似乎無法弄清楚我是如何構建FFmpeg來讓我訪問main方法的。 我找到了這篇文章: 編譯ffmpeg.c並通過JNI調用它的main(),它連接到一個項目,做我想要的更多,但對於我的生活,我無法弄清楚發生了什么。 看起來他的編譯比我想要的還多,我真的希望盡可能保持我的應用程序的重量。

一些額外的方向將非常有幫助。 謝謝。

在Android NDK中,典型意義上的應用程序中沒有main(),因此您無法直接執行所需操作。 但是,您仍然可以自己調用FFmpeg的main()並為其提供所有必要的參數。 以下是獲取參數的兩種可能性:

  1. Android Activity在創建后收到Intent。 您可以在開始活動時通過intent傳遞參數,然后像這樣提取它:

     Intent CommandLine = this.getIntent(); Uri uri = CommandLine.getData(); 
  2. 您可以從SD卡上創建的文件中讀取參數,並將其傳遞給FFmpeg。

第二個回答者似乎有你的答案。 請參閱此鏈接。 FFmpeg可以用作庫而不是獨立程序嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM