[mythtv-users] nuvexport users.. on Ubuntu

Ian Barton lists at manor-farm.org
Fri Feb 15 07:54:58 UTC 2008


If you check out the svn version it attempts to detect the version of 
ffmpeg and adjusts the command line params accordingly.

That said the output from ffmpeg still doesn't look good - the 
blockiness is still there. However, transcode works fine.

You might want to take a look at Benton Roberts MythShellJob script at 
http://bentonroberts.com/personal/media-server/code/mythshelljob/

You can completely define what's passed to the encoder and you can use 
any encoder that you want. Personally having tinkered for a long time 
with various export scripts, the crux is getting a set of params that 
give good output on your own setup.

Ian.

> I Dont use mythexport but the blockiness is due to nuvexport using the
> wrong parameter for ffmpeg you need to edit the perl code to use -b
> for bitrate.
> 
> On 2/14/08, A JM <vbtalent at gmail.com> wrote:
>> A question or two for any Ubuntu nuvexport user who might be using Kyle's
>> script (http://tacomafia.net:8080/blog/2006/mythexport/) to export files.
>>
>> I downloaded from Kyle's site and had to bash the heck out of the script
>> just to get it to run I was getting errors and it was just jumping to
>> "Unable to open file.." It didn't like the if statements below... just
>> curious if I missed something or if it's just an Ubuntu thing?
>>
>> *# Proper arguments check
>> if [[ $# -ne 2 ]]
>> then
>>     echo "ERROR: Invalid arguments"
>>     echo "USAGE: mythexport [infile] [title]"
>>     exit 1
>> fi
>>
>> # If .mpg file exists
>> if [[ -r "$indir$infile" ]]
>> then
>>     # The "command"*
>>
>>
>> The other question I have is that my recording looks terrible after
>> nuvexport finished it, it's blocky and just looks horrific. It's using xvid
>> so I should think it would be decent... I'm new to nuvexport so maybe I've
>> missed something obvious???
>>
>> *#
>> # nuvexportrc:
>> #
>> #  This file contains the configuration for nuvexport, and should be
>> installed
>> #    as /etc/nuvexportrc.  You can also copy this file to ~/.nuvexportrc,
>> where
>> #    nuvexport will look first, if you wish to create settings local to a
>> #    specific user.
>> #
>> #  support for nuvexportrc is still new, so expect that more default options
>> #    will be added as time goes on (so you'll know what you can edit).  In
>> the
>> #    meantime, you can poke around in the code for add_arg() calls to see
>> which
>> #    options are available.
>> #
>>
>> #
>> #  Anything placed within the <nuvexport> section will be interpreted
>> #    as a global option.  Use this section for options that don't relate
>> #    specifically to any particular exporter.
>> #
>> <nuvexport>
>>
>> #
>> #  Set export_prog to ffmpeg, transcode or mencoder, depending on your
>> #    preference of program for exports.  This is equivalent to --ffmpeg,
>> #    --transcode or --mencoder
>> #
>>     export_prog=ffmpeg
>>
>> #
>> #  Any other parameters set in this file are equivalent to using the
>> equivalent
>> #    setting as a commandline option.  For boolean options like
>> --deinterlace
>> #    (--nodeinterlace), use deinterlace=yes (or no, true or false) instead.
>> #    Actual commandline options will override anything in this file.
>> #
>>
>> #
>> #  Preferred mode -- if you don't set this, nuvexport will ask you what you
>> #    would like to do.  Use --mode or any of the mode symlinks (like
>> #    nuvexport-xvid) to override.
>> #
>>     mode=xvid
>>
>> #
>> #  Setting underscores to yes will convert whitespace in filenames to an
>> #    underscore character (which some people seem to prefer)
>> #
>>     underscores=no
>>
>> #
>> #  Setting require_cutlist to yes will tell nuvexport to show only those
>> #    recordings that have a cutlist
>> #
>> #    require_cutlist=no
>>
>> #
>> #  By default, nuvexport picks what it thinks is a good name for your file
>> #    (doing its best to avoid printing "Untitled" into the filename).
>> Setting
>> #    name will let you change the output format of the filename generated by
>> #    nuvexport.  Even after this formatting, nuvexport will still do some
>> basic
>> #    replacements to make sure that illegal filename characters (eg.
>> /\:*?<>|)
>> #    are replaced with a dash (or " with a ').  The following format
>> variables
>> #    are supported:
>> #
>> #    %f -> full path to the filename
>> #    %c -> the chanid of the show
>> #    %a -> start time in YYYYMMDDHHMMSS format
>> #    %b -> end time in YYYYMMDDHHMMSS format
>> #    %t -> title (show name)
>> #    %s -> subtitle (episode name)
>> #    %h -> hostname where the file resides
>> #    %m -> showtime in human-readable format (see --date below)
>> #    %d -> description
>> #    %% -> a % character
>> #
>>     filename=%t - %m
>>
>> #
>> #  By default, nuvexport uses an American-style date to represent showtimes
>> in
>> #    lists and filenames.  Use --date to override that with the format of
>> your
>> #    choosing.  See the UnixDate section `perldoc Date::Manip` for
>> formatting
>> #    options.
>> #
>>     date=%m.%d.%y
>>
>> #
>> #  Nuvexport has the option to crop a percentage of the border of each
>> recording
>> #  in order to get rid of the unsightly edges of the tv signal.  The default
>> 2%
>> #  approximates the overscan of an average TV, but you can alter this from 0
>> to
>> #  5% to fit your preferences.  Please keep in mind that this amount is
>> removed
>> #  prior to making any aspect conversions like removing black bars from 4:3
>> #  recordings to make a 16:9 export.
>> #
>>     crop_pct = 2
>>
>> #
>> #  Alternatively, you can override the general crop_pct to crop a different
>> #  amount from specific sides of the recording.
>> #
>> #   crop_top    = 2
>> #   crop_right  = 2
>> #   crop_bottom = 2
>> #   crop_left   = 2
>>
>> </nuvexport>
>>
>> #
>> #  The sections below work as above, with each more specific section
>> overriding
>> #    the more generic.
>> #
>>
>> <generic>
>>
>> #
>> # Default to export to the current directory
>> #
>>     path = /shared/.mythtv/out
>>
>> #
>> # Use the cutlist (not to be confused with the commercial flag list) when
>> #    exporting.
>> #
>>     use_cutlist = yes
>>
>> #
>> # Tell mythcommflag to generate a cutlist from the commercial flags before
>> #    exporting.  Don't forget to enable use_cutlist above, too.
>> #
>>    gencutlist = yes
>>
>> #
>> # Contrary to popular belief, enabling multipass will not make your
>> recordings
>> #    look better.  What it will do, however is guarantee that the bitrate
>> you
>> #    choose will be the average bitrate of your entire encode (meaning that
>> your
>> #    exports will end up being about the same size per-minute), and that you
>> #    will receive the best overall quality for a files of the same size.
>> #
>>     multipass = no
>>
>> #
>> # Disabling noise reduction can speed up your exports dramatically, but at
>> the
>> #    expense of some quality.  You can also access this on the commandline
>> via
>> #    the --denoise (or --nodenoise) flag.
>> #
>>     noise_reduction = no
>>
>> #
>> # Deinterlace the video so that it looks better on software players.
>> #
>>     deinterlace     = yes
>>
>> #
>> # Crop about 2% from the border of the recording before encoding.  This is
>> done
>> #    to get rid of part of the broadcast signal that is usually obscured by
>> the
>> #    tv's overscan.
>> #
>>     crop = yes
>>
>> #
>> #  You can create settings for each export module type.  These are the
>> #    second-most generic sections, and will only be reached if there are no
>> #    matches in the full or generic module names.
>> #
>> #  If you have a particularly dirty signal, you might want to try to disable
>> #    fast_denoise (it's actually part of yuvdenoise, which both the ffmpeg
>> #    and transcode exporters call).  It can be almost twice as slow as the
>> #    default "fast" normal noise reduction, but it considerably more
>> effective.
>> #    The latest version of yuvdenoise (which is called directly by the
>> ffmpeg
>> #    exporters) does not support this option, so it is ignored in that case.
>> #
>>     fast_denoise = yes
>>
>> #
>> #  If nuvexport is having trouble detecting the *input* aspect ratio of your
>> #    recordings (MythTV used to hard-code all software-encoded files as 1:1
>> #    regardless of the true aspect), set this option to one of the
>> following:
>> #
>> #   force_aspect = [ 1:1 4:3 16:9 2.21:1 ]
>>
>> </generic>
>>
>> <ffmpeg>
>> #
>> #  ffmpeg is almost twice as fast if you disable noise reduction
>> #
>>     noise_reduction = no
>> #
>> #  By default, nuvexport's ffmpeg module lets ffmpeg handle deinterlacing.
>> #    I've found that this provides the best results, but if you wish to let
>> #    yuvdenoise do it instead, set deint_in_yuvdenoise to a true value.
>> #
>> #    deint_in_yuvdenoise = no
>> #
>> </ffmpeg>
>>
>> <transcode>
>>
>> #
>> #  Mythtranscode will always be used for nupplevideo recordings because
>> #    transcode can't read them, but setting force_mythtranscode to yes will
>> #    force nuvexport to call mythtranscode when using the transcode exporter
>> for
>> #    mpeg recordings, too.  This may help problems that some people have
>> been
>> #    having with transcode not recognizing certain dvb recordings, as well
>> as
>> #    transcode not working properly on certain ivtv recordings.
>> #
>>     force_mythtranscode = yes
>>
>> #
>> #  Setting both force_mythtranscode and mythtranscode_cutlist to yes will
>> tell
>> #    nuvexport to use mythtranscode's built-in cutlist functions, rather
>> than
>> #    having transcode use its own.  I've found that the cutlists for a
>> handful
>> #    of ivtv recordings that do not work properly with transcode's internal
>> #    cutlist handler.
>> #
>>     mythtranscode_cutlist = yes
>>
>> </transcode>
>>
>> <mencoder>
>> </mencoder>
>>
>> #
>> #  You can also create settings for generic export module names.  These will
>> #    only be overridden by full module names.
>> #
>>
>> <XviD>
>>
>>     vbr          = yes   # Enable vbr to get the multipass/quantisation
>> options
>>                          # (enabling multipass or quantisation automatically
>> enables vbr)
>>     multipass    = no   # You get either multipass or quantisation;
>> multipass will override
>>     quantisation = 4     # 4 through 6 is probably right...  1..31 are
>> allowed (lower is better quality)
>>
>>     a_bitrate    = 256   # Audio bitrate of 128 kbps
>>     v_bitrate    = 960   # Remember, quantisation overrides video bitrate
>>
>>     width        = 624   # Height adjusts automatically to width, according
>> to aspect ratio
>>     height       = auto
>>
>> </XviD>
>>
>> #
>> #  Default mp3 bitrate in MythTV is 128
>> #
>> <MP3>
>>     bitrate = 256
>> </MP3>
>>
>> #
>> #  If you want to provide settings for a very specific export module, you
>> can
>> #    use its full name, and it will override any more generic settings.
>> #
>>
>> #
>> # The MP4 encoder for ffmpeg has a couple of options unique to itself
>> #
>> <ffmpeg::MP4>
>>
>> # Codec to use (mpeg4 or h264).  Please note that h264 support requires the
>> # SVN version of ffmpeg (not CVS!).  In fact, even the mpeg4 codec works
>> # better with the SVN version.
>>     mp4_codec = mpeg4
>>
>> # Framerate to use:  auto, 25, 23.97, 29.97.  PAL will always be 25 fps, and
>> # auto will set 29.97 for everything over 320x288 and 23.97 for the rest.
>>     mp4_fps = auto
>>
>> </ffmpeg::MP4>
>>
>> #
>> # As does the PSP exporter
>> #
>> <ffmpeg::PSP>
>>
>> # PSP framerate (high=29.97, low=14.985)
>>     psp_fps = low
>>
>> # PSP resolution (320x240, 368x208 or 400x192)
>>     psp_resolution = 320x240
>>
>> # PSP video bitrate (high=768, low=384)
>>     psp_bitrate = high
>>
>> # Create a thumbnail to go with the PSP video export?
>>     psp_thumbnail = yes
>>
>> </ffmpeg::PSP>
>>
>> #
>> # You can also add flags to the one and only mencoder option
>> #
>> <mencoder::XviD>
>>
>>     multipass = no
>>
>> </mencoder::XviD>
>>
>> #
>> # You can also make specific profiles called with the --profile parameter
>> that
>> # will override other config options (but not commandline arguments).
>> #
>> # For example, you could make a profile that would encode your favorite show
>> # with your favorite settings.
>> #
>> <profile::sample>
>>
>>     title       = test
>>
>>     export_prog = transcode
>>     mode        = xvid
>>     confirm     = true
>>
>> </profile::sample>
>>
>> *


More information about the mythtv-users mailing list