This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / tools / android-webcam / android-webcam.sh
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