Feature Wishlist (Backend Addons)
This articles represents a subsection of the Feature Wishlist.
- 1 Backend Addons
- 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 job's 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?)
- Be able to change channels in the program guide. When selecting a channel you are only able to set the recording priorities (I know of the option to just change the channel). There should also be a "Turn to this channel immediately" menu item in the record menu. This way you can use both features in one, without having to switch the guide behavior in the setup.
- A better Plugin interface, so that Plugins are not only Extra Applications, they should also be able to interact directly with backend functions...
- Have mythbackend back up the mythconverg database on a flexible schedule.
- support for secondary storage via NFS - when primary storage is full on a backend, go to secondary storage -- like a storage heirarchy (See Storage Groups in 0.21)
- 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.
- 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)
- Allow manual setting of DVB video/audio PIDs rather than always using on-air information - this would allow watching BBC Parliament / News Multiscreen video in UK -- Won't Implement (Already possible to watch these channels with MHEG) --GBee 18:52, 28 January 2007 (UTC)
- including support for SQLite (or PostgresSQL) might make configuration simpler for machines that are only running MySQL for MythTV anyways - MySQL configuration is a common source of problems for new users -- Won't Implement (SQLite can't cope, switching to internal mysql is more likely) --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 (basicly tricking FrontRow into thinking that the backend is another apple computer with shared media)
- Have additional separate settings for transcoding and flagging jobs regarding max. simultanous jobs. Flagging jobs are (if not running in realtime) CPU intensive, not IO intensive. If they are running in realtime, they are neither CPU nor IO intensive. So there's no problem running 2 simultanously. Transcoding jobs are, if they are doing MPEG2 transcoding, very IO intensive, so it is usually a lot faster running them one at a time, instead of 2 simultanously. So, it would make sense to be able to set max. simultanous jobs for flagging to 2 and for transcoding to 1. This should be an additional setting to the current max. jobs setting, because otherwise people would lose the possibility to allow only 1 job globally. --This is a duplicate of a request above -- recommend deletion UKDude
- collect program data from more than one xmltv grabber. The xmltv grabber to be used should be definable per channel.
- Provide an option to get time/date info for the system from DVB streams
- 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)
- 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).
- Temporary/in-memory storage of the upcoming recordings list. The idea of this is so that if the database disappears for some reason, the backend still knows enough to record everything. Then at least you still get the programs recorded when MySQL dies. -- Won't Implement --GBee 18:52, 28 January 2007 (UTC)
- The ability to run a script whenever recording starts/ends. I use my desktop computer for mythtv and VOIP. I want mythtv to set the soundcard to capture line-in whenever recording begins (including live TV). As it is now, I often forget to switch the card from mike to line and so I end up recording programs without sound. It's easier to fix MythTV than my memory. Already possible: hack a custom external channel change script to adjust the soundcard as you wish. UserJob can be used to run a script post-recording.
- When generating thumbnails for mythweb and such do a search for first complete frame instead of jumping to a specific frame since that causes the thumbnail only to show that specific frames updates instead of a good image. (good when doing reencodes to avi's or when importing avi's into the recorded table.) Not 100% shure this is in the correct place, but as i have understood it mythweb does the thumbnail creation via the mythbackend-daemon.
- 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 Ariel
- 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.
- 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
Input Streams - TV/Radio/Other
- Add Support to view multiple Channels from one Transponder with DVB. So that you can use more recordings, PIP as if you have two cards if you only have one. See Record multiple channels from one multiplex. Note that a pledge to implement this is closing on April 20, 2007.
- Provide local channel rss feeds. (ie. cable station website gives rss feed for programming on a channel otherwise seen as "local programming" or similar)
- 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)
- During the EIT scan or when mythtv is getting a specific transponder detect what channels are encrypted and set an 'encrypted flag' in the database, if no available CAM is available to decrypt the channel then also set it to invisible. It would even be useful to just have the encrypted flag set in the db for manual configuration of the channel-list.
- 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.
- VLC intergration
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 turners 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.
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
- 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
- A separate page for Parental Controls has been created, using some of these ideas. Your ideas are welcome.
- Ablilty 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.
- 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.
- 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.
- 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.
- If two shows on the same channel overlap a few minutes, stream to two files during the overlap period. Then neither show will get cut off. Really useful in regions where the broadcasters slip the schedule a lot.
- 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.
- 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.
- 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).
- 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.
- 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.)
- 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.)
- 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.
- 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.
- 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...)
- 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.)
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.
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.