FFMPEG

Get Data from OctoPrint

#!/bin/bash
 
DATA=$(curl -s --header "X-Api-Key: xxx" http://localhost/api/printer)
DATA2=$(curl -s --header "X-Api-Key: xxx" http://localhost/api/job)
 
TOOTEMP=$(echo $DATA | jq -r '.temperature.tool0.actual')
TOOREQTEMP=$(echo $DATA | jq -r '.temperature.tool0.target')
BEDTEMP=$(echo $DATA | jq -r '.temperature.bed.actual')
BEDREQTEMP=$(echo $DATA | jq -r '.temperature.bed.target')
PROGRES=$(echo $DATA2  | jq -r '.progress.completion')
TIMELEFT=$(echo $DATA2 | jq -r '.progress.printTimeLeft')
STATE=$(echo $DATA2  | jq -r '.state')
FINAME=$(echo $DATA2  | jq -r '.job.file.name')
PRROUND=$(echo "$PROGRES/1" | bc )
 
$QTEMP°C\n   Status: $STATE\n\n Progress: $PRROUND\n     File: $FINAME\nTime Left: $TIMELEFT\n" > status-temp.txt
 
cp -f status-temp.txt status.txt

Stream to youtube

#!/bin/bash
 
KEY=xxxx
URL=rtmp://a.rtmp.youtube.com/live2
 
while true ; do
  ffmpeg \
  -ar 44100 -ac 2 -f s16le -i /dev/zero \
  -i desktop-background.png \
  -s 800x600 -i /dev/video0 \
  -f flv \
  -s 1920x1080 \
  -filter_complex "[1:v][2:v]overlay=(main_w-overlay_w):(main_h-overlay_h)/2 [a];[a] 
  drawtext=fontfile=DejaVuSansMono.ttf:textfile=status.txt:fontsize=26:fontcolor=white:y=main_h-(text_h*1):reload=1" \
  -vcodec h264_omx -pix_fmt yuv420p -b:v 15242310 -maxrate 15242310 -bufsize 30484620 \
  "$URL/$KEY"
 
  sleep 5
done