Feature Wishlist (Backend Addons)

From MythTV Official Wiki
Revision as of 03:22, 1 March 2011 by Iamlindoro (talk | contribs) (Mythbackend only schedules visible channels-- ie, your request has long since been fulfilled.)

Jump to: navigation, search

This articles represents a subsection of the Feature Wishlist.

Backend Addons


  • It is an excellent feature of MythTV that you can delete recordings and they are kept until they have to autoexpire (because the disk is getting full). The problem is that this all occurs within MythTV, so backup programs etc. don't know about it. It would be great if deleted-but-not-expired recordings could be put in a "Deleted" folder within the recordings folder. This should not take any disk I/O, as the folder will nearly always be on the same disk. It would allow me to schedule a backup that included my recordings folder, but excluded my "Deleted" folder. At the moment, the folder is too big to backup, so I just can't --Hooloovoo.
You could run mythrename.pl with the --link option, to add a bunch of symlinks to a separate folder. Deleted recordings will be marked with the 'Deleted' recgroup, which corresponds to the '%U' flag in the format string. Simply set your backup to filter based off that.
  • Display "Next Scheduled Recording" through LIRC VFD. It would be nice to have the next scheduled recording andif recording has aready started, a VFD display of program name and graphical status bar of recording. ie.. Heros - 0-------x----100%
  • Differentiate between actual transcoding of formats and those jobs that will simply implement the cut list.
  • Allow user to transcode out of .nuv entirely for users who use MythTV more as an personal video file server than as a Tivo. Also useful for Windows users. (See MythArchive.) --could this be removed now that all mpg streams are no longer given the nuv extension? UKDude
  • Have mythbackend back up the mythconverg database on a flexible schedule.
