Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- exec 3>/tmp/"${0##*/}".1debug$$
- export BASH_XTRACEFD=3
- set -x
- echo "$@" >&3
- env >&3
- send() {
- echo "Sending $1" >&3
- echo "$1" >&2
- }
- while read -r cmd; do
- echo "Got \"$cmd\"" >&3
- case $cmd in
- "Version?")
- send "OK:1.0.0"
- ;;
- "HasTuner?")
- send "OK:No"
- ;;
- "CloseRecorder")
- send "OK:Terminating"
- exit 0
- ;;
- "HasPictureAttributes?")
- send "OK:No"
- ;;
- "FlowControl?")
- send "OK:XON/XOFF"
- ;;
- BlockSize:*)
- send "OK"
- ;;
- TuneChannel:*)
- channel=${cmd##*:}
- case $channel in
- 3) URL="https://..."
- ;;
- 4) URL="https://..."
- ;;
- esac
- send "OK"
- ;;
- "LockTimeout?")
- send "OK:10000"
- ;;
- "SignalStrengthPercent?")
- send "OK:100"
- ;;
- "HasLock?")
- send "OK:Yes"
- ;;
- "StartStreaming")
- ffmpeg -i "udp://@239.255.42.42:5004" -acodec copy -vcodec copy -f mpegts - 2>&3 &
- ffmpeg_pid=$!
- send "OK:Started"
- ;;
- "StopStreaming")
- if [ -n "$ffmpeg_pid" ] && [ -d /proc/$ffmpeg_pid ]; then
- kill $ffmpeg_pid
- fi
- send "OK:Stopped"
- ;;
- "IsOpen?")
- if [ -n "$ffmpeg_pid" ] && [ -d /proc/$ffmpeg_pid ]; then
- send "OK:Open"
- else
- send "OK:No"
- fi
- ;;
- "XON")
- echo "Uh oh! need to handle \"$cmd\" at $(date)" >&3
- send "OK"
- ;;
- "XOFF")
- echo "Uh oh! need to handle \"$cmd\" at $(date)" >&3
- send "OK"
- ;;
- *)
- echo "Unknown cmd \"$cmd\"" >&3
- ;;
- esac
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement