Differences
This shows you the differences between two versions of the page.
— |
ffmpeg [2017/05/22 11:03] (current) sschueller created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== Live streaming to youtube ===== | ||
+ | - compile ffmpeg with hardware encoder | ||
+ | <code bash> | ||
+ | cd /usr/src | ||
+ | git clone https://git.ffmpeg.org/ffmpeg.git | ||
+ | cd ffmpeg | ||
+ | ./configure --enable-omx --enable-omx-rpi --enable-libfreetype | ||
+ | make | ||
+ | make install | ||
+ | </code> | ||
+ | |||
+ | Scripts | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | KEY=******** | ||
+ | URL=rtmp://a.rtmp.youtube.com/live2 | ||
+ | |||
+ | while true ; do | ||
+ | |||
+ | ffmpeg \ | ||
+ | -ar 44100 -ac 2 -f s16le -i /dev/zero \ | ||
+ | -thread_queue_size 512 \ | ||
+ | -i /dev/video0 -f flv \ | ||
+ | -framerate 30 -video_size 720x404 \ | ||
+ | -vcodec h264_omx -maxrate 768k -bufsize 8080k \ | ||
+ | -vf drawtext="fontfile=DejaVuSansMono.ttf:textfile=status.txt:fontsize=10:fontcolor=white:y=main_h-(text_h*1):reload=1" \ | ||
+ | "$URL/$KEY" | ||
+ | |||
+ | sleep 5 | ||
+ | done | ||
+ | </code> | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | DATA=$(curl -s --header "X-Api-Key: *****" http://localhost/api/printer) | ||
+ | |||
+ | DATA2=$(curl -s --header "X-Api-Key: *****" http://localhost/api/job) | ||
+ | |||
+ | TOOTEMP=$(echo $DATA | jq -r '.temperature.tool0.actual') | ||
+ | BEDTEMP=$(echo $DATA | jq -r '.temperature.bed.actual') | ||
+ | PROGRES=$(echo $DATA2 | jq -r '.progress.completion') | ||
+ | STATE=$(echo $DATA2 | jq -r '.state') | ||
+ | FINAME=$(echo $DATA2 | jq -r '.job.file.name') | ||
+ | PRROUND=$(echo "$PROGRES/1" | bc ) | ||
+ | |||
+ | printf " Tool: $TOOTEMP°C / Bed: $BEDTEMP°C\n State: $STATE, Progress: $PRROUND\n File: $FINAME\n" > status-temp.txt | ||
+ | |||
+ | cp -f status-temp.txt status.txt | ||
+ | |||
+ | </code> | ||