From 8c382fd96da32902a4386a13a60dae009de2585f Mon Sep 17 00:00:00 2001 From: SRift <780400372@qq.com> Date: Sat, 31 Oct 2026 17:40:42 +0800 Subject: [PATCH 1/2] fix(release): support zero-context source patch --- scripts/build_ffmpeg_source.sh | 96 +++++++++++++++++----------------- 1 file changed, 48 insertions(+), 48 deletions(-) mode change 100644 => 100755 scripts/build_ffmpeg_source.sh diff --git a/scripts/build_ffmpeg_source.sh b/scripts/build_ffmpeg_source.sh old mode 100644 new mode 100755 index b598704..dd402d6 --- a/scripts/build_ffmpeg_source.sh +++ b/scripts/build_ffmpeg_source.sh @@ -1,48 +1,48 @@ -#!/usr/bin/env bash -set -euo pipefail - -ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" -OUT="$ROOT/build/compliance/ffmpeg-7.1.6" -mkdir -p "$OUT" "$ROOT/build" - -BUILD_COMMIT="$(python3 -c 'import json, pathlib, sys; print(json.loads((pathlib.Path(sys.argv[1]) / "third_party/ffmpeg/source-build.json").read_text())["upstreamBuildCommit"])' "$ROOT")" -WORKSPACE="$(mktemp -d "$ROOT/build/ffmpeg-source-build.XXXXXX")" -SOURCE="$WORKSPACE/ffmpegkit" -trap 'printf "FFmpeg source build workspace: %s\n" "$WORKSPACE"' EXIT - -git init -q "$SOURCE" -git -C "$SOURCE" remote add origin https://github.com/ffmpegkit-maintained/ffmpeg.git -git -C "$SOURCE" fetch --depth=1 origin "$BUILD_COMMIT" -git -C "$SOURCE" checkout --detach FETCH_HEAD - -for patch in "$ROOT"/third_party/ffmpeg/patches/*.patch; do - git -C "$SOURCE" apply --check "$patch" - git -C "$SOURCE" apply "$patch" -done - -export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME:-}}" -if [[ -z "$ANDROID_SDK_ROOT" ]]; then - echo "ANDROID_SDK_ROOT or ANDROID_HOME must point to the Android SDK." >&2 - exit 1 -fi -if [[ -z "${ANDROID_NDK_ROOT:-}" ]]; then - ANDROID_NDK_ROOT="$ANDROID_SDK_ROOT/ndk/26.2.11394342" -fi -export ANDROID_NDK_ROOT -if [[ ! -f "$ANDROID_NDK_ROOT/source.properties" ]]; then - echo "Android NDK r26c was not found at $ANDROID_NDK_ROOT." >&2 - exit 1 -fi - -cd "$SOURCE/android-7.1-lts" -./android.sh --enable-gnutls --enable-gmp \ - --enable-android-media-codec --enable-android-zlib \ - --disable-arm-v7a --disable-arm-v7a-neon --disable-x86 - -AAR="$SOURCE/android-7.1-lts/prebuilt/bundle-android-aar/ffmpeg-kit/ffmpeg-kit.aar" -if [[ ! -s "$AAR" ]]; then - echo "The FFmpegKit source build did not produce an AAR." >&2 - exit 1 -fi -cp "$AAR" "$OUT/ffmpeg-kit-https-7.1.6.aar" -sha256sum "$OUT/ffmpeg-kit-https-7.1.6.aar" +#!/usr/bin/env bash +set -euo pipefail + +ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +OUT="$ROOT/build/compliance/ffmpeg-7.1.6" +mkdir -p "$OUT" "$ROOT/build" + +BUILD_COMMIT="$(python3 -c 'import json, pathlib, sys; print(json.loads((pathlib.Path(sys.argv[1]) / "third_party/ffmpeg/source-build.json").read_text())["upstreamBuildCommit"])' "$ROOT")" +WORKSPACE="$(mktemp -d "$ROOT/build/ffmpeg-source-build.XXXXXX")" +SOURCE="$WORKSPACE/ffmpegkit" +trap 'printf "FFmpeg source build workspace: %s\n" "$WORKSPACE"' EXIT + +git init -q "$SOURCE" +git -C "$SOURCE" remote add origin https://github.com/ffmpegkit-maintained/ffmpeg.git +git -C "$SOURCE" fetch --depth=1 origin "$BUILD_COMMIT" +git -C "$SOURCE" checkout --detach FETCH_HEAD + +for patch in "$ROOT"/third_party/ffmpeg/patches/*.patch; do + git -C "$SOURCE" apply --unidiff-zero --check "$patch" + git -C "$SOURCE" apply --unidiff-zero "$patch" +done + +export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME:-}}" +if [[ -z "$ANDROID_SDK_ROOT" ]]; then + echo "ANDROID_SDK_ROOT or ANDROID_HOME must point to the Android SDK." >&2 + exit 1 +fi +if [[ -z "${ANDROID_NDK_ROOT:-}" ]]; then + ANDROID_NDK_ROOT="$ANDROID_SDK_ROOT/ndk/26.2.11394342" +fi +export ANDROID_NDK_ROOT +if [[ ! -f "$ANDROID_NDK_ROOT/source.properties" ]]; then + echo "Android NDK r26c was not found at $ANDROID_NDK_ROOT." >&2 + exit 1 +fi + +cd "$SOURCE/android-7.1-lts" +./android.sh --enable-gnutls --enable-gmp \ + --enable-android-media-codec --enable-android-zlib \ + --disable-arm-v7a --disable-arm-v7a-neon --disable-x86 + +AAR="$SOURCE/android-7.1-lts/prebuilt/bundle-android-aar/ffmpeg-kit/ffmpeg-kit.aar" +if [[ ! -s "$AAR" ]]; then + echo "The FFmpegKit source build did not produce an AAR." >&2 + exit 1 +fi +cp "$AAR" "$OUT/ffmpeg-kit-https-7.1.6.aar" +sha256sum "$OUT/ffmpeg-kit-https-7.1.6.aar" From 688ec7a635d28c6e08e1ef32c7dcb06368fc0305 Mon Sep 17 00:00:00 2001 From: SRift <780400372@qq.com> Date: Sat, 31 Oct 2026 17:41:04 +0800 Subject: [PATCH 2/2] docs: improve readme screenshots and project overview --- README.en.md | 29 ++++++++++++++++++----------- README.md | 29 ++++++++++++++++++----------- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/README.en.md b/README.en.md index 607f056..4ff375c 100644 --- a/README.en.md +++ b/README.en.md @@ -1,6 +1,11 @@ -# CastTrace Android +
简体中文 | English
+ +
+ Android live-stream monitoring and recording
+ Manage rooms locally, monitor streams in the background, and resume interrupted recordings.
+
Download the latest APK · Contribute · Architecture
-This is an independently maintained Android project that takes inspiration from the platform recording approach in [StreamCap](https://github.com/ihmily/StreamCap). It is not an official StreamCap mobile client. A platform being supported upstream does not mean that CastTrace supports it. +## Screenshots + + +Room monitoring · Live reminders · Recording and background settings. Click an image to view it full size.
- Screenshots · Download APK · Features · Build from source · @@ -22,13 +33,9 @@ This is an independently maintained Android project that takes inspiration from Contributing
-## Screenshots +CastTrace is built with Kotlin, Jetpack Compose, Room, WorkManager, Media3 and FFmpegKit. It also supports live reminders, chat capture and local playback. - +This is an independently maintained Android project that takes inspiration from the platform recording approach in [StreamCap](https://github.com/ihmily/StreamCap). It is not an official StreamCap mobile client. A platform being supported upstream does not mean that CastTrace supports it. ## Download diff --git a/README.md b/README.md index ae68cd2..1237feb 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ -# CastTrace Android +简体中文 | English
+ +
+ Android 多平台直播监控与录制
+ 本机管理直播间,后台监控开播,自动录制并恢复中断任务。
+
直播间监控台 · 开播提醒 · 录制与后台设置。点击图片可查看原尺寸。
- 界面截图 · 下载 APK · 功能 · 从源码构建 · @@ -23,13 +34,9 @@ CastTrace 是一款 Android 多平台直播监控和录制工具,使用 Kotlin 参与和反馈
-## 界面截图 +CastTrace 使用 Kotlin、Jetpack Compose、Room、WorkManager、Media3 和 FFmpegKit 构建,支持直播提醒、弹幕采集与本地播放。 - +本项目参考了 [StreamCap](https://github.com/ihmily/StreamCap) 的平台录制思路,是独立维护的 Android 项目,并非 StreamCap 官方移动端;上游平台支持范围不代表本项目全部支持。 ## 下载 APK