View unanswered posts    View active topics

All times are UTC - 6 hours





Post new topic Reply to topic  [ 1 post ] 
Print view Previous topic   Next topic  
Author Message
Search for:
PostPosted: Fri Apr 07, 2006 12:35 pm 
Offline
Joined: Thu Feb 12, 2004 2:54 pm
Posts: 392
Location: Beaumont, CA
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

_________________
ASUS A7N266 Micro-ATX Motherboard
Athlon 2200 processor
512K Kingston PC2100 Memory
MicroAtx Case
2 PVR250's w/remote
eVGA e-GeForce mx4000 (64 Ram with Tv/Out (Svideo))
Lite-on DVD cd-rw combo
120 GB Western Digital


Top
 Profile  
 

Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 1 post ] 


All times are UTC - 6 hours




Who is online

Users browsing this forum: No registered users and 12 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB® Forum Software © phpBB Group

Theme Created By ceyhansuyu