Feature Wishlist (Backend Addons)
This articles represents a subsection of the Feature Wishlist.
- 1 Backend Addons
- 1.1 General
- 1.2 Hardware support
- 1.3 Input Streams - TV/Radio/Other
- 1.4 Output Streams - DivX/MPEG/Other
- 1.5 Parental controls / User permissions
- 1.6 Intelligent Scheduling
- 1.7 Commercial Detection
- 1.8 Transcode Audio Passthrough
- 1.9 Transcode delete source recording when done
- 1.10 UPnP (Universal Plug and Play) server and client features
- 1.11 Virtual Tuner
- mythbackend (Ubuntu x86_64 v0.20.20070821-1) appears to catch signals (all, most?) and will exit with return code 0 even when core dumping. I suggest to reserve exit code 0 for a deliberate, graceful shutdown, and instead using a non-zero exit code for other, non-graceful shutdowns and crashes. This allows the user, or any process monitoring mythbackend (in my case I'm Using_pcsk_to_Supervise_mythbackend) to distinguish between the two situations.
- 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%
- 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)
- Keep statistics of "Time Saved" - Keep individual stats on ammount of time saved using time stretch, as well as time saved using commercial skipping and the sum of the two in order to tell the user how much total time of TV they've watched and how much total time they've saved using time stretch and commercial skipping.
- 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.
- Add new flag to recorded shows that indicates if they have previously had their commercials/cut-list cut from them. The commercial and cut-list flags are currently erased after a show is transcoded.
- 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
- Allow for an arbitrary number of User Jobs (create a userjob table in the database?)
- Have mythbackend back up the mythconverg database on a flexible schedule.
- Could this use the same interface & scheduling code as the existing mythfilldatabase scheduler? If so, it might be a relatively simple feature to add. DStulken
- Would require additional setting screens to allow users to set the backup interval or opt out. Not likely to happen when existing capacity is already available in cron. Alternatively, backup could be run by mythbackend init script as suggested by Database Backup and Restore. wagnerrp 07:16, 20 December 2009 (UTC)
- 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)
- more tightly integrate mythfilldatabase into mythtv-setup...the setup tool should be able to know if you're the backend or not and know when you last ran mythfilldatabase...and it should let you run it from the gui -- Unlikely to Implement --GBee 18:52, 28 January 2007 (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 ?
- Does FrontRow not work with the existing UPnP server? wagnerrp 20:59, 3 November 2009 (UTC)
- Would it be possible to create an addition or alter the mtd daemon in the MythDVD package to allow the transcode software to run in cluster mode over multiple backends/frontends to increase the speed of DVD Ripping by running the transcode sessions in parallel. (Somewhat similar to the perl DVD:Rip frontend)
- Better option would be to rework it as a user job, and be managed by the jobqueue. First pass would rip the data on the specified machine. Second pass would process on any available machine. 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.
- Ability to "schedule" a script that will do some work on one or more input cards and that via the mythbackend will determine when it's going to be run. Example of a schedule could be "Sometime between 02-17 and lenght of job is 30 minutes" and then the backend would run it at the first possible chance it has during this time. Example usage for this is for scanning for new channels via scripts (mainly dvb) or grabbing a custom stream of EPG data from a provider.
- 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.
- 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).
- Enable run a user defined job before recording
- 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.
- Optionally disable the sync loop on the backend; comments say it's for NFS.. on a combined front end + back end this short-periodic sync can wreak havoc with file allocation, and cause excess fragmentation.
- 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]
- Allow the backend to support older versions of the frontend. Not necessary ad-infinitum, but at least the previous version or so. This would make upgrading a Myth setup easier so you don't have to upgrade everything at once.
- Likely never to happen.
- 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.
- 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)
- Fedora 7 firewire support (The new Firewire stack uses /dev/fw[0-9] in place of /dev/raw1394 but is library compatible with the old system.. All of the old documentation in the wiki doesnt work however. This stack will be added to the kernel soon, but it's hit us Fedora 7 Myth 20.1 SVN users early :..( -- UKDude
- 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.
- Automatic record/playback tweaking - trade-offs between CPU usage and disk size?
- USB-UIRT - IR blaster
- 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
- Add Support to use Internet TV from the backend, so that it could be use like a normal Channel (Record, Skip Back, ...) --Anaerin Also known as IPTV
- 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.
- 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...
#!/bin/sh 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
- Allow mythbackend to store the unaltered encrypted TV stream to the harddisk, for later decoding. It may be that the user is entitled to watch a specific program, but that the needed smartcard is currently in another receiver, that another smartcard is currently in the single available CI slot, or the smartcard is in use for decoding of another stream. Once the right smartcard is available, mythtv could start automatic decoding of the recording. Many PVRs work this way. Now mythtv just creates an empty record when trying to record an encoded program without the right smartcard in place.
- VLC integration
- 1. The ability for VLC to be integrated into the mythbackend. So that each turner card can be locked to individual channel and streamed to the mythfrontends.
- 2. The mythfrontends can connect to each stream as if it were a regular channel and have all of the guide and channel info
- 3. The ability to be able to specify tuners just for recording.
- 4. Also to be able to stream and play DVDs stored on the mythbackend and music on the frontend using VLC like a VOD.
- Doesn't mythfrontend already act like this? Why do you have to bring in VLC, there's not much of a gained benefit from this. Best choice would be to leave it as is unless you have a rebuttal?
- MythVideo tuner? Say I really like a certain show. I have a recording set to always record episodes of it every day. Now I have some of those episodes commercial cut, transcoded to mpeg4 and exported to my MythVideo partition. I also have some episodes that I manually copied from DVD and transcoded. Someone could make a virtual tuner so that when those recordings come up in the schedule, instead of using up a hardware tuner and resources to record, commercial cut, and encode the episodes.. instead they would simply be copied into the Recordings screen with the metadata from the schedule. This would free up the tuners and processing power for other jobs. Any episodes that do not exist in MythVideo would be recorded as usual. Figured this would be possible with the new filename parsing that is suppose to be in mythvideo .22 None of the below alternatives address the scenario I've put forth.
- Not going to happen. Alternative options would be...
- Set your recording schedule to record new episodes only.
- Manually go through upcoming recordings once a week and deactivate duplicates.
- Set your duplicate check method to subtitle only. Write a script to add a entry in oldrecorded for every entry in videometadata.
- Not going to happen. Alternative options would be...
Output Streams - DivX/MPEG/Other
- 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.
- 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.
- Use Matroska (*.mkv) in mtd. Matroska is an envelope for which there can be many audio, video and subtitles streams, allowing the user to store a complete movie or CD in a single file.
- Provide a transcode to divx or xvid while recording option. Save a ringbuffer that is transcoded to divx and store in database as a TV Recording after processing to divx
- MythTV will already record framegrabber cards to ffmpeg's implementation of mpeg4. DivX and XviD are just different implementations of the same codec. How is this any different? wagnerrp 20:59, 3 November 2009 (UTC)
- After an initial transcode from mpeg2 to mpeg4, I would like to be able to do a mega-sqeeze using nuvexport for archival purposes but still keep the file in mythtv records -- not in videos. Can .nuv be used as a container for xvid? I.E. initial PVR250 recording for an hour takes up 2gb. Transcode to mpeg4 brings this down to 1gb. Nuvexport "transcode" to xvid brings it down to ~400mb and keeps the recording and program info in mythtv.
- Perform intelligent upconverting of Dolby ProLogic Surround Sound (inside MP3/2.0, AC3 2.0 etc.) to discrete 5.1 channels. This is to assist those TV stations (very common in Australia) that broadcast only a two channel sound stream but this sound stream is Dolby ProLogic encoded. By upconverting to discrete channels, the user no longer needs to change the mode of their surround sound/dolby digital amplifier to force decoding of Dolby Prologic. Similarly, when they want to listen to music (2 channels) they do not need to change their amplifier back from dolby prologic back to a stereo mode. They just leave their amplifier on automatic detection and, with SPDIF, it will output on just the channels it needs to do so. See http://matrix-mixer.sourceforge.net/ for an open source solution in this area.
- The ability to mark channels as "radio" channels, and for these channels record only the audio stream. (submitter's note: I've started having a bit of a go myself, but progress is quite slow as I'm unfamiliar with the code.) Recordings could then be cut into songs and transferred to MythMusic.
Parental controls / User permissions
- 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...
- 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 ;-)
- 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.
- 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.
Use regexes to detect and fix bad schedule information, such as using Title: Subtitle in the title field and the first hundred or so characters of the description in the Subtitle field.
- Already done for EIT, it's the XMLTV grabbers responsibility otherwise. --GBee 10:26, 22 December 2009 (UTC)
- 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
- Recording suggestions, 2, 3}, á la TiVo
- 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".
- 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.
- 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.
- Have mythfilldatabase grab the additional "cast" data and insert it into the database, allowing searches for favorite actors or directors
- Allow selection on additional fields, e.g. only record a movie if it's being broadcast in widescreen.
- Ability to save the stream from a single capture card to more than one file, and awareness of this capability by the scheduler. This would allow scheduling two "overlapping" recordings (because one or both had a preroll or postroll, and they aired consecutively on the same channel) to each have their prerolls and postrolls preserved, without requiring using a second tuner just because there was an overlap of a few minutes. This potentially doubles traffic to the disk during that interval, but disk bandwidth is relatively cheap, and adding extra tuners to deal with this problem is not (and maybe even be impossible for machines with few PCI slots). [Consider especially the case of an episode marathon, all of which will eventually get saved to DVD. Without prerolling/postrolling, any scheduling offset is guaranteed to chop off the beginning/end of each episode if there's the slightest clock skew, the missing pieces may wind up on different DVDs, and there may still be missing pieces due to the dropped seconds while the tuner reinitializes itself at the beginning of each capture. Avoiding this with pre/postrolls currently doubles the number of tuners required, but writing the overlap intervals simultaneously would not.] This would be of significant benefit in Australia, where pretty much everything starts/ends many minutes early/late (5-10 minutes is quite common). (There is a basic implementation of this at Ticket: http://svn.mythtv.org/trac/ticket/1772) [1, 2, 3, 4, 5].
- I think the clean way to do this is to separate the concept of shows from disk files. There are various ways to do this, but deleting shows could get tricky. Instead of the database record for a show containing a file name, it should keep a list of filenames. The input stream needs to be split into seperate files whenever the shows referring to the stream changes. Consider shows A, B and C all overlapping on the same stream; this would produce 5 files containing A, (A^B), B, (B^C), and C. If B is very short you could even end up with files containing A, (A^B), (A^B^C), (B^C), and C. It might be best to keep a reference count to make it easier to know when a file can be deleted because there are no more shows referencing it.
- Conflict resolution: if two shows overlap a few minutes, don't NOT record one of them, but cut the minutes from the first or second show. (Here here!!!)
- The last two points would really really really help Australians out!!!!!!!!!!!!!
- Those two points for conflict resolution are essential for any pvr. Never owned a TiVo to tell, but SageTV has a simple solution for the issue, which is the base that MythTV should adopt.
- The resolution would help anyone interested in recording double header basketball games on TNTP or ESPN. Or more generally any possible consecutive shows which have "sometimes slipping" ending time. The first thing you'd do for slipping endings would be to end the recording later according to your needs.
- As for implementation, there is apparently no practical need to the suggested A^B^C or other logic. If two such recordings are 17:00-19:30 and 19:30-22:00 for instance, all one need to do is define the end-later once as needed, say 1:30 hours. Then the first one will end on time, since there is a consecutive show which already covers for the first one including the end late rule. The second will end late as needed. You can check SageTV, it works as expected and is natural and usable. No need for two tuners. Anything more than that would likely be more complex than needed from the usability perspective.
- Digital tuners and multirec effectively does this already. wagnerrp 20:59, 3 November 2009 (UTC)
- 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.
- email notification when Recording conflict (might as well include the option for AIM/Jabber notifications )
- This email may also contain a link to the web server where a page displaying a number of options is shown. It should from there be possible to solve the conflict by doing something smart like:
- Removing one of the scheduled recordings
- Shorten one of the scheduled recordings and accept that parts of one of the shows are missing
- Rearrange the current list of priorities and save for future use (if the situation reoccurs next week or something)
- This email may also contain a link to the web server where a page displaying a number of options is shown. It should from there be possible to solve the conflict by doing something smart like:
- Add option to limit the time length or filesize of recordings. Long length MythTV recordings would automatically span multiple files similar to film rolls. Allows TV marathons, sporting events, etc to be broken up into manageable pieces.
- As long as the file system supports it, why does it matter? Conversely, if the file system does not support it, change file systems. wagnerrp 20:59, 3 November 2009 (UTC)
- 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.
- Ability to use syndicatedepisodenumber to identify duplicates. The current "subtitle and description" method is only useful when the programmer provides adequately unique data for each episode. (Excellent example of failing to do so: X-Play.)
- Already done. The optional method is a backup for when one or both shows do not provide such data. wagnerrp 20:59, 3 November 2009 (UTC)
- Ability to subscribe to a program and capture each unique episode once. The current "find one showing daily/weekly" method doesn't always work when there are multiple time slots each day/week that show current and past episodes. The current "record in this timeslot each day/week" doesn't always work if the profgram tends to float around in the channel's schedule, it can also introduce conflicts that could be easily worked around if the scheduler recognized that it could get this episode tomorrow in the early morning instead of tonight. Combined with the above request for syndication episode number as a duplicate detection method this could be close to the "Season Pass" feature of other PVRs. (Excellent examples of where this would be useful: X-Play, Mythbusters, Good Eats)
- The feature you're describing seems to be the same as selecting "Record this program at any time on (this channel / any channel)" and setting it to not record duplicates. Could you clarify what you're looking for that this doesn't provide? (I watch MythBusters and Good Eats all the time, and it just records each episode once, so I don't see what the problem is.)
- Not Recording duplicates only works if the schedule is correct. Often some shows just have a default or unspecified episode and the scheduler will record these. I would like to see a modification of commercial flagging that would identify if the episode has been recorded before. --Bryanc806 03:58, 21 November 2007 (UTC) Incredibly difficult, I can't imagine anyone being able to do this. --Turpie 01:36, 22 November 2007 (UTC)
- Auto overlap - allow a few minutes after the end of a recording to be recorded unless there is another recording scheduled (to prevent end of movies being missed if time is slightly off) -- Already in Mythtv --GBee 18:59, 28 January 2007 (UTC)
- 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?
- 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.
- Add the ability to download audio and video podcasts. They should be then viewable in MythMusic and MythVideo.
- Some capacity for this has been implemented in MiroBridge. wagnerrp 20:59, 3 November 2009 (UTC)
- Add the ability to set a default number of minutes to record past the end of a show, per channel. In my region, the commercial channels regularly run their shows up to 20 minutes past the advertised time (even past the time broadcast in the EIT), while the non-commercial channels will have schedules that are accurate to the minute.
- 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.
- 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.
- Generalize and separate the scheduler from MythTV back end, 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.
- 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.
- Commercial flag sharing: mythcommflag is replicating the same work on many devices. If I'm scanning "Lost" for commercials, it would be nice if others could benefit from that and greatly decrease the work needed to be done on other systems recording the same show.
- One possible technique: calculate a hash value for every frame, or perhaps each block. Trade these block hash value on a centralized server, or better yet, a distributed system with many, many "feeder nodes."
- The hard part: determine the hash value in a graceful way such that two frames, while not bit-wise identical due to noise and reception differences, nevertheless hash out to the same or very close values. Use a scoring system to decide when the two hash values are actually identical.
- If the hash calculation technique is very quick, then low processing power clients will be able to process commercials.
- The feeder nodes concept is just a way of keeping something like this from being shutdown easily. A feeder node would publish a webpage with a link to its IP address. The feeder node would then give out the ip address of a dozen other nodes that the user could contact. The feeder nodes could be found through a google search looking for a distinguishable word.
- I'd like to emphasize that these aren't done on a per-show basis, as the original poster suggested. Rather, they're done on a block basis. Reason: the same commercials are used over and over on different channels, different shows, different times.
- Separate the "engine" of mythcommflag from the part that interfaces to MythTV. I'd like to be able to use mythcommflag as a completely stand-alone application, able to be run against any random video I happen to come across. This engine should output a simple textual list of commercial boundaries. A wrapper process should take that data and format it for MythTV's use. (Ideally, the textual output from the core engine should be pipe-able directly into ffmpeg, but I suppose I'll have to take that feature request up with the ffmpeg team...)
- Likely not going to happen. Mythcommflag is written by and for MythTV. Userjobs can pull the cutlist from the database. Other projects can reuse and republish the code for their own needs as per the GPL. While mythcommflag works well in most situations, it is not infallable, and should not be used to permanantly cut anything without manual oversight. wagnerrp 20:59, 3 November 2009 (UTC)
- 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.)
- Ability to block the crawls, bugs, and show promo pop-ups that interfere with viewing the show.
- 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.)
- If frontend & backend are on the same box, commflagging while watching may overpower some machines. An option to stop background commflagging while watching any video would be nice.
- Low priority modes exist that 'nice' the process, and forcefully sleep the process so as not to conflict with playback. wagnerrp 20:59, 3 November 2009 (UTC)
- 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.
Transcode Audio Passthrough
- 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.
Transcode delete source recording when done
- 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.
UPnP (Universal Plug and Play) server and client features
All UPnP AV (UPnP = Universal Plug and Play Protocol, and AV = Audio/Video) connectivity and communication protocols to make MythTV be fully UPnP compliant on both the back-end (server) side and the front-end (client) side. So that both MythTV's back-end and front-end is intercooperative with other UPnP servers and clients, (then especially other HTPC applications, both open sourced ones and closed source commersial ones, thus the end-user can choose the best 'back-end' and the best 'front-end' which suits their needs, like a MediaPortal back-end, or a XBMC front-end togther with MythTV). For more information see MythTV developers notes on UPnP.
- Note! UPnP could be implemented one or more native feature(s) or one or more plugin(s):
- UPnP AV MediaServer - which is the UPnP-server (a 'slave' device) that share/stream media-data (like audio/video/picture/files) to UPnP-clients on the network). Now a UPnP AV MediaServer has already been implemented into MythTV back-end but the code classes could be updated according to the v2.0 specifications to be UPnP v2 compliant.
- UPnP SSDP Discovery Service in both MythTV back-end and front-end to make the MythTV and MythTV auto-discover each other. If not into to both then at least into the MythTV front-end to let it (and other UPnP-clients) auto-detect the MythTV back-end over a local-network.
- UPnP Remote User Interface (RUI) server/client (in MythTV back-end and front-end respectivly) - which recieves/sends control-commands beween the UPnP-server and UPnP-client over network, (like record, schedule, play, pause, stop, etc.). With UPnP RUI in both MythTV back-end and front-end, the front-end can control/command the back-end via UPnP, and since UPnP is a standard other 'front-ends' which also feature UPnP RUI can also control/command the MythTV back-end, and the MythTV front-end can control/command other 'back-ends' if they feature UPnP RUI.
- UPnP MediaServer ControlPoint - which is the UPnP-client (a 'master' device) that can auto-detect UPnP-servers on the network to browse and stream media/data-files from them. Should be implemented into
- UPnP MediaRenderer DCP - which is a 'slave' device that can render content.
- UPnP RenderingControl DCP - control MediaRenderer settings; volume, brightness, RGB, sharpness...).
- Build and serve chapter breakpoints to match commercial skipping endpoints, using byte offsets and the OFF= uPnP parameter.
- Instead of/in addition to the built-in uPnP, have the backend maintain a folder with softlinks (i.e., the recorded shownames), in the same directory structure as currently served up by the internal uPnP player. Then, users can choose which uPnP server they would like, such as uShare, Wizd, Kiss DP-1500 or Swisscenter, and serve the folder. Ideally it should be a userfs filesystem, but it would be an easy hack to use softlinks, and with a userfs-fs it should be possible to even view live-tv via this. (mythrename.pl is designed for this. share over samba and the server will resolve symlinks locally. --wagnerrp, 11/11/08)
- 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).
Add the ability for Network Poling for the recording schedule of other Master backends on the local network, and when the local backend runs out of tuners to record a program its scheduled programs looks at the non-local backends recording schedule to identify available pre-scheduled programs or with user approval scheduled use of the other non-local Master backend tuners with low priority so that the normal local user of the backend will not be bothered if the tuner becomes unavailable ( ie the use of the tuner for live tv). IE the other Masters on the network for the missed recorded program and downloads that Program from the other Non-local Master-backend. This would be helpful in network structures such as University Networks (MANs and Extensive LANs) and apartment building networks.
Master backend X has schedules Program A,Program B, Program C, Program D all four air at the same time with only two tuners avalable on the backend, Master backend Y schedules Program A, Program B, Program C, and D. Master X's backend records Programs A and B, Master Y backend records Programs D and C. Master X backend pulls Programs C and D from Masters Y's backend, and the same for user Y's programs A and B are pulled from Master X's backend.
Master X schedules Programs A, B and C but only has two available tuners, Master Y does not have any scheduled recordings so it tentatively schedules to record Program C, this will not affect the use of the other users experience because live TV, and other schedule made by User Y will over ride the recording request of master X. The users of this system should opt in to this functionality as it will use disk space on their machine, until fetched by the other Master (Master X)
User X forgets to record Program A Season-X Episode-ZY or decides to watch Program A after watching a Episode of it But wants to watch the previous episode showing. The Master Backend X poles the network for other Backends with the recording of Program A Season-X Episode-ZY, and pulls that recording if available from the other masters.
- This could lead to legal issues regarding distribution of copyrighted materials. Yes it could be argued that you're paying for cable and so is someone else, but **AA may not like that and could possibly take legal action (IANAL btw). [Dolcraith]
- As with requests for P2P sharing of recordings, very likely never to happen. wagnerrp 20:59, 3 November 2009 (UTC)