![]() |
|
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Expert Programmer
|
I am working on a project right now for a company under contract. They receive DVDs and sell them online as pay per view content, they copy the video from each on of these DVDs and place them online in the .VOB or .MPEG2 format which is read by the viewing client as the content is requested.
So I was asked to create a console application which would find the largest VOB chain on a DVD, extract the VOB file, descrypt them and produce a single concatenated VOB file for this content system. This was completed, worked perfect, and than the company discovered that the distirbutors were placing ads midway in the video stream that had to be removed. So... we revised the project.. it was decided that we would have to create a UI based application (done in C#) that would allow someone to select in an out points in the vob stream so that we could produce a VOB file out of video segments. This took a lot of work due to the lack of information on MPEG streams online... Two rewrites later we managed to complete that part of the project, and it was properly chopping up the MPEG2-PES streams and producing output that 90% of video decoders could properly handle (broken decoders do not read timestamps or open gop headers properly). THAN it was decided that some DVDs have a habit of putting segments of the video into different VOB chains, so we had to reassess this approach, and change it so that we would read all VOB files off the DVD, and allow the user to select video segments from any vob file to be put into the final sequence... this starts to introduce some problems now. 1) How do we handle VOB files with multiple PGCs? The proper PGC has to be pre-detected, or pre-selected. Only one PGC from a title may be processed at a time, so how do we know which one is the correct PGC? Should we always assume PGC1 or the longest PGC for the title (by chapter count or length). I assume the PGCs tyically represent the angles on the DVD... I could be wrong on this though, does anyone know? 2) Angles have to be stream processed... or we get nasty video chunking which is not even worth while to edit! This can be done, but I have to now implement a full ASPI dvd ripper and stream processor to complete this. 3) I am not even sure how the system is going to like working with concatenating multiple MPEG2 sources, I know this will produce broken MPEG2 files is the sub streams within each source is different... but I think I can work around this by writing system headers to the output stream everytime a new source stream is being used for a segment of video. Most decoders can figure this out since it emulates simple MPEG2 concatenation Any input into how I may approach this problem would be greatly appreciated. The biggest outstanding thing here is that I am not sure how to attack the multiple angle problem, and selecting the correct angle without a whole lot of intervention from the people using the software (who are not very intelligent, and know nothing about MPEG streams).
__________________
Clifford Matthew Roche <geek@cliffordroche.com> Web Hosting: http://www.crd-hosting.com Consulting: http://www.crdev-consulting.com |
|
|
|
|
|
#2 |
|
I eat cake for breakfast.
![]() ![]() ![]() ![]() Join Date: Jul 2004
Location: In my box.
Posts: 4,434
Rep Power: 8
![]() |
Can I ask why you don't use one of the many existing DVD rippers out there?
|
|
|
|
|
|
#3 |
|
Expert Programmer
|
Because many of the DVD rippers out there are not capable of producing a single VOB file... and they are not paying me to tell them to use another DVD ripper.. they want an ALL in one solution, something they can hit start and when it is done everything is done.
__________________
Clifford Matthew Roche <geek@cliffordroche.com> Web Hosting: http://www.crd-hosting.com Consulting: http://www.crdev-consulting.com |
|
|
|
![]() |
| Bookmarks |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|