В сообщении от Sunday 03 November 2019 13:56:09 Carl Eugen Hoyos написал(а): > Am So., 3. Nov. 2019 um 11:53 Uhr schrieb Andrew Randrianasulu > <[email protected]>: > > > For what exactly I should look? > > You claim that AVStream->time_base is changing (which sounds strange to me > but who know) on seeking, you could look (with printf's) how ffmpeg.c > deals with this. > I cannot know...
https://www.cinelerra-gg.org/bugtracker/view.php?id=330 after such mod: int FFStream::seek(int64_t no, double rate) { // default ffmpeg native seek int npkts = 1; int64_t pos = no, pkt_pos = -1; IndexMarks index_markers = get_markers(); if( index_markers && index_markers->size() > 1 ) { IndexMarks &marks = index_markers; int i = marks.find(pos); int64_t n = i < 0 ? (i=0) : marks[i].no; // if indexed seek point not too far away (<30 secs), use index if( no-n < 30rate ) { if( n < 0 ) n = 0; pos = n; if( i < marks.size() ) pkt_pos = marks[i].pos; npkts = MAX_RETRY; } } if( pos == curr_pos ) return 0; double secs = pos < 0 ? 0. : pos / rate; AVRational time_base = st->time_base; AVRational time_base2 = av_inv_q(avctx->framerate); fprintf(stderr, "Timebase from stream: %i,%i \n", time_base.num, time_base.den); fprintf(stderr, "Timebase from codec: %i,%i \n", time_base2.num, time_base2.den); int64_t tstmp = time_base.num > 0 ? secs time_base.den/time_base.num : 0; int64_t tstmp2 = av_rescale_q(tstmp, time_base, AV_TIME_BASE_Q); if (time_base.den != time_base2.den) { //fprintf (stderr, "timebases for stream and code differ!\n"); //fprintf (stderr, "Timestamps tstmp, tstmp2: %jd,%jd \n", tstmp, tstmp2); //fprintf (stderr, "using default 25 fps ones!\n"); //tstmp = secs * 25; } I see this output: LANG=ru_RU.utf8 /dev/shm/tmp/cinelerra-goodguy-20191029/cinelerra-5.1/bin/cin Cinelerra Infinity - built: Oct 29 2019 11:57:50 git://git.cinelerra-gg.org/goodguy/cinelerra.git (c) 2006-2019 Heroine Virtual Ltd. by Adam Williams (c) 2007-2019 cin5 derivative by W.P. Morrow aka goodguy Cinelerra is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. There is absolutely no warranty for Cinelerra. FFMPEG::open_decoder: some stream times estimated: /home/guest/botva/Downloads/from_Vladimir/Leningrad dolphinarium 16 09 2009/LD_160909_2.avi FFMPEG::open_decoder: some stream times estimated: /home/guest/botva/Downloads/from_Vladimir/Leningrad dolphinarium 16 09 2009/LD_160909_2.avi FFMPEG::open_decoder: some stream times estimated: /home/guest/botva/Downloads/from_Vladimir/Leningrad dolphinarium 16 09 2009/LD_160909_2.avi FFMPEG::open_decoder: some stream times estimated: /home/guest/botva/Downloads/from_Vladimir/Leningrad dolphinarium 16 09 2009/LD_160909_2.avi Device type none is not supported. Available device types: vdpau cuda vaapi opencl FFMPEG::open_decoder: some stream times estimated: /home/guest/botva/Downloads/from_Vladimir/Leningrad dolphinarium 16 09 2009/LD_160909_2.avi Device type none is not supported. Available device types: vdpau cuda vaapi opencl Timebase from stream: 1,25 Timebase from codec: 1,0 Timebase from stream: 1,25 Timebase from codec: 1,0 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 FFMPEG::open_decoder: some stream times estimated: /home/guest/botva/Downloads/from_Vladimir/Leningrad dolphinarium 16 09 2009/LD_160909_2.avi Device type none is not supported. Available device types: vdpau cuda vaapi opencl Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 FFMPEG::open_decoder: some stream times estimated: /home/guest/botva/Downloads/from_Vladimir/Leningrad dolphinarium 16 09 2009/LD_160909_2.avi Timebase from stream: 1,25 Timebase from codec: 1,25 Timebase from stream: 1,25 Timebase from codec: 1,25 FFMPEG::open_decoder: some stream times estimated: /home/guest/botva/Downloads/from_Vladimir/Leningrad dolphinarium 16 09 2009/LD_160909_2.avi Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Timebase from stream: 1,30000 Timebase from codec: 1,0 Session time: 0:00:47 You can try to build whole thing too :} (120Mb for git copy with -depth 1) > > Carl Eugen > _______________________________________________ > Libav-user mailing list > [email protected] > https://ffmpeg.org/mailman/listinfo/libav-user > > To unsubscribe, visit link above, or email > [email protected] with subject "unsubscribe". _______________________________________________ Libav-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/libav-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
