-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Michael, The real cause is video_sync_method is enable default, so if the h264 video pts isn't set with real value, ffmpeg.c:709 will get vdelta < -1.1, and will cause some frames dropped. How about fixing it in utils.c? Please review it. Index: libavformat/utils.c =================================================================== - --- libavformat/utils.c (revision 7576) +++ libavformat/utils.c (working copy) @@ -1985,6 +1985,11 @@ st->r_frame_rate.den = st->time_base.num; } } + + /* update h264 video pts info with real rate */ + if(st->codec->codec_id == CODEC_ID_H264 ) { + av_set_pts_info(st, 64, st->r_frame_rate.num, st->r_frame_rate.den); + } } } Thanks, Limin * Michael Niedermayer <michaelni at gmx.at> [2007-01-18 15:01:18 +0100]: > Hi > > On Thu, Jan 18, 2007 at 03:34:52PM +0800, Limin Wang wrote: > > Hi developer, > > > > When I decode a h264 file by using ffmpeg, it can't decode all frame as my > > expect(300frame in total, it decode 180 frame only). > > > > lmwang at laptop:~/yuvad/open/h264/ffmpeg$ ./ffmpeg -f h264 -i > > /tmp/akiyo_cif.h264 /tmp/akiyo_cif.yuv > > FFmpeg version SVN-r7430, Copyright (c) 2000-2006 Fabrice Bellard, et al. > > configuration: --enable-gpl --enable-x264 > > libavutil version: 49.1.0 > > libavcodec version: 51.28.0 > > libavformat version: 51.7.0 > > built on Jan 18 2007 15:28:56, gcc: 4.1.2 20061115 (prerelease) (Debian > > 4.1.1-21) > > Input #0, h264, from '/tmp/akiyo_cif.h264': > > Duration: N/A, bitrate: N/A > > Stream #0.0: Video: h264, yuv420p, 352x288, 15.00 fps(r) > > File '/tmp/akiyo_cif.yuv' already exists. Overwrite ? [y/N] y > > Output #0, rawvideo, to '/tmp/akiyo_cif.yuv': > > Stream #0.0: Video: rawvideo, yuv420p, 352x288, q=2-31, 200 kb/s, 15.00 > > fps(c) > > Stream mapping: > > Stream #0.0 -> #0.0 > > Press [q] to stop encoding > > frame= 180 q=0.0 Lsize= 26730kB time=12.0 bitrate=18247.7kbits/s > > video:26730kB audio:0kB global headers:0kB muxing overhead 0.000000% > > lmwang at laptop:~/yuvad/open/h264/ffmpeg$ > > > > > > After investigated , I found out it's caused by pts is set by default > > fps(25). Below is my fix, please review it. > > > > Thanks, > > Limin > > > > > > Index: ffmpeg.c > > =================================================================== > > --- ffmpeg.c (revision 7430) > > +++ ffmpeg.c (working copy) > > @@ -2667,6 +2667,9 @@ > > frame_rate = rfps; > > frame_rate_base = rfps_base; > > > > + /* need update stream pts info also */ > > + av_set_pts_info(ic->streams[i], 64, frame_rate_base, frame_rate ); > > rejected > the user application cannot just mess with the internal input timebase > > [...] > -- > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB > > Democracy is the form of government in which you can choose your dictator > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel at mplayerhq.hu > http://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-devel -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iQEVAwUBRbA4JEztbf7dKiuoAQKargf9E+u9TBqaYVfR6Oyaqbd/JKT2yqLRac80 R1XsDGiLlx4Q6AYYj2v/26g/jjrcJg/F/1Oq7jJ6mYgBES1PJABPRHQ1qISz6PHv fS892Jt+TYResgk2nNt4VxwwpdQVKyRJYvWk+C064LXdnOsyyNnA0gO7rnK6Rnab X0hLUJbDlWU2t5XGudPA6XKmgE+fPr5Qvsu7zouUXru3enYMPQoneuwgxd12UFQX hJkFZJ/cCma4mQt4MNhuxoRfPF7cO3Ntgnlhp6ov3PKofFRgv9fRbU9ljiuVkRcZ M9BrJKv1QuBWxu7NCXa1d7kHZVc9w2tbBP9W9NcRYuZM0/mXOtMZYw== =Awcr -----END PGP SIGNATURE-----
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4