[FFmpeg-devel] [RFC] SRT demuxer
Patrik Kullman
patrik
Thu Mar 12 20:19:22 CET 2009
Now when the release is out, anyone want to make a guess as to why this
doesn't work?
On Mon, 2009-02-16 at 19:45 +0100, Patrik Kullman wrote:
> On Mon, 2009-02-16 at 17:32 +0100, Reimar D?ffinger wrote:
> > On Wed, Feb 11, 2009 at 03:21:45PM +0100, Patrik Kullman wrote:
> > > [mpeg4 @ 0x23324d0]Invalid and inefficient vfw-avi packed B frames detected
> > > [srt @ 0x2328d50]65 q=31.0 size= 14kB time=35.37 bitrate= 3.2kbits/s
> > >
> > > call decode_frame - sub->pts: 940
> > >
> > > frame= 941 fps=542 q=31.0 Lsize= 2150kB time=39.25 bitrate= 448.7kbits/s
> > > video:1765kB audio:310kB global headers:0kB muxing overhead 3.621500%
> > >
> > >
> > > ffmpeg -fdebug 1 tells me that av_read_packet/av_read_frame_internal is only called once for the srt demuxer:
> > >
> > > [srt @ 0x1b4aa60]av_read_packet stream=0, pts=26000, dts=26000, size=79, flags=0
> > > [srt @ 0x1b4aa60]av_read_frame_internal stream=0, pts=26000, dts=26000, size=79, flags=0
> >
> > Given the whole file is only 39 seconds and the first subtitle is at 26
> > seconds that is not that surprising.
>
> I just think that dts/pts should be converted to somewhere around 24
> frames per second * 26 seconds = 624 pts/dts to match with the avi
> pts/dts?
>
> The file isn't 39 seconds long, I cancelled it after 35 seconds since it
> only wrote 14KB, after which it flushed I guess, taking 4 seconds and w
> riting 2136KB to outfile and finally calling the SRT decoder once.
>
> The SRT decoder should have been called at or before 26 seconds?
>
> >
> > > start_ms += start_hrs * 60 * 60 * 1000;
> > > start_ms += start_mins * 60 * 1000;
> > > start_ms += start_secs * 1000;
> > >
> > > end_ms += end_hrs * 60 * 60 * 1000;
> > > end_ms += end_mins * 60 * 1000;
> > > end_ms += end_secs * 1000;
> >
> > You claim your time stamps wrap around at 64 bits in av_set_pts_info, so
> > either use 64 bit variables or change av_set_pts_info
>
> Ok, will fix this.
>
> Do you think it might be related to the issue?
>
> > > pkt->pts = start_ms;
> > > pkt->duration = end_ms - start_ms;
> >
> > Stray tab. But more importantly, duration is defined as pts of the next
> > packet minus pts of this packet, this is not the same thing as the
> > duration in the srt file, since srt allows packets to overlap, FFmpeg
> > does not.
>
> Is duration important to set at this point?
> I have the same problem when I don't set it.
>
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at mplayerhq.hu
> https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel
More information about the ffmpeg-devel
mailing list