Opened 10 years ago

Closed 10 years ago

#3362 closed defect (fixed)

ffplay: video freeze after seek

Reported by: Kirill Danilenko Owned by:
Priority: important Component: avformat
Version: git-master Keywords: mov h264 seek regression
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

How to reproduce:

ffplay media.mp4

ffmpeg version:

./ffmpeg -version
ffmpeg version N-60217-g644c32e
built on Jan 29 2014 12:54:09 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
configuration: 
libavutil      52. 63.100 / 52. 63.100
libavcodec     55. 49.100 / 55. 49.100
libavformat    55. 28.100 / 55. 28.100
libavdevice    55.  7.100 / 55.  7.100
libavfilter     4.  1.101 /  4.  1.101
libswscale      2.  5.101 /  2.  5.101
libswresample   0. 17.104 /  0. 17.104

built on :

Ubuntu 12.04.4 LTS, gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3

Brief: I faced the problem with ffplay during playback of media.mp4 (I have files to attach to this ticket). After seek video freezes, showing video frame which was before seek. Audio after seek continues to play correctly, no freeze.
ffprobe output:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp41isom
  Duration: 06:08:50.52, start: 0.000000, bitrate: 257 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 800x600 [SAR 1:1 DAR 4:3], 155 kb/s, -9.41 fps, 10 tbr, 10k tbn, 20 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 100 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

Also I tried with 2.1.3 release and 1.2, the same situation.

1) avformat_seek_file()
2) av_read_frame() << returns video frame (only 1 after seek)
3) next av_read_frame() calls returns only audio data.

ffplay on Ubuntu (with libav engine) plays that file well.

Attachments (1)

patchmovseek.diff (650 bytes ) - added by Carl Eugen Hoyos 10 years ago.

Download all attachments as: .zip

Change History (11)

comment:1 by Kirill Danilenko, 10 years ago

Problem file size is more than 2.5 mbyte limit. Its size is 711 mbytes.

comment:2 by Carl Eugen Hoyos, 10 years ago

Keywords: Constrained Baseline removed

To make this a valid ticket, please provide the complete, uncut console output (not random excerpts).

See http://ffmpeg.org/bugreports.html for instructions on how to upload, there is no filesize limit.

comment:3 by Kirill Danilenko, 10 years ago

ffplay mov_h264_video_freeze_after_seek.mp4

ffplay version N-60217-g644c32e Copyright (c) 2003-2014 the FFmpeg developers
  built on Jan 29 2014 12:54:09 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: 
  libavutil      52. 63.100 / 52. 63.100
  libavcodec     55. 49.100 / 55. 49.100
  libavformat    55. 28.100 / 55. 28.100
  libavdevice    55.  7.100 / 55.  7.100
  libavfilter     4.  1.101 /  4.  1.101
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'mov_h264_video_freeze_after_seek.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 0
    compatible_brands: mp41isom
  Duration: 06:08:50.52, start: 0.000000, bitrate: 257 kb/s
    Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 800x600 [SAR 1:1 DAR 4:3], 155 kb/s, -9.41 fps, 10 tbr, 10k tbn, 20 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, mono, fltp, 100 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Seek to 39% ( 2:23:50) of total duration ( 6:08:50)       B f=0/0   
Seek to 39% ( 2:23:23) of total duration ( 6:08:50)       B f=0/0   
Seek to 63% ( 3:51:54) of total duration ( 6:08:50)       B f=0/0   
Seek to 32% ( 1:58:01) of total duration ( 6:08:50)       B f=0/0   
Seek to 19% ( 1:09:09) of total duration ( 6:08:50)       B f=0/0   
Seek to 19% ( 1:09:09) of total duration ( 6:08:50)       B f=0/0   
Seek to 62% ( 3:49:08) of total duration ( 6:08:50)       B f=0/0   
Seek to 62% ( 3:49:35) of total duration ( 6:08:50)       B f=0/0   
Seek to 62% ( 3:49:35) of total duration ( 6:08:50)       B f=0/0   
Seek to 79% ( 4:51:22) of total duration ( 6:08:50)       B f=0/0   
6007.85 A-V:    nan fd=   0 aq=15360KB vq=    0KB sq=    0B f=0/0   
Last edited 10 years ago by Kirill Danilenko (previous) (diff)

comment:4 by Carl Eugen Hoyos, 10 years ago

Component: undeterminedavformat
Keywords: regression added
Priority: normalimportant
Reproduced by developer: set
Status: newopen

"freeze" is imo a bad description but seeking works badly for the sample since 7432bcfe / accea4d9
I will attach a poc that allows to test the difference.

by Carl Eugen Hoyos, 10 years ago

Attachment: patchmovseek.diff added

comment:5 by Carl Eugen Hoyos, 10 years ago

May or may not be related to ticket #2991.

comment:6 by Kirill Danilenko, 10 years ago

patchmovseek.diff helped. Waiting for commit.

comment:7 by Carl Eugen Hoyos, 10 years ago

Eight minutes that allow to reproduce the problem uploaded to http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket3362/

comment:8 by Kirill Danilenko, 10 years ago

hello, ffmpeg team, is any work planned on this ticket?

comment:9 by Michael Niedermayer, 10 years ago

I dont seem to be able to reproduce this, is this still affecting git master ?

comment:10 by Carl Eugen Hoyos, 10 years ago

Resolution: fixed
Status: openclosed

Fixed by Michael in a0911b05

Note: See TracTickets for help on using tickets.