私はこの領域で立ち往生しており、そこで働くのはまったく快適ではありません.
これが私がこれまでにしたことです:
- Ubuntu VirtualBox マシンを作成
- 2.3.3 である最新の ffmpeg バージョンをダウンロードしました
- armv7-a と互換性があるように ffmpeg をコンパイルしたので、最終的に include と lib の 2 つのフォルダーを取得します。インクルードにはヘッダーがあり、ライブラリには *.so ファイルがあります ( http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/と同じように)
私は新しい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 アプローチの方が適しています