Now if DVB cut only handled H.264 files - wow, then it would truly be the
only app I'd need to clean up my recordings.
I'm beginning to collect a rather large amount of HD H.264 recordings that I
can't for the life of me clip out commercials and maintain audio / video
sync with any program I've tried thus far.
Is anyone working on H.264 support? If I had more time, I would definitely
start looking into it. So much software to write, and hardware to design,
and so little time :(
Andrew
On Thu, Nov 13, 2008 at 9:09 AM, Cengiz Gunay <[EMAIL PROTECTED]> wrote:
>
> Hi, this is a followup on Andrew Harkman's original post about dvbcut not
> finding the AC3 audio track in some TS files.
>
> I have similar files, recorded from the cable TV Comcast's Universal HD
> (UHD) channel. I was excited to see the patch in response to Andrew's
> report, so I tried the SVN version but it didn't work for me.
>
> Here're the program and tracks in the TS file I was trying to decode,
> obtained with the Project-X program
> (http://sourceforge.net/projects/project-x):
>
> ---
>
> -> Input File 0: 'J:\rip\recorded\hunt-for-red-october (no pvas).ts'
> (8,837,374,844 bytes)
> -> Filetype is TS (generic PES Container)
> -> demux
> -> Service ID 0x1
> -> PMT 0x31 refers to these usable streams:
> Video:
> PID: 0x800
> Audio:
> n/a
> Teletext:
> n/a
> Subpict.:
> n/a
>
> !> PID 0x0 (PAT) (0 #1) -> ignored
> !> PID 0x31 (PMT) (188 #2) -> ignored
> ok> PID 0x801 has PES-ID 0xBD (private stream 1) (24440 #131)
> ok> PID 0x800 has PES-ID 0xE0 (MPEG Video) (117312 #625)
>
> ---
>
> I included a 30MB sample from the beginning of this file at
>
> http://cengique.2y.net/~cengiz/dvbcut-sample/hunt-for-red-october%20-%20sample.ts<http://cengique.2y.net/%7Ecengiz/dvbcut-sample/hunt-for-red-october%20-%20sample.ts>
>
> You can see that the PMT contains the video PID but not the audio.
> However, Project-X correctly recognizes the "private stream 1" PID as AC3,
> as does MPlayer. This is where dvbcut fails. So here's my hack to fix it
> in dvbcut:
>
> ---
> [EMAIL PROTECTED]:~/work/dvbcut/src$ svn diff tsfile.cpp
> Index: tsfile.cpp
> ===================================================================
> --- tsfile.cpp (revision 138)
> +++ tsfile.cpp (working copy)
> @@ -28,6 +28,7 @@
>
> tsfile::tsfile(inbuffer &b, int initial_offset) : mpgfile(b,
> initial_offset)
> {
> + int verbose=1;
> for(unsigned int i=0;i<8192;++i)
> streamnumber[i]=-1;
>
> @@ -65,12 +66,19 @@
> continue;
>
> if ((sid&0xe0) == 0xc0) { // mpeg audio stream
> + if(verbose) fprintf(stderr,"Found mpeg audio stream: SID=%x\n",
> sid);
> audios.push_back(std::pair<int,int>(sid,pid));
> apid[pid]=true;
> }
> else if (sid==0xbd) { // private stream 1, possibly AC3 audio
> stream
> const uint8_t *payload=(const uint8_t*) p.payload();
> const uint16_t plen = p.payload_length();
> + if(verbose) fprintf(stderr,"Found private stream 1: SID=%x\n"
> + "Payload len=%d, \n"
> + "payload[8]=%x\n"
> + "payload[9 + payload[8]]=%x\n"
> + "payload[10 + payload[8]]=%x\n", sid, plen,
> payload[8],
> + payload[9 + payload[8]], payload[10 +
> payload[8]]);
> if (plen >= 9
> && plen >= 11 + payload[8]
> && payload[9 + payload[8]] == 0x0b
> @@ -79,6 +87,11 @@
> apid[pid]=true;
> }
> else if (plen == 184
> + && payload[8] == 0x05) { // CG hack to recognize AC3 stream
> in UHD TS files
> + audios.push_back(std::pair<int,int>(sid,pid));
> + apid[pid]=true;
> + }
> + else if (plen == 184
> && payload[8] == 0x24
> && (payload[45] & 0xf0) == 0x10
> && payload[47] == 0x2c) {
> ---
>
> Unfortunately my hack only stems from naively analyzing the few files I
> had with this problem. I'm not sure if it's acceptable for general use. I
> looked at how Porject-X does this, but the PES parser is so complicated
> that I couldn't locate a similar place in the code. The closest I got was
> in the checkPES and AC3Audio functions in
> src/net/sourceforge/dvb/projectx/parser/Scan.java. Maybe you can make
> sense of them.
>
> Last but not least, thanks for providing dvbcut. Same with Andrew I depend
> on this tool to encode files that I was never able to keep audio sync
> after cutting commercials out. My previous routine for these files was
> using a Windows approach: cut with Mpg2Cut2, correct timings with
> Pvastrumento to get usable mpeg and AC3 streams. The audio will still get
> in and out of sync and pvastrumento is out of development and does not
> work for all files. Project-X recognizes my files, but as Andrew pointed
> out, drops GOPs because of missing frames. I discussed with the Project-X
> admins and apparently this is due to the weird use of B-frames in these
> files. Here's the forum where we discussed this:
> http://forum.dvbtechnics.info/showthread.php?p=27583#post27583
>
> Yes, I know, too much information. So I'll stop now.
>
> Best,
> Cengiz Gunay
> --
> [EMAIL PROTECTED] [EMAIL PROTECTED] (MSN) [EMAIL PROTECTED]
> Lab: +1-404-727-3565 Home/Cell: +1-678-559-8694
> http://userwww.service.emory.edu/~cgunay/<http://userwww.service.emory.edu/%7Ecgunay/>
> IMs: ICQ# 21104923, [EMAIL PROTECTED],yahoo.com,Skype}
> --
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's
> challenge
> Build the coolest Linux based applications with Moblin SDK & win great
> prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> DVBCUT-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/dvbcut-user
>
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
DVBCUT-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dvbcut-user