Difference between revisions of "Mythtranscode"
(Linked to the new seektable repair page.)
(→Choosing a Recording)
|Line 39:||Line 39:|
only works if the recording's filename is formatted the default way.
using mythtranscode recordings renamed with [[User Manual:Periodic Maintenance#mythrename.pl|mythrename.pl]], prevent mythtranscode from doing so (and it complains of this), but it still proceeds with the transcode anyway, confusing the user. The resulting mythtranscode run is useless because the utility doesn't know what [[recordedseek table|seektable]] to update with the data it found by scanning through the recording. The only way around this and have the transcoding succeed is 1) first rename the recording back to the default format or 2) instead of using the more-convenient --infile, manually specify the data mythtranscode needs with -c and -s.
== <code>--honorcutlist</code> Limitation==
== <code>--honorcutlist</code> Limitation==
Revision as of 12:42, 9 January 2008
Mythtranscode is the internal process used by the front end to transcode MythTV recordings.
Usage: mythtranscode <--chanid <channelid>> <--starttime <starttime>> <--profile <profile>> [options] --mpeg2 or -m: Perform MPEG2 to MPEG2 transcode. --chanid or -c: Takes a channel id. REQUIRED --starttime or -s: Takes a starttime for the recording. REQUIRED --infile or -i: Input file (Alternative to -c and -s) --outfile or -o: Output file --profile or -p: Takes a profile number or 'autodetect' recording profile. REQUIRED --honorcutlist or -l: Specifies whether to use the cutlist. --allkeys or -k: Specifies that the output file should be made entirely of keyframes. --fifodir or -f: Directory to write fifos to If --fifodir is specified, 'audout' and 'vidout' will be created in the specified directory --fifosync : Enforce fifo sync --buildindex or -b: Build a new keyframe index (use only if audio and video fifos are read independantly) --showprogress : Display status info to the stdout --verbose level or -v: Use '-v help' for level info --help or -h: Prints this help statement.
Choosing a Recording
-c 1067 -s 2006-04-24-18-30-00
Unless starttime is formatted yyyy-mm-dd-hh-mm-ss, you get "QTime::setHMS Invalid time" and "QDate::setYMD: Invalid date" errors. According to http://mythtv.org/pipermail/mythtv-dev/2003-July/011650.html , it's been that way since 0.10.
The other method is to specify the file,
When using the
-i option, mythtranscode will use the filename to lookup the recordings in the recorded table and find the corresponding chanid and start-time. Non-default filenames, such as those renamed with mythrename.pl, prevent mythtranscode from doing so (and it complains of this), but it still proceeds with the transcode anyway, confusing the user. The resulting mythtranscode run is useless because the utility doesn't know what seektable to update with the data it found by scanning through the recording. The only way around this and have the transcoding succeed is 1) first rename the recording back to the default format or 2) instead of using the more-convenient --infile, manually specify the data mythtranscode needs with -c and -s.
--honorcutlist only seems to work (0.19-fixes ) with the "-c -s" switch combo, NOT with a specified input (-i) file, even if that file is in the mythconverg database.
--buildindex option can be used for rebuilding/repairing the seektable.
(Virtually) Lossless MPEG2 Transcode
This also has some side benefits,
- Converts the mpeg2 from a TS stream to a PS stream, possibly saving up to 20% of the file size!
- Fixes Audio/Video sync issues in a similar fashion to ProjectX.
Remove commercials from an MPEG2 recording
First, set a cutlist for the show. Then:
mythtranscode --chanid 1017 --starttime 2006-12-16-20-00-00 --mpeg2 --honorcutlist
This will drop the cut version beside the original, but with an added .tmp extension. I'm not exactly sure what it does to the database. It seems to keep the cutpoints and points at the old .mpg file, but shortens how long it thinks the movie is to the size of the .tmp file.
Every once in a while, something will happen and transcoding will not be able to complete. When this happens, the Job Queue will indicate the failure by turning the job title red in color. It will also say "Job: Transcode Status: Errored", and will follow with the line "Transcode failed with status: ###"
When this happens, you can often find information in the backend logs.. otherwise you can check this list to see if your error status matches any that others have encountered:
|Error Status||Possible Causes||References|
|139||"Mamimum simultaneous jobs on this backend:" set to 2 or more. mythtranscode does not yet handle simultaneous jobs on the same backend. At least on AMD64 X2 dual core processors.||none. Conclusion based on trial and error. ymmv.|
|235||Cutlist contains a cut zone with a begining but no ending (often at the very end of the recording)||none|
|242||File is on a remote filesystem. mythtranscode does not yet handle this files. Check if the Job runs on a slave backend.||none|