The Database Backup and Restore. wagnerrp can be run through cron or the backend init script, and is automatically called in the event of a schema update.
  • provide arbitrary encapsulation of ANY UNIX application started fullscreen inside of a VNC session and assign to a Channel - I.E - start a vnc session with xterm in fullscreen, assign to channel 100, start xchat logging into #mythtv-users and assign to channel 101, etc.
    • VLC can be used to capture from a Screen input, and stream back over RTSP, which can then be captured by MythTV wagnerrp 20:05, 14 July 2009 (UTC)
  • add support for the backend to indentify itself to Apple's FrontRow App as a computer on the network with media available (basically tricking FrontRow into thinking that the backend is another apple computer with shared media) -- Do you mean like Firefly [1]?
    • Does FrontRow not work with the existing UPnP server? wagnerrp 20:59, 3 November 2009 (UTC)
  • mythfilldatabase function for easier integration. An option like "--chanmatch" or similar could be used to get the mythfilldatabase to not only match the xmltvid, if no channel already exists with that id, but also match the name/callsign to it's best ability and ask the user if the match is correct, if yes then set the xmltvid to that chan. This is something i myself experienced when adding channels from the Astra2 sat-cluster when getting matches between the name from the xmltv output and the dvb-s scan that sometimes it got a perfect match on callsign and sometimes on the name.
  • Identify hardware in the system by it's pci-id and/or the cardname-string instead of having it go via a "dumb" sourceid and devicefiles. This would make the system much more stable when doing software/hardware upgrades that messes up the order the drivers gets loaded in and should be quite easy to implement. sourceid 0 = "PVR-150" -> find the devicefile that identifies itself with this string.
    • Ideally the operating system would assure a stable device order, though we know this isn't the case on any Linux distro's since the introduction of udev. The information available to udev is visible to MythTV in recent kernels, but it would probably be best if time was spent on writing udev rules and providing them to distro's rather than incorporating udev functionality into MythTV.
  • Ability to give Myth a short video, channel and duration that whenever it is idle it watches the channel waiting for something that looks similar to the video and starts recording for the given duration. Maybe even keep the last x minutes on a ring buffer so that can be put on the start. Could be useful for example to record a generic show when guide data is unavailable, unreliable (which I've noticed is the case with certain channels (WIN) on their attitude towards filler programs (Farscape)), or subject to a last minute change (like when sport or an emergency news broadcast has been on beforehand).
  • option to create 'blacklist' of unwanted programs so that when zapping, mythTV will skip chanels on which these programs are running
  • keep statistics on DVB signal strength so you can see the effective quality of reception or aerial, and keep track of dropped packet counts for recordings, allowing people to know if a recording is good before trying to play it
  • Priority setting to select what EPG to use for a specific channel. If you have multiple capture cards (mix between analog and DVB-cards) you might want to use the EPG data from the DVB card also for the Analog channel.An option could also be, to reduce the size of the program table, to use the callsign and/or name and/or xmltvid instead of the chanid as the identifier for the program data that would then enable you to greatly reduce the amount of data needed in the program table and also enable you to use a DVB-EPG for a analog card that can receive the same channel.
  • When exiting LiveTV both the input and the channel number should be saved, so that when you re-enter LiveTV it will start at the last channel you were watching. As it is today it will always start at the first input when entering LiveTV. Ideally this should be handled by the frontend so that each frontend will automatically start at the channel it was last watching.
  • Additional setting to expiration of recordings that would enable automatic expiration of all recordings older than X days.
  • Converge the storage of videos from mythvideo and the recorded shows such that mythtv really doesn't care about what it's storing. This way you can set a new season of a show to record and be stored/accessed along side you're dvd backups of the previous season. Then allow the importing/overwriting of shows with a supplied video file. Each media item would have either a specified plugin or player for playback. Dolcraith
  • If the backend attempts to record a showing and is unable to (cable box is turned off, cable disconnected, etc) and there is a spare tuner that is available and that can record the same show at the same time (possibly a tuner without a cable box, different connection) the backend should try to record the show on the unused tuner (possibly unless there is a tuner preference) instead of failing.
  • Smarter transcoder profile selection. Ability to specify the transcoder profile based on various parameters of the video file (resolution, rate, etc). Similar to the new playback modes selection. The idea here is that sometimes my system records a program in hi-def because the standard def tuner is in use. I really don't care about that program being in hi-def and would like to transcode it to a smaller size (resolution and bit-rate), but when the same program is recorded in standard def, I don't want the size changed.
  • mythbackend can be run as a daemon on *nix systems. As such, it should support the capability to log via syslog (to a user-configurable facility) rather than directly writing its' own log files.
try logger
  • Multilingual EIT support. At least some networks in Finland broadcast program data in several languages, presented as multiple descriptors in the same event entry. The descriptors come in a changing and seemingly random order, and MythTV currently seems to take the first (or last?) of them. As a result, program titles may change back and forth between the languages, which can cause recordings to be missed. The solution to this would include:
    • Adding a 'language' column to all tables that contain program data
    • Having the EIT scanner insert program data in each language instead of just one
    • The frontend (and mythweb) should include a setting for preferred display language(s)
    • (Not sure if recording schedules should also include the language information, and only match against titles that the user would see in the UI)
    • As a simpler alternative to all of the above, could also keep database and frontend as is, and just add a preferred language(s) setting to the backend, to control which of the titles and descriptions the EIT scanner stores. Having all languages in the database and letting users select them in the frontend would seem like the better and more flexible solution, though.
  • Allow mythbackend to run a automatic minimal updates channel rescan. My cableco occasionally shifts around channels on QAM. When it fails to find the correct program id, check to see if that channel title exists under any other id, rather than reporting successful recording of a 0B file.
    • As such behavior would currently require a restart of all backends, running an abbreviated EIT scan that just makes sure all channels are tunable, and raising an error if not, would be a simpler solution. wagnerrp 20:59, 3 November 2009 (UTC)
  • Per show transcoding delay. Right now, transcoding of all shows can be delayed for a couple days, but it would be useful to prevent transcoding of certain shows for longer or shorter periods. For example, shows that I know will be archived for a long period of time can be transcoded now, but shows that I don't want to keep could be transcoded in a week or two in hopes that I actually watched and deleted them before the transcode is scheduled.
  • Stop EIT update from preventing a backend box from going to sleep. Perhaps have a scheduled EIT update time per time period, so that EIT updates could still occur without preventing power saving.
    • As an alternative, allow users to select when and how an EIT update will occur. Constant EIT scans are not necessary when broadcasters provide 7 to 8 days information, as they now do in Australia. (As a work-around, turn EIT off and use the a script based on tv_grab_dvb to provide EPG data to mythfilldatabase.)
  • It would be great if mythtv could produce a text file transcript of a tv show using the close capitioning information. I am not sure if the close capitioning will have to be OCR'd or not but if that needs to be OCR'd it could be done with GOCR or tesseract. Text format would be awesome. We might also might want PDF, word docs, html, etc. --Mattwj2002 03:58, 7 November 2009 (UTC)
If you are in the US, you might want to look at putting ccextract in a user job.
  • Add a panel application for MythTV back end that shows if it is recording or idle. Hovering the mouse should show next scheduled recording. This would be helpful for those who use their computer for front end, back end, and desktop. Currently, I must run mythweb, or myth front end to find out the state of myth back end. I must know the state of myth backend if I wish to do system maintenance, reboot the computer, or run a resource intensive application to prevent interrupting a recording. Myth welcome is nice, but it gets in the way when using the system as a desktop.
Preliminary version for Gnome: mythstatus.py
exists for Windows -- MythTV Sidebar Gadget
The Windows gadget is GPLd so it should be possible to port it to the widget engines used by X based desktops like KDE and GNOME for use on Linux and other FLOSS operating systems.
  • New commandline cleanupRecordings to remove everything with an autoexpire value equal or greater than commandline value X. E.G. cleanupRecordings 1000 will remove all live tv files and database entries.
Could be handled by an external script pulling a list of expiring recordings over the backend protocol.
  • Add an option to allow mythtv to shut down even if a client is connected, including "client idleness" in the decision to shutdown. I know that mythwelcome is supposed to handle this but it requires users (i.e. kids) to actually exit the frontend when done watching, something which never happens in my universe. I think this change would allow simple combined frontend/backend boxes to be more energy efficient by shutting down when not in use without any user interaction.
  • Support for several titles to same program.
Having localized titles improves WAF, but often breaks coverart scripts. Currently XML grabbers already know of different titles for same program - using the original title for covertart and localized title for display would be perfect.
Recorded content does not currently have real artwork support. The artwork displayed by some themes is merely where the frontend thinks images for that title might be stored in the MythVideo folders. Planned changes to the way videos are stored in the database would allow proper handling of artwork for recorded shows, and would make at least the stated reason for needing multiple titles unnecessary.
  • Add an XML output that shows all upcoming recordings (i.e. http://myserver:6544/Myth/GetUpcoming) This would be very useful for mobile apps that want to access this data remotely without having to use specific MythTV bindings.

Security/Multi-User Management

  • Password protection. Before being able to talk to the backend a frontend must send a password. This would make it more secure if a user wanted to open up their mythtv port to the outside. -- Is this really neccessary when you can port forward through ssh for security anyway? UKDude - Please point to howto instructions. --Turpie 00:42, 6 August 2007 (UTC)
  • Ability to have a required log-on for all frontends with a unique ID and pass after registering. Some features would include limmiting number of shows someone can record per week, giving users who are currently watching TV priority, aka locking the channel, to prevent other users from messing up the recording, most of the parental controls from above included, and the log of each user and their activity. Also the ablility to download the shows to the frontend to limit stress on server.
  • Channel lock,or just 'lock'. Users can receive a warning when attempting to change the channel while not caught up to real time, so the original purpose behind this is moot.. Might (still) be handy for parents with little kids.
  • Add ability for mythtv to log all shows watched (live or recorded) during a day and store in a unique log file per day to store tv watching history. Add ability to put parental controls on mythtv to only allow a given number of hours of tv watching during the day, only allow certain channels during certain times on certain days of the week.
  • How about a feature that would allow you to 'markup' DVD's to skip unwanted scenes for parental control or even look at the subtitles and mute when there are bad words? DVD subtitles are images, so that last part would require significant OCR'ing...
  • Add ClearPlay-like content filtering, not just identification, to MythTV. See the Parental Controls page for a (much) longer description of what I have in mind.
  • The ability to lock out specific frontends from specific channels (still tuneable, just not watchable. 4-digit PIN code to override). Maybe you have one frontend in the living room, one in the bedroom and one in the kids' room. It would be nice to be able to only send Cartoon Network, etc. into the kids' room while sending Playboy TV, etc. only to the bedroom... I imagine setting up a "standard package" and then registering the frontends somehow and customizing their channels. I guess this sounds awfully broadcasterish, which is not the original intention, but apparently a positive side-effect ;-)

Hardware support

  • Per-card audio level controls, to compensate for potentially double-digit dB differences in capture levels across differing revisions, models, and even brands of capture cards. (Extra credit while working there: per-input and per-channel controls as well.) Discussion and potential design can be found at Why is my 350's audio so much l-l-louder! than the 250's? and No per-individual line-level adjust: bug or missing feature? and (inadvertently broken thread) here.
  • USB hard drive - have the ability to plug in a USB hard drive and transfer video files over to the hard drive with menus in the myth GUI
  • External script support for DVB-T tuner cards to control OTA antenna rotors. This is especially important for US users since the NTSC analog shutdown is about one year away. ATSC stations are difficult to tune in fringe areas, and there needs to be a linkage to allow an external IR rotor controler (such as the Channel Master 9537) to align the antenna. This is NOT the same as Diseqc, since that controls LNB's and Dish rotators. If there would be a flag and pointer to an external change script in the DVB-T tuning code, it may not be a major code overhaul. I am willing to test any implementation, since without it, my ATSC options are very limited. lbelan63

Input Streams - TV/Radio/Other

  • Provide local channel rss feeds. (ie. cable station website gives rss feed for programming on a channel otherwise seen as "local programming" or similar)
    • Better implemented in MythWeb, which already offers some iCal/RSS support. wagnerrp 20:59, 3 November 2009 (UTC)
  • Provide some way for users with multiple available tv cards to switch channels, while keeping the ringbuffer for the previous channel until system runs out of tv cards. This would allow flipping between two shows and keeping the ringbuffer for both
  • Some stuff for channels with encryption to make it easier to manage channels that you have subscribed to. (especially with DVB-s since you can have multiple providers on the same sat)
  • Ability to read out the channel-name from teletext (useful when scanning channels). Maybe could be good to have this as a "script-plugin" where myth calls the script with the 2 top lines from the teletext and then the script should return the chan-name.
Already done for digital channels. With analog TV being slowly phased out worldwide, it's not likely anyone is going to invest much time in a new feature only usable with analog channels.
  • Audio Description support for blind and partially sighted folk, where this is available as a separate audio track. Could be merged into main soundtrack (may be issues with differing bit rates) or stored separately from the main programme stream for later re-assembly? On the DVB-T streams I'm capturing in the UK, something like this works as a post-processing job, but it would be much nicer to do within Myth rather than by unpacking, hacking around and then reassembling the MPEG stream...
 mplayer -dumpaudio -dumpfile audio-main.mp3 $1
 mplayer -dumpvideo -dumpfile video.m2v $1
 # note aid of Audio Description track may vary...  use "mplayer --identify --frames 0" to find it? ...
 mplayer -dumpaudio -dumpfile audio-adtrack.mp3 -aid 0x296 $1
 # note your distro version of sox may not have MP3 support ...
 sox -m audio-main.mp3 audio-adtrack.mp3 combined-audio.mp3
 mplex -f 3 -o $1.new video.m2v combined-audio.mp3 
 [ -s $1 ] && rename $1.new $1


  • HTTP support for IPTV. Currently the IPTV feature only supports UDP and RTP streams. I have an IPTV provider that uses HTTP. The streams are indeed MPEG-TS compliant as I can access them with TSReader and it displays the various tables and pids.
    • Can you verify it's a TS over HTTP and not TS over RTSP over HTTP? (I can't find a reference for that anywhere) If it's MPEG over HTTP take a peek at #5928 to see how to add a new protocol to the IPTV feeder. --Dekarl 16:12, 29 March 2010 (UTC)
      • I believe it's TS over HTTP as VLC and mplayer were unable to connect when I switched stream URL to RTSP. Is there any reccomended test to be 100% sure if it's one or the other? (i.e. running vlc or mplayer on verbose and looking for a specific message in the output) --kyl416 22:10, 30 March 2010 (UTC) Let me see if i can find their test server
      • Looking at that code in #5928, that's more for taking a regular MP3 stream from an icecast/shoutcast server and repackaging it into a MPEG-TS compliant stream with a PAT, PMT, etc. This doesn't apply to my situation as the IPTV provider is already delivering the streams with the MPEG-TS tables. I'm pretty much a novice when it comes to coding from scratch. I'll take a look at the existing iptvfeeder___ files to see if I can come up with something.--kyl416 00:07, 31 March 2010 (UTC)
  • Possible improvement to the IPTV function to also enable the ability to decode all internet based live streams so you can insert them into the EPG as if they were a regular channel, and not just limit it to available streams from your ISP's IPTV service. (i.e. Windows Media, Real, etc)
  • Allow a UPnP source to be an input. Needs to allow for quick download and live TV download. eg: file is being transcoded live and will transfer at live speed only. --TheRockApe 02:34, 23 July 2010 (UTC)
  • Add support for BestRussianTV IPTV <API Documentation>. Format appears to be RTSP, but requires 'priming' by talking to an HTTP server to enable the stream. Control server also provides EPG data, which could be used by an XMLTV grabber. If anyone will need authentication informaiton, i might be able to provide it just e-mail me.--Krutoileshii 21:45, 24 December 2010 (UTC)

