I've been hacking away at getting mythweb streamlivetv working, but am having problems on the very last page generates the files. I am taking a break from it, but am almost there.
In the interim I created a script that you can use. I run it from my /home/mythtv directory. You will just need to ssh in and run the script, which prompts you for the settings you want. Ctrl-C in the ssh window to kill the stream. There is a section for presets too.
It is based on my setup, 2 PVR250's both being fed by dishnetwork receivers. The first receiver is controlled via an IR blaster. Someone with more knowledge than I will have to modify it to change the channel on the tuner itself. (Mine always remain on channel 3). You also have to add the --freq.. tags to the vlc script.
I am fairly new at bash scripts so dont flame me if it isn't right. It works for me. I used part of Chris Menards parseTunerStatus to display the tuner's status and display when the next recording is coming up.
Code:
#mythtv: cat live.sh
#!/bin/bash
clear
echo
### Taken from parseTunerStatus of mythstreamtvLive scripts #################
MYTH_WEB_STATUS=http://192.168.0.3:8081/mythweb/status
#Note if using mythweb security, enter your name/pwd like this:
#MYTH_WEB_STATUS=http://user:pwd@192.168.0.3:8081/mythweb/status
# Figure out if tuner has a recording scheduled and when - add message to ddl
FindNextSchedule()
{
PARM=${1}
DEVICE=${2}
TUNER=`echo ${PARM} | awk '{ print $1, $2}'`
ScheduleBegin=`grep -n "The next 10 shows" ${STATUS} | cut -f1 -d:`
NEXTTIME=`tail +${ScheduleBegin} ${STATUS} | \
grep " - ${TUNER} - " | \
head -1 | cut -f2 -d\> | cut -f1 -d- `
if [ -z "${NEXTTIME}" ]
then
#echo "<option value=\"${DEVICE}\" selected=\"SELECTED\">$LINE - No scheduled recordings</option>"
echo "\$LINE - No scheduled recordings."
else
#echo "<option value=\"${DEVICE}\" selected=\"SELECTED\">$LINE - Next recording at ${NEXTTIME}</option>"
echo "\"$LINE - Next recording at ${NEXTTIME}."
fi
}
#----------------------------------------------------------------------------
# Main Routine
#----------------------------------------------------------------------------
cd /tmp
# get the HTML status page
wget ${MYTH_WEB_STATUS} 2> /tmp/wget.error
STATUS=/tmp/status
# grab local Encoder status lines
EncoderStatusBegin=`grep -n "Encoder status" ${STATUS} | cut -f1 -d:`
tail +${EncoderStatusBegin} ${STATUS} | head -5 | \
egrep "^[ ]*Encoder.*local" > /tmp/tunerstatus
# Clean up the the status text
cat /tmp/tunerstatus | awk '/not recording/ {print $1, $2, "- Free"}
/is recording/ {print $1, $2, "- Recording"}' > /tmp/tnrsts.terse
# Now loop through each tuner and create ddl entry
while read LINE
do
TUNER_NUM=`echo ${LINE} | awk '{ print $2}'`
DEVICE="/dev/video$((${TUNER_NUM}-1))"
if [ ! -z "`echo $LINE | grep Recording`" ]
then
# if recording - just ues 'cleaned up' terse text
echo "<option value=\"${DEVICE}\">$LINE</option>"
else
# if not recording, figure out next scheduled recording for tuner
FindNextSchedule "${LINE}" "${DEVICE}"
fi
done < /tmp/tnrsts.terse
# cleanup
rm -f /tmptnrsts.terse /tmp/tunerstatus /tmp/status
########## END parseTunerStats ##################################
########## Prompt for variables ###################
# Set variables to 0 to validate presets
VSPEED=0
ASPEED=0
VSIZE=0
VSIZE2=0
FPS=0
echo
echo "Use Encoder 1 or 2?"
read DEVICE
if [ $DEVICE == "1" ]; then
DEV='/dev/video0'
echo "Channel?" #These 4 lines for ext. chan chng script
read CHAN
echo "Changing to Channel: "$CHAN
change_channel $CHAN
elif [ $DEVICE == "2" ]; then
DEV='/dev/video1'
fi
echo
############ Add Presets here #################
echo "Use Presets for work or ppc (work,ppc,n)?"
read vPRESET
if [ $vPRESET == "work" ]; then
VSPEED='300'
ASPEED='48'
VSIZE='75'
VSIZE2='.75'
FPS='25'
elif [ $vPRESET == "ppc" ]; then
VSPEED='256'
ASPEED='48'
VSIZE='50'
VSIZE2='.50'
FPS='20'
fi
echo
if [ $VSPEED == "0" ]; then
echo "Video Speed (500,300,256,192,128)?"
read VSPEED
echo
fi
if [ $ASPEED == "0" ]; then
echo "Audio Speed (128,96,64,48,32)?"
read ASPEED
echo
fi
if [ $VSIZE2 == "0" ]; then
echo "Video Size% (100,75,50,25)?"
read VSIZE
if [ $VSIZE == "100" ]; then
VSIZE2='1.0'
elif [ $VSIZE == "75" ]; then
VSIZE2='.75'
elif [ $VSIZE == "50" ]; then
VSIZE2='.50'
elif [ $VSIZE == "25" ]; then
VSIZE2='.25'
fi
fi
echo
if [ $FPS == "0" ]; then
echo "FPS (25,20,15,10,5)?"
read FPS
echo
fi
echo "Device: "$DEV
echo "VSpeed: "$VSPEED
echo "ASpeed: "$ASPEED
echo " VSize: "$VSIZE " ("$VSIZE2")"
echo " FPS: "$FPS
echo "Use above settings (y/n)?"
read YESNO
if [ $YESNO == "n" ]; then
echo "Exiting..."
exit 1
elif [ $YESNO == "y" ]; then
echo "Starting VLC..."
vlc -I http --http-host=8002 pvr:$DEV:norm=ntsc:size=720x576:bitrate=3000000:maxbitrate=4000000 --sout-transcode-fps=$FPS --sout-transcode-deinterlace ":sout=#transcode{vcodec=DIV3,acodec=mp3,vb=$VSPEED,ab=$ASPEED,scale=$VSIZE2}:std{access=http{user='',pwd='',mime=video/x-ms-asf},mux=asf,url=:8001}"
fi
done