66 lines
2.7 KiB
Markdown
66 lines
2.7 KiB
Markdown
# Transformer demo
|
|
|
|
This app demonstrates how to use the [Transformer][] API to modify videos, for
|
|
example by removing audio or video.
|
|
|
|
See the [demos README](../README.md) for instructions on how to build and run
|
|
this demo.
|
|
|
|
## MediaPipe frame processing demo
|
|
|
|
Building the demo app with [MediaPipe][] integration enabled requires some extra
|
|
manual steps.
|
|
|
|
1. Follow the
|
|
[instructions](https://google.github.io/mediapipe/getting_started/install.html)
|
|
to install MediaPipe.
|
|
1. Copy the Transformer demo's build configuration and MediaPipe graph text
|
|
protocol buffer under the MediaPipe source tree. This makes it easy to
|
|
[build an AAR][] with bazel by reusing MediaPipe's workspace.
|
|
|
|
```sh
|
|
cd "<path to MediaPipe checkout>"
|
|
MEDIAPIPE_ROOT="$(pwd)"
|
|
MEDIAPIPE_TRANSFORMER_ROOT="${MEDIAPIPE_ROOT}/mediapipe/java/com/google/mediapipe/transformer"
|
|
cd "<path to the transformer demo (containing this readme)>"
|
|
TRANSFORMER_DEMO_ROOT="$(pwd)"
|
|
mkdir -p "${MEDIAPIPE_TRANSFORMER_ROOT}"
|
|
mkdir -p "${TRANSFORMER_DEMO_ROOT}/libs"
|
|
cp ${TRANSFORMER_DEMO_ROOT}/BUILD.bazel ${MEDIAPIPE_TRANSFORMER_ROOT}/BUILD
|
|
cp ${TRANSFORMER_DEMO_ROOT}/src/withMediaPipe/assets/edge_detector_mediapipe_graph.pbtxt \
|
|
${MEDIAPIPE_TRANSFORMER_ROOT}
|
|
```
|
|
|
|
1. Build the AAR and the binary proto for the demo's MediaPipe graph, then copy
|
|
them to Transformer.
|
|
|
|
```sh
|
|
cd ${MEDIAPIPE_ROOT}
|
|
bazel build -c opt --strip=ALWAYS \
|
|
--host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
|
|
--fat_apk_cpu=arm64-v8a,armeabi-v7a \
|
|
--legacy_whole_archive=0 \
|
|
--features=-legacy_whole_archive \
|
|
--copt=-fvisibility=hidden \
|
|
--copt=-ffunction-sections \
|
|
--copt=-fdata-sections \
|
|
--copt=-fstack-protector \
|
|
--copt=-Oz \
|
|
--copt=-fomit-frame-pointer \
|
|
--copt=-DABSL_MIN_LOG_LEVEL=2 \
|
|
--linkopt=-Wl,--gc-sections,--strip-all \
|
|
mediapipe/java/com/google/mediapipe/transformer:edge_detector_mediapipe_aar.aar
|
|
cp bazel-bin/mediapipe/java/com/google/mediapipe/transformer/edge_detector_mediapipe_aar.aar \
|
|
${TRANSFORMER_DEMO_ROOT}/libs
|
|
bazel build mediapipe/java/com/google/mediapipe/transformer:edge_detector_binary_graph
|
|
cp bazel-bin/mediapipe/java/com/google/mediapipe/transformer/edge_detector_mediapipe_graph.binarypb \
|
|
${TRANSFORMER_DEMO_ROOT}/src/withMediaPipe/assets
|
|
```
|
|
|
|
1. Select the `withMediaPipe` build variant in Android Studio, then build and
|
|
run the demo app and select a MediaPipe-based effect.
|
|
|
|
[Transformer]: https://exoplayer.dev/transforming-media.html
|
|
[MediaPipe]: https://google.github.io/mediapipe/
|
|
[build an AAR]: https://google.github.io/mediapipe/getting_started/android_archive_library.html
|