Conceptually I can understand that Termux cant take a photo or video from a camera device because it doesnt have access to the camera drivers that Android has…

…except that the Termux API does allow you to take a photo. So why is video off limits?

    • tetris11@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      24 hours ago

      Yeah I have a bash script that does similar, using the notification API for interactivity

      FOLD_CAMERA=CameraShots
      TEMP_PID=~/.record_pid
      APP_ID=record
      
      mkdir -p $FOLD_CAMERA
      
      function main {
          termux-notification \
              --id $APP_ID --group RECORD \
      	    --priority max \
      	    --button1 "Front" \
      	    --button1-action "termux-notification-remove $APP_ID;bash $0 record 1" \
      	    --button2 "Back"  \
      	    --button2-action "termux-notification-remove $APP_ID;bash $0 record 0" \
      	    --button3 "Quit" \
      	    --button3-action "termux-notification-remove $APP_ID;exit" \
      	    --title "Record"
      	
      }
      
      function record {
          local cam=${1:-0}
      
          termux-notification \
              --id $APP_ID --group RECORD \
      	    --priority max \
      	    --button1 "Stop" \
      	    --button1-action "termux-notification-remove $APP_ID; bash $0 killproc" \
      	    --title "Rec. $cam"
          
          (while :; do
      	     termux-camera-photo \
      	         -c $cam \
      	         $FOLD_CAMERA/$(date "+%Y%m%d-%H%M_${cam}_record.jpg")
           done) &
      
          local pid=$!
          echo -n $pid > $TEMP_PID
      } 
      
      function killproc {
          local last_pid=$(cat $TEMP_PID)
          if [ "$last_pid" == "" ]; then
      	    termux-toast "Could not kill process. Restart the phone."
          else
      	    kill $last_pid &&
      	        bash $0 main
          fi
      }
      
      
      [ "$*" = "" ] && main || eval "$*"
      

      It just needs ffmpeg tied to the exit function