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