Output Streams - UPnP/Multicast/MythProto

  • The ability to encode in DVR-MS format. My logic behind this it for MCE and MythTV to coexist. XBOX 360's could then be used as front ends for MythTV recordings. Since DVR-MS is just wrapped MPEG2 this shouldn't be that hard, I would think.
  • Add live transcoding support into the backend to allow streaming low bitrate content over the internet, to underpowered frontends, and to UPNP hardware with limited format support.
While not quite the same, currently planned is a rework of recording indexing in the database, which would allow multiple videos to be stored for a single recording. Multiple versions could be batch encoded, for streaming to various devices.
  • Build and serve chapter breakpoints to match commercial skipping endpoints, using byte offsets and the OFF= uPnP parameter.
A solution is currently in the works to use m3u playlists to offer the same behavior.
  • Add recording date to upnpcdstv.cpp and change Title sort to recording date to provide a better indication of watching order of episodes (especially on the PS3).
  • Would like to propose adding Live TV functionality to the UPnP server. To my knowledge only Nero {7,8} Home Media Server has this capability, but it is proprietary and runs only on proprietary OS. This could be done by adding (aside from Recodings, Music and Videos) a fourth folder (i.e. LiveTV) with all channels being listed as media files. Watching a channel should generate live recording as it does when viewed on a frontend. Potential caveat would be tuner availability, however with USB tuners (DVB-*+EIT and analog+listings), it would be possible to add N+1 (where N is a number of frontends) amount of tuner devices to the system without a problem ensuring scheduled recordings and LiveTV functionality is available at all time. Appropriate calls that would feed back to the backend seem to exist: PrepareForConnection() and ConnectionComplete() in ConnectionManager (requesting a channel switch and releasing it) and InstanceID allows to distinguish between different UPnP frontends.

Intelligent Scheduling

  • Recognize subtle changes in the scheduled recording description so that they don't break the schedule. Some examples:
    • The tv_grab_au grabber found a program called "Doctor Who", episode "Smith And Jones" that runs 7:30pm - 8:15pm. The EIT scan updated this to a show called "Doctor Who: Smith And Jones", with no episode name, that runs 7:32pm - 8:18pm. A scheduled recording based on the first description should still record - however the recording actually does not happen.
    • There is a program that the tv_grab_au grabber sometimes calls the regular evening news "ABC News" and sometimes calls it "ABC News Update". They are on the same channel at the same time and it would be great to be able to use wild cards (or something) so that they are always recorded.
    • Some channels (e.g. Finnish YLE), do minor time corrections to EIT data days/hours before the show starts. E.g. 21:00:00-21:50:00 is updated to 21:00:19-21:50:19. This causes a normal scheduled recording to break since the specified show title can't be found at exactly the same time anymore. Could there be a threshold of a few minutes to avoid this?
Can be done with a Custom Record
    • I have occasionally seen misspellings of program names that would lead to schedules failing to record when the mistake is corrected.
    • If the start and end times remain the same (or even approximately the same?), should perhaps keep the recording scheduled regardless of changes in the title. Similarity match might not always work (there's also the case of e.g. title changing from one language to another), and recording something unnecessarily is usually much less harmful than failing to record something that the user wanted.
  • Allow default "start early" / "end late" values per channel. This would allow us to use small (or zero) values for the channels that we can trust to be accurate (like the public broadcasters in Australia), while we allow recordings to run over by 20 minutes on channels that consistently publish incorrect program run time information even in their EIT streams, like the Australian commercial channels.
  • Have 2 scheduling profiles for 1 show. example one profile for new episodes of family guy and another profile for re-runs of family guy. This could be accomplished by an option to increase the priority for new episodes, or decrease the priority of repeats, and by adding a "Number of Repeats to keep" option along with the "Number of episodes to keep".
  • MythWelcome - will set the next wakeup time to be the lesser of the next scheduled recording and the next time to run mythfilldatabase as suggested by the grabber
  • More precise time offset for guide listings (My clock is spot on using NTP, but my provider's clock seems fast by 30-60 seconds). Or, allow "End Late" to be a negative value, could be used in combination with "Start Early" to accomplish same goal. This could also be used to compensate for any scheduler "lag".
'Start Early' and 'End Late' can be negative values, with the expected behavior.
In DVB systems, the system time is broadcast in the system time table (STT) (see http://www.interactivetvweb.org/tutorial/dtv-intro/atsc-si/mgt-stt.shtml) and this could be used to determine the offset. I would suggest that the MythTV system should have its time set using NTP, and then establish a time offset for each channel, scanned from the STT. In the ideal world, all of the offsets would turn out to be zero, however the stations seem to get this wrong sometimes.
  • Allow selection on additional fields, e.g. only record a movie if it's being broadcast in widescreen.
  • Allow a single tuner to record multiple streams of a single channel, allowing for overlap. This is already possible for digital tuner through multirec, but not for analog or firewire capture.
  • Record/don't record on certain channels. Add the ability to have a channel include/exclude list that lets the scheduler consider certain channels or bars it from considering certain channels. This will allow me to record Lost on any FOX affiliate, but keep MythTV from mistaking the Lost reality show on FOX Reality for the drama series.
Under mythtv-setup you can assign priorities for channels and out-right remove them. For example, I have two ABC affiliates and I prefer to record form WABC vs. the local, so I have WABC higher priority.
  • Allow backend to change tuner selection for recording on the fly if a user is watching live TV. (I have three tuner cards, and while I'm watching live TV, the backend often takes over the tuner I'm using, despite two other tuners being available.)
This is available "Utilities/Setup -> Setup -> General -> Avoid conflicts between live TV and scheduled shows"
  • Partial recordings flag — my gf loves American Idol, but I want to record a 30 min show during its two hour show. So, I want MythTV to record the first 60 min then stop and record the last 30 min (she just wants as much as possible). - This would be helpful during long televised events such as the olympics, when the TV schedule just has one long show that lasts 8 hours.
  • Add support for "idle priority" recordings. This is perhaps a way to minimize channel change time in LiveTV. Unused cards in the BE could be tuned and recording preset channel(s) in case of a channel change. These recordings can be overridden by any scheduled recording, unless the user presses "R" to record them. Naturally, these recordings will be auto-expired preferentially. The channels that are being recorded can be changed to follow the users channel surfing habit. Combined with the multiple channels from single multiplex idea this could generate seamless channel surfing.
  • Bring back some version of the "don't record if less that X MB free on drive" feature. I realize this has effects on LiveTV, but some people rarely use LiveTV and expiring one episode of a show in long-running syndication to record another seems unnecessary. Not recording already watched episodes solves this issue in the long run, but not until many many episodes have been watched. Could this be done in conjunction with some sort of limitation on LiveTV (a box that pops up telling you to restart your LiveTV watching to clear the buffer or something) to prevent the problems that caused this feature to be removed in the first place?
Don't allow auto-expiration, and your recordings will not be automatically deleted.
LiveTV is chopped up at each show boundary. Just make sure you have enough free space for the longest show you may want to watch live.
  • Allow "save until next airing" for recordings. Sometimes I record a show, and I'd like to keep a copy, but for some reason, the recording is sub-optimal (signal quality was bad, got truncated, etc.), so I'd like to re-record it next time it airs.
You can mark a show for re-record through the 'm' menu, however MythTV will not automatically delete the old recording when the new copy is recorded.
  • Create "Channel Groups" - in the UK new episodes of shows are often shown with repeats on a set of channels (e.g. Sky One and Sky two) and episodes from old seasons are on other channels. It would be good to be able to create channel groups like "Sky one, sky two, sky three" and say "record at any time in group "Sky". This would also work for the "+1 hour" channels. Currently I record programs like this through a manual schedule.
  • Generic episodes that air at the same time should only record once.
    • I record The Simpsons which doesn't always have specific show information. I want to record even the generic episodes, but when they are generic, I always get 2 copies. One from my SD channel (44) and one on my HD channel (44.1). The scheduler should be smart enough to know that if the show is generic and on at the same time as another generic episode, then it's likely the same episode even though the xmltv id's aren't exactly the same.
  • 'Already in Progress'. An option on the recording schedule to record a program already in progress if it has been pre-empted by a higher priority program. For example, long sporting events (golf tournaments, endurance racing) where the broadcast might be several hours long. A 30-minute program in the middle of the sporting event would be recorded and then recording of the longer program would resume.
  • Record all parts of a split programme. Channel Five in the UK frequently show films with a short news programme in the middle, this splits the film into two parts with a short gap between the two. Currently I have to book both parts of the film in order to get the whole thing and it appears as two separate recordings in the recordings list. I have on occasion nearly missed the first or second half because I hadn't noticed it was split at the time I originally booked it. It would be useful if Myth recognised where programmes are split like this and all parts automatically recorded instead of just the part that was booked. It would also be good if programmes recorded like this were stitched back together into a single recording to watch back.
If the shows show up as repeats, your guide information is broken.
  • Allow scheduling of arbitrary applications. You might think I could do this with cron, but cron wont turn the computer on to run the application if it is currently off. I use my computer as a front end, back end, and a desktop. I have it set up to automatically power on & off for recordings, and can manually turn it on to use as a desktop (it checks for logged in users and won't shut down when someone is logged in) I'd like to be able to schedule automatic backups of my files, but to do that with cron would require leaving my computer on all the time.
    • See anacron.
      • anacron will not do what I want. anacron guarantees that the backup would run at the most inconvenient time possible (when I turn on the computer to use it, or when the computer turns on to do a recording) I want the computer to turn on by itself at a time when I'm sure nothing else will be happening to execute a backup that is going to tie up my disk drives for a significant amount of time. There is only one wake timer in the system. It is being used by MythTV. There is currently no mechanism to allow other things to wake the computer.
  • Generalize and separate the shutdown and RTC alarm from MythTV backend, and merge it with cron. This is probably much more difficult to do than the above, but would solve the above problem, and allow automated power on & off for systems that don't run MythTV.
    • Already possible. Disable RTC alarm support in mythtv, and change the shutdown command in mythtv-setup to a script of your own design. Have this external script pull the time of next recording from mythtv, as well as the time of any other external scheduled items, and set the alarm accordingly before shutting down.
  • Ability to mark recording as previously recorded. This would be useful in a few situations. I.E. Recently i rebuilt my system from scratch not using any of my backups because the i was going from a distro that had a few major version jumps since my version. When i set up recordings for my favorite series, i usually use any/any. The problem with that, is that on some week nights, and weekends the cable provider will run marathons. Which will flood the upcoming recordings screen with episodes i have already seen.
  • Ability to automatically remove/disable recording schedules after a user-specified period of time. E.g. I want to record a mini-series in three parts, so I set a recurring schedule for that title. What usually ends up happening is that I forget about the schedule and end up having it in my recording schedule for many many years, which leaves me with a very cluttered schedule.
  • If all else is the same, give priority to the showing that runs longest. I'm noticing this with the upcoming State of the Union - I prefer to watch the news channel that has longer coverage.

Suggested Recordings

  • Recording suggestions, 2, 3}, á la TiVo
  • Speculatively record shows that the user *might* want to watch, even though the user hasn't manually asked for them. (But, of course, never let these take priority over shows the user says he definitely *does* want to be recorded). See http://www.templetons.com/brad/myth/tvwish.html
  • Use Bayesian prediction (just like SpamAssassin) to get better at predicting which shows the user *might* want to watch. See http://www.whynot.net/view_idea?id=1236 (Update: perhaps this could apply to Recording Suggestions above?) - This was already semi-implemented, see http://www.nexusuk.org/projects/mythtv/mythbayes/ (would need updating and a UI). Note that this was only moderately successful - a last.fm style recommendations engine would be better.
  • More robust recording: When MythTV failes to start a recording, it should retry a few times - instead of hanging. It's better to just lose 1% of a show then 100% !
  • Subscribe to someone's recommended settings for recordings: Someone else is interested in the same shows and programs as you are. Why not let her recommend them in a way that would let you import the settings manually or even automatically? A format for a blog/wiki would be handy and some way for the backend to poll for new entries would be needed.

Commercial Detection

  • While commercial detection works pretty well in my area it sometimes mistakes the last part of the program as a commercial so I have to skip back a couple of minutes to watch the end of the show. It would be good if mythcommflag would desensitise itself near the scheduled end of the program. (Scheduled end not actual end as I usually extend my schedules by 10-15 mins.)--Turpie 00:05, 3 April 2008 (UTC)
  • Configurable "pad_frames_before_comm" and "pad_frames_after_comm" option. Or even an appropriate #define for this. Commercial detection works very well on most recordings I make -- the last frame of episode video before the commercial is selected. However, there is usually audio (station identification, etc) over the last two or three frames of episode. I currently have to manually move most break start-points back two keyframes.
  • Configurable "max_commercial_length", override recordedmarkup and skip max_commercial_length where appropriate. (sometimes I hit skip and jump 13 minutes, etc).
  • Commercial flagging profiles: A US broadcast TV show often uses the same basic commercial layout for all episodes. Knowing that the show will have 5 commercial breaks, of durations "3min,3min,5min,3min,3min" with gaps of no less than 6 minutes between them, could be used to optimize flagging.
  • Ability to specify that cuts should exclude N seconds of the commercial (so that the viewer can tell that that a commercial was cut correctly.)
  • For US user's, use the black/white TV rating in the corner of a recording to help detect when a show starts again. (Often times an explosion about 20-120 seconds before/after the commercials is used as the skip point as the entire screen goes white.)
  • Using stream information for commercial flagging. There are often discontinuities in DVB streams when commercials begin or end - aspect ratio or audio channels may change, or (not sure about this) possibly different streams can be detected even when these remain the same. Commflagging could be much faster (and fast enough to do online flagging during LiveTV), and also more accurate, if this information could be made available to it. The same info could also be used to detect program start and end, and auto-shift or extend recordings accordingly.


  • In addition to MP3 and uncompressed, there should be an option in the transcoding profile setup screen to allow for straight pass-through. For AC3 audio streams this will preserve the 5.1 surround data while allowing very large HDTV streams to be substantially reduced in size by converting them to MPEG-4, and possibly lowering their resolution.
  • allow a flag on NUVEXPORT or mythtranscode to delete the source recording in mythtv when the transcoding is finished if it is being transcoded to another location for ipod use or other use. This eliminates the manual deletion of files and allows a family to set transcode functions for family members that watch on an ipod and not clutter up the screen with that persons recordings.
Can be done with a script wrapper.
  • A crop filter that crops the image to the requested size would be useful. The current crop filter only blacks out the areas requested. This could be used during transcoding to crop 16:9 images back to 4:3 for older material, or to improve bitrates/image quality by removing black edges and their expensive transitions found on most digitally recorded footage. (workaround: a custom job using mencoder and its -vf crop filter.)
If the crop filter worked like this, I would put crop=1,1,1,1 on all my transcoders.
Understand that due to macroblock limitations, you cannot actually crop videos at anything smaller than 8 or 16 pixels, depending on the codec.
  • Keep DVB subtitles, both when transcoding and when storing recordings to DVD with mytharchive. Can be done manually with projectX, ifoedit (windows only) and a lot of wasted time see here and here.
  • One feature that is sorely missing in mythtv is the option to repair mpeg2 transport streams to make them standards compliant (like fixing the timecode) after they've been captured. This is not transcoding but just fixing the errors that occurred during transmission. This is especially a problem for embedded consumer electronic devices that play TS files because they have little or no tolerance for errors in the TS file. There seem to be several utilities that do this for Windows (like mpeg2repair) but I have not found any on Linux that perform this task.
  • Support for h264 (through libx264)
  • Support for handling multiple audio streams
  • Support for alternate container formats

JobQueue Addons

  • More intelligent job queue system/ui for each recorded show, showing jobs as an actual queue instead of just started or stopped (similar to what the system status shows.) This will make clear what order jobs will run in as well as allow a user to queue a single job twice.
  • Give Commerical Flagging jobs priority over Transcoding jobs.
  • Give the option to only process one (or some arbitrary number) HD job at a time - 3 HD transcoding jobs can clog up the queue and prevent commercial flagging jobs and faster SD transcoding from occurring for long periods of time.
  • Give separate options for number of jobs on a backend for each job type. For example, I could say a backend can do 2 commercial flagging jobs, 1 transcoding job, and 2 User Job #1s at once. Maybe replace the "Allow Transcoding Jobs" checkbox with a text field that sets the number allowed? This would allow better processing distribution across several backends.
  • Allow for an arbitrary number of User Jobs (create a userjob table in the database?)
  • Jobs repository - A simple way to find and install job scripts - similar to boxee apps without the pretty icons.
There is a crude version of this in the Python bindings in trunk, to be released in 0.24. `mythwikiscripts` will parse specially formatted pages on this wiki, and provide a categorized list of scripts that it can download. It currently does not support adding things directly as a user job.
Doing this properly would require the above rework of the job queue to support an arbitrary number of user jobs.