![]() |
|
SageTV Customizations This forums is for discussing and sharing user-created modifications for the SageTV application created by using the SageTV Studio or through the use of external plugins. Use this forum to discuss customizations for SageTV version 6 and earlier, or for the SageTV3 UI. |
![]() |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
|||
|
|||
Distributed ComSkip idea
Hi All,
I'm a total noob with Sage STV files, so forgive me if this is old hat. Scanning shows to find commercials is processor intensive, and the resulting output is only a few hundred bytes. It would be pretty simple to use the show ID as a key to share commercial skip data amongst users, via a Web Service. (You might have to combine the broadcast date/time with the ShowID to create a UniqueID, since subsequent airings of the same show might have different commercial timing.) I can't be the first geek to have this idea, am I missing some key concept that makes this more difficult than it sounds? Is there anything like this in the works? If not, I'll tentatively make the following offer. I'm new to Sage STV files and have zero Java experience, but I'm a serious C#/.NET geek. If someone writes the client side code, I'll write the Web Service and host it on my Website (at least initially). Thoughts? On a slightly different topic, has anyone else noticed that some TV shows noticeably alter the audio (by boosting the treble and adding some echo) for a second or two right before and after commercials? Does anyone know what that is? I've only seen it on 'Tough Crowd' and 'The Daily Show' on Comedy Central, but it should be possible to scan the audio track to find these markers. |
#2
|
||||
|
||||
Quote:
__________________
-Eric Client: STX-HD100 Extender, Connected to 47" Visio 1080p LCD via HDMI, Running SageMC Client: Media MVP Running SageMC Server: Antec SLK3800B, AMD Athlon 64 X2 4200+, Biostar TForce 550, GeForce 7300LE, 1GB DDR2 800, 2 x HVR-1600, PVR-150MCE, 1.4TB HD Space, XP Pro, Java6, Latest SageTV Version |
#3
|
|||
|
|||
I have little experience with commercial scanning, but timing would probably be an issue. Even though you can set Sage to synch the time even being off a few seconds would make the commercials be marked in the wrong place. Then there's also the issue of people using pre and post padding for their shows to get around the networks not being able to tell time and starting their shows early and ending them later than the posted times.
Also aren't many of the network shows pulled down from Satellite hours/days in advance of the airing? If so then you'd be at the mercy of when the cable/satellite co you subscribe to decides to air the show. They are also aired multiple times for the different time zones here in the US. Then there's the whole issue of commercials being different from region to region for local commercials, and local station ads/promos. I would think there are too many variables involved just from the timing aspect to make it work. Great idea if we could just get the networks and cable/satellite co's to learn to tell time. ![]()
__________________
Wayne Dunham |
#4
|
|||
|
|||
At a minimum, this would make a good first pass. The com skip may only have to process 20% of the show locally to fine tune for the local recording.
This could be a HUGE processor savings when we start trying to process HD files... |
#5
|
|||
|
|||
I believe it's possible to process shows in less than 5 minutes now. With increasing processor speeds and more efficient detection software I don't see that great a need for it myself.
|
#6
|
|||
|
|||
Same here, my server takes 5 minutes or so to process a 30 minute (or is it even a 1 hour) show. While the idea sounds great in theory, it probably wouldn't be practical since 1) it doesn't take long for most people to process commercials and 2) the whole different station/region thing mentioned above. Not to bash your idea or anything (it's great that people are trying to think of new ideas), just saying that there probably wouldn't be much benefit for the amount of work it would take to implement.
|
#7
|
|||
|
|||
Good points, all.
Wayne, you hit the deal breaker I missed. Even if we could be assured that every machine feeding the system were synched within a second of each other, Atlanta might start 37 seconds later than Boston. As far as processing time, that's a little dependant on your system. My server is actually my living room HTPC (Athlon XP 2500+). When I'm watching one show and recording two others, ComSkip can take almost 30 minutes to process a 30 minute show, but I generate 60 minutes of video every 30 minutes on a good night. The biggest downside for me is that my processor is pegged most of the time, and heat == noise. Aside from that, the thought of thousands of machines redundantly doing the same thing just offends my geek sensibilites. So the consensus seems to be, good idea, not really possible. The only other idea I might want to try is running checksums on fragments of the audio stream, and then using those fragments as markers, much like DNA fragment matching software, but I have one of those pesky day-job things that would probably get in the way. The Zalman water-cooled system will be a better solution for my noise problems anyway, and I won't have to debug it. Thanks for the feedback, guys. |
#8
|
|||
|
|||
Well... Show Analyzer (the registered version), is MUCH faster than COMSKIP...
If you aren't using that, I would consider it. Things that took 30 minutes on my Athlon 2500, now take ~2.5.... MUCH faster. Jason |
#9
|
|||
|
|||
Quote:
![]() My Extended Basic cable (analog, no digital or HDTV) is about $45 a month and if I want Digital and HDTV it would be over $100 a month just to get Digital/HDTV/1 premium channel family. ![]()
__________________
Wayne Dunham |
#10
|
|||
|
|||
I forgot to mention that I am also using the registered version of Show Analyser. While I have never used comskip itself, I can say that the registered version of Show Analyser runs very fast on my P4 2.4 ghz 533 bus PC.
|
#11
|
|||
|
|||
Yeah I should have mentioned I'm using ShowAnalyzer as well. My athlon xp1400 does 1 hr shows in around 10 minutes and that's across a network. Even my ancient celeron 366 in my server can do an hour show in a little under 30 minutes. The program is definetly worth $10.
![]() |
#12
|
||||
|
||||
I recently started using comskip (the comskip varient malore posted recently), and noticed that it takes a long time to process through a single show. So I also thought about this idea about sharing comskip data between PVR-Comskip users. But then I thought about the issues that were pointed out by other posts here, especially the timing part, and just realized the idea will not work.
I then switched back to the old comskip that came with Cayars STV, and it process the shows a lot faster. I think it might be less accurate than the new comskip varient, but I'm fine with it being a bit off once a while. Most of the time it's quite accurate. I'm not sure how much better ShowAnalyzer is but the old comskip works fine for me, maybe I'll give SA a try one of these days. I do use Jere Jones's DirMon app with comskip, and it works wonderfully. Also, there's one solution that didn't see anyone mentioned, you can always setup a spare old PC to do the comskip processing. That way, it won't bog the main HTPC down. But really, if you want to do a lot with your SageTV setup, the best way is to setup a "closet" serve machine and have SageTV in service mode do all the recordings and comskip processing. And just connect with SageTV Client, that way it will free up your main HTPC from any CPU stress. That's how I have SageTV setup.
__________________
Mayamaniac - SageTV 7.1.9 Server. Win7 32bit in VMWare Fusion. HDHR (FiOS Coax). HDHR Prime 3 Tuners (FiOS Cable Card). Gemstone theme. - SageTV HD300 - HDMI 1080p Samsung 75" LED. |
#13
|
|||
|
|||
That's a good idea, and it should be doable, though it would take a bit of work. Instead of just distributing the time slice points, you could distribute images of the end shot prior to a comercial and the first shot after the comercial. (actually, with fade outs, it may be best to distribute an image, say, 2 seconds before and after the comercial) The processor could then key off that image to remove the comercials. While it's fast already to process the comercials, if you're going through 12 shows at a time, it adds up. And this should have the benifit of being right with out any adjustments.
|
#14
|
||||
|
||||
Schnazz: Could you elaborate more on your idea? I don't understand.
Jere
__________________
Death to commercials!!! Latest ShowAnalyzer Beta version: 0.9.7
|
#15
|
||||
|
||||
Schnazz is saying that instead of sending the time stamps of the commercial breaks to instead send out a screen cap in essence of say 2 or 5 seconds before the commercial break starts and another 2 or 5 seconds after the show comes back on. Since the show itself is a static event and the locations in the show where the commercials are should also be static even if the commercial breaks are different lengths on different stations you'd be able to match the screen shot with that part of the show using perhaps a similar algorithm to the edge detection to match that spot in the show. Then generate the appropriate comskip file with the right time breaks based on the processing of the show.
This would only work if it takes less CPU to scan for these images than it would to just scan the show normally with SA. |
#16
|
|||
|
|||
Yea, that's the basic idea. However, what you mentioned about the speed of finding a frame versus the speed of finding a black screen is true. However, that should be able to be sped up a lot if the time indecies are included as well, since you would search from roughly the same point. The files could also include the user settings, such as the region where the file was recorded and the padding of the files. (I would think a lot of people use the same padding for every show) Including the region would be helpful, because, for example, many shows that people record in the US would all have commercials in roughly the same spot. The padding info would help narrow that down even further, so it would be able to search a much smaller piece of show.
The big up side to doing it this way would be that you should get correct commercial editing every time, as long as the people making it available set it up right. (it could automatically detect most situations where people don't set it up right) I've been using video ReDo, and it does a pretty good job, but it always requires me to look at it. If it where accurate, then it could be totally automated. |
#17
|
|||
|
|||
I know virtually nothing of how SA or Comskip detect frames, but would the brightness, contrast, saturation, tint, etc make a difference?
I'm not sure if those settings to calibrate the source's change those settings before it goes to the disk, or adjusts them when it plays back what is recorded. Also the idea of timestamps being included sounds good, but would those be indexed to the start of the program (i.e. what's in the guide), or the start of the recording. Many people have some pretty widespread padding times. Myself I typically start recordings 1 minute early and end them 2 minutes after the supposed end time. That's for standard recordings, anything recorded after say a football or baseball game I'll usually pad a minimum of an hour at the end.
__________________
Wayne Dunham |
#18
|
||||
|
||||
All good ideas guys, but still, you must realize this is a lot more complicated. You have to do a lot more research such as how a show is aired in different regions. Do they always cut in and out of commercials the exact same way? And with HD content already in used, do you need separate comskips timings compare to Standard Definition? And then there's the orginization of how to share these comskip data, who's gonna generate what show, and how to share it with others. And lastly, anyone want to check if this is even legal, particularly in the USA?
Again, I'm not saying that it can't be done, it's just a lot more complicated. In the meantime, as I said before, if you have a lot of shows that need comskip processing, get a spare PC and run comskip or SA on it.
__________________
Mayamaniac - SageTV 7.1.9 Server. Win7 32bit in VMWare Fusion. HDHR (FiOS Coax). HDHR Prime 3 Tuners (FiOS Cable Card). Gemstone theme. - SageTV HD300 - HDMI 1080p Samsung 75" LED. |
![]() |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|