4

私はこの領域で立ち往生しており、そこで働くのはまったく快適ではありません.

これが私がこれまでにしたことです:

ここに画像の説明を入力

私は新しいAndroidプロジェクトを作成し、jniフォルダーを作成しましたが、これが私がどこまで行ったかです...これでも、すべての苦労がLinuxに不慣れであり、コンパイルに到達するのにほぼ1週間かかりました。

ffmpeg に透かしを追加する libavfilter で行われていると思いますか? この問題を掘り下げる必要がありますが、プロジェクトに翻訳する必要がある元の ffmpeg は次のとおりです。

ffmpeg -i input.avi -i logo.png -filter_complex 'overlay=10:main_h-overlay_h-10' output.avi

私が今勉強している限り、私はjni内で行う必要があります:

  • フィルターオーバーレイ呼び出しを行う関数を何らかの方法で呼び出す必要がある add_watermark.c ファイルを作成します
  • Android.mk を作成して、これと ffmpeg に必要なライブラリをロードします

    LOCAL_PATH := $(my-dir を呼び出す)

    $(CLEAR_VARS) を含める

    LOCAL_MODULE := 透かしを追加

    LOCAL_SRC_FILES := add-watermark.c

    LOCAL_LDLIBS := -llog -ljnigraphics -lz

    LOCAL_SHARED_LIBRARIES := libavformat libavcodec libswscale libavutil

    $(BUILD_SHARED_LIBRARY) を含める

    $(call import-module,ffmpeg-2.3.3/android/armv7-a)

  • Application.mk を作成

    APP_ABI := armeabi-v7a

    APP_PLATFORM := アンドロイド-8

  • ndk-build を実行し、生成されたライブラリを Android プロジェクトで使用します。

続行するには本当に助けが必要なので、すべての回答は大きな注意と喜びをもって受け取られます.

後で編集:どうにかして ffmpeg.exe をライブラリとして構築し、元の exe とまったく同じパラメータでメインを呼び出すことは可能でしょうか? ffmpeg をスタンドアロンの実行可能ファイルとして実行したくありませんが、プロジェクト内に統合します。http://www.roman10.net/how-to-port-ffmpeg-the-program-to-androidideas-and-thoughts/のようなもの/

後で編集 2: MediaMuxer または Android 4.3 で追加された他の API を使用してこれが可能である場合は、サンプル コードが提供されます。MediaCodec と MediaMuxer のサンプルも Grafik を調べましたが、私が望むことを行う適切な方法が見つかりませんでした。機能する場合は、ffmpeg アプローチの方が適しています

4

4 に答える 4

1

https://github.com/rowntreerob/android-ffmpeg/blob/master/Project/src/com/b2bpo/media/notes/RecorderActivity.java

上記のメソッド 'onFfmpegButton()' をリッピングし、ffmpeg に必要な実際の CLI パラメーターをリセットし、統合された JNI 呼び出し (スタンドアロンではなく) を試して、必要な写真のマージが行われるかどうかを確認できます。

ffmpeg の JNI 統合に関する情報だけが必要な場合は、git の halfninja プロジェクトと、そのプロジェクトの 'videokit' フォルダーで ffmpeg.main() 呼び出しを Android JNI と統合する方法を参照してください。

于 2014-09-12T16:41:44.397 に答える