forked from
lass.pds.lassul.us/superconfig
This repository has no description
1.7 kB
74 lines
1SHADER_PATH="@shaderPath@"
2ASCII_MODE=false
3
4while [[ $# -gt 0 ]]; do
5 case $1 in
6 --ascii)
7 ASCII_MODE=true
8 shift
9 ;;
10 *)
11 echo "Unknown option: $1" >&2
12 echo "Usage: android-webcam [--ascii]" >&2
13 exit 1
14 ;;
15 esac
16done
17
18if $ASCII_MODE; then
19 # ASCII mode needs both devices
20 if [[ ! -e /dev/video0 ]] || [[ ! -e /dev/video1 ]]; then
21 echo "Error: /dev/video0 and /dev/video1 must exist for ASCII mode" >&2
22 echo "v4l2loopback should be configured with devices=2" >&2
23 exit 1
24 fi
25else
26 if [[ ! -e /dev/video0 ]]; then
27 echo "Error: /dev/video0 must exist" >&2
28 exit 1
29 fi
30fi
31
32cleanup() {
33 echo "Stopping..."
34 kill "${SCRCPY_PID}" 2>/dev/null || true
35 [[ -n "${FFMPEG_PID:-}" ]] && kill "${FFMPEG_PID}" 2>/dev/null || true
36}
37trap cleanup EXIT
38
39# Start scrcpy to stream phone camera to /dev/video0
40echo "Starting phone camera stream..."
41scrcpy \
42 --video-source=camera \
43 --camera-facing=back \
44 --no-audio \
45 --v4l2-sink=/dev/video0 \
46 --video-encoder=c2.exynos.h264.encoder \
47 --camera-size=1920x1080 &
48SCRCPY_PID=$!
49
50if $ASCII_MODE; then
51 sleep 2
52
53 # Start ffmpeg with ASCII shader to /dev/video1
54 echo "Starting ASCII filter pipeline..."
55 ffmpeg \
56 -f v4l2 -i /dev/video0 \
57 -vf "libplacebo=custom_shader_path=${SHADER_PATH}" \
58 -f v4l2 -pix_fmt yuv420p /dev/video1 &
59 FFMPEG_PID=$!
60
61 echo ""
62 echo "Android ASCII webcam running!"
63 echo " Raw camera: /dev/video0 (Phone Camera)"
64 echo " ASCII output: /dev/video1 (ASCII Webcam)"
65else
66 echo ""
67 echo "Android webcam running!"
68 echo " Camera: /dev/video0 (Phone Camera)"
69fi
70
71echo ""
72echo "Press Ctrl+C to stop"
73
74wait