[mythtv-users] file to flash

Daryl McDonald darylangela at gmail.com
Sun Oct 20 18:36:48 UTC 2013


On Sun, Oct 20, 2013 at 11:00 AM, Eric Sharkey <eric at lisaneric.org> wrote:
> On Sun, Oct 20, 2013 at 9:23 AM, Daryl McDonald <darylangela at gmail.com> wrote:
>> I'm afraid you've given me more credit than is due. I've had a brief
>> peek at your script, would modifying it be as simple as changing out
>> one of your brand name products for one of mine?
>
> Let me explain what it does, then I think the appropriate
> modifications should be clear:
>
>   #!/bin/sh
>
> The first line says to use the standard Bourne shell /bin/sh.
>
>   set -e;
>
> This line says if any command in the script fails, the whole script should fail.
>
>   echo $@ >> /tmp/videoexport.log
>
> Append a copy of the arguments given to this script to the file
> /tmp/videoexport.log.  This is just to aid debugging.
>
>   OUTNAME="$3"
>
> Set the variable OUTNAME equal to the third parameter (%STARTTIME%).
>
>   if test -d /var/autofs/misc/innotab/LLN/MOVIE/ ; then
>
> Test for the presence of a folder called
> /var/autofs/misc/innotat/LLN/MOVIE/.  If this folder exists, execute
> the following lines, otherwise jump down to the "elif" clause.  This
> folder will only be found if a particular SD card has been inserted
> into a card reader.  Specifically the one for my son's Innotab tablet.
>
>       CONVERTER=/usr/local/bin/toinnotab.sh
>
> Set the variable CONVERTER to the name of the script I use to prepare
> video for an Innotab tablet.
>
>       TARGET="/var/autofs/misc/innotab/LLN/MOVIE"
>
> Set the TARGET variable to the name of the folder the video should be
> placed in.  The Innotab is a very limited device.  All videos need to
> go in one folder.
>
>       OUTNAME="$2"
>
> Change the variable OUTNAME to the second argument (%TITLE%).  Since
> all the videos will be in the same folder, %STARTTIME% will not be a
> good name.
>
>   elif test -d /var/autofs/misc/centon/video/ ; then
>
> Only if /var/autofs/misc/innotab/LLN/MOVIE/ was not found, then look
> instead for /var/autofs/misc/centon/video/.  This folder will only
> exist if I've plugged in a Centon media player.
>
>       CONVERTER=/usr/local/bin/tomp4.sh
>
> The Centon uses a different format than the Innotab, so this line sets
> the CONVERTER variable to the name of a script that formats the video
> for that player.
>
>       TARGET="/var/autofs/misc/centon/video/$2"
>
> This line sets the TARGET variable to the name of the folder the video
> should be placed in.  Note that in this case, this player supports
> folders in the video directory, so the second parameter (%TITLE%) is
> used as a folder name, and the file name is left as the %STARTTIME%.
>
>   elif test -d /var/autofs/misc/n900/mythtv/ ; then
>       CONVERTER=/usr/local/bin/ton900mp4.sh
>       TARGET="/var/autofs/misc/n900/mythtv/$2"
>   elif test -d /var/autofs/misc/n97/Videos/ ; then
>       CONVERTER=/usr/local/bin/ton97mp4.sh
>       TARGET="/var/autofs/misc/n97/Videos/mythtv/$2"
>   fi
>
> These next seven lines follow the same pattern.  Test for the
> existence of a folder, if found set TARGET and CONVERTER as the output
> location and conversion script respectively.
>
>   if test -z "${CONVERTER}" -o \! -x ${CONVERTER} ; then
>       echo "Cannot run converter: ${CONVERTER}"
>       exit 0
>   fi
>
> This block checks if the variable CONVERTER is zero length (-z) or if
> the script it names is not (\!) present and executable (-x).  In this
> case it prints and error message and exits.  That "exit 0" line really
> should be "exit -1" or something like that.  I don't know why I wrote
> exit 0.  If it was exit -1 it would be considered a failure and you
> would see failure in the mythtv backend log.  Using exit 0 will show
> success even if this script can't find a place to put the video.
>
>   mkdir -p "$TARGET"
>
> Make the TARGET folder if it doesn't already exist.
>
>   cd "$TARGET"
>
> Change directory to the TARGET folder.  This lets converter scripts
> put the output in the current directory without needing to worry about
> what that is.
>
>   if test -n "$4" ; then
>       OUTNAME="${OUTNAME} - $4"
>   fi
>
> Check if there was a fourth parameter given (%SUBTITLE%).  If it was,
> expand the output filename to include the subtitle as well.
>
>   SAFEOUTNAME=`echo "${OUTNAME}" | tr -c -d 'a-zA-Z0-9\040()~#!@$_-'`
>
> Remove from the output name any characters that aren't a letter,
> number, or a safe punctuation character.  The point of this is to
> remove characters like ':' which can't safely exist on a FAT formated
> file system.
>
>   ${CONVERTER} "$1" "${SAFEOUTNAME}"
>
> Finally execute the converter script, passing in the first parameter
> (%DIR%/%FILE%) and the value of SAFEOUTNAME.  The job of the converter
> script is to copy the video from its first argument to its second
> argument, making any conversion necessary.  So, for example, my script
> tomp4.sh is just:
>
>
> #!/bin/sh
> FILE=$1
> TITLE=$2
> mencoder ${FILE} -ovc xvid -oac twolame -ofps 15 -xvidencopts
> bitrate=300:max_bframes=0:nogmc:noqpel -twolameopts br=64 -vf
> harddup,kerndeint,scale=320:240,dsize=320:240 -af
> resample=44100,volnorm=2 -o "${TITLE}.avi"
>
>
> You need to modify the script to test for the folders where you want
> the video to go and call an appropriate converter script.  Of course,
> if you don't actually need to transcode, you can set CONVERTER=/bin/cp
> and just have the file copied and everything should work.
>
> This also works best if you've set up your automounter to
> automatically mount your media in specific places.  For example in
> /etc/auto.misc I have a line:
>
> innotab         -fstype=vfat,gid=video,umask=002
> :/dev/disk/by-id/usb-Generic-_SD_MMC_20060413092100000-0\:2-part1
>
> It's this line which establishes the mapping of an SD card with a
> given volume id with the folder /var/autofs.misc/innotab so that the
> export script, simply by testing for the presence of this folder can
> trigger the automounter to look for this device and mount it at that
> location.
>
> Does that clear things up?
>
> Eric
> _______________________________________________
> mythtv-users mailing list
> mythtv-users at mythtv.org
> http://www.mythtv.org/mailman/listinfo/mythtv-users

This is very helpful, thank-you Eric. I will have to go to school with
these notes to fully/effectively implement it for my system. There is
no huge urgency to accomplish this, so I will be taking some time with
it. Much obliged.

Daryl


More information about the mythtv-users mailing list