[FFmpeg-user] frame drop while making video from image

anshul anshul.ffmpeg at gmail.com
Wed Dec 11 11:32:18 CET 2013


I am using below ffmpeg command

  ffmpeg -y -loglevel 'debug'  -r 1/5 -f concat -i /tmp/tmpk7FXmb 
-pix_fmt yuv420p -s 640x480 
"output/Great_Lakes_region_timeshare_camp.mp4" 2> log.txt

I have only 25 image from what i want to make movie my fourth image is 
dropped

Console output with value of duration,ost->sync_opts,in_picture->pts and 
delta
ffmpeg version N-58950-g8e5a298 Copyright (c) 2000-2013 the FFmpeg 
developers
   built on Dec 10 2013 12:36:38 with gcc 4.7 (SUSE Linux)
   configuration: --disable-optimizations
   libavutil      52. 58.100 / 52. 58.100
   libavcodec     55. 45.100 / 55. 45.100
   libavformat    55. 22.100 / 55. 22.100
   libavdevice    55.  5.102 / 55.  5.102
   libavfilter     3. 92.100 /  3. 92.100
   libswscale      2.  5.101 /  2.  5.101
   libswresample   0. 17.104 /  0. 17.104
Input #0, concat, from '/tmp/tmpk7FXmb':
   Duration: N/A, start: 0.000000, bitrate: N/A
     Stream #0:0: Video: mjpeg, yuvj444p(pc), 640x480 [SAR 72:72 DAR 
4:3], 25 tbr, 25 tbn, 25 tbc
[swscaler @ 0xb1b4040] deprecated pixel format used, make sure you did 
set range correctly
Output #0, mp4, to 'output/Great_Lakes_region_timeshare_camp.mp4':
   Metadata:
     encoder         : Lavf55.22.100
     Stream #0:0: Video: mpeg4 ( [0][0][0] / 0x0020), yuv420p, 640x480 
[SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 16384 tbn, 0.20 tbc
Stream mapping:
   Stream #0:0 -> #0:0 (mjpeg -> mpeg4)
Press [q] to stop, [?] for help
duration1.000000    ost->sync_opts= 0 in_picture->pts=0 delta= 1.000000
Input stream #0:0 frame changed from size:640x480 fmt:yuvj444p to 
size:279x181 fmt:yuvj420p
[swscaler @ 0xb483cc0] deprecated pixel format used, make sure you did 
set range correctly
duration1.000000    ost->sync_opts= 1 in_picture->pts=0 delta= 0.000000
Input stream #0:0 frame changed from size:279x181 fmt:yuvj420p to 
size:270x187 fmt:yuvj420p
[swscaler @ 0xb463200] deprecated pixel format used, make sure you did 
set range correctly
duration1.000000    ost->sync_opts= 2 in_picture->pts=0 delta= -1.000000
Input stream #0:0 frame changed from size:270x187 fmt:yuvj420p to 
size:279x181 fmt:yuvj420p
[swscaler @ 0xb463200] deprecated pixel format used, make sure you did 
set range correctly
duration1.000000    ost->sync_opts= 3 in_picture->pts=0 delta= -2.000000
Input stream #0:0 frame changed from size:279x181 fmt:yuvj420p to 
size:640x480 fmt:yuvj444p
[swscaler @ 0xb463200] deprecated pixel format used, make sure you did 
set range correctly
duration1.000000    ost->sync_opts= 3 in_picture->pts=0 delta= -2.000000
duration1.000000    ost->sync_opts= 3 in_picture->pts=1 delta= -1.000000
duration1.000000    ost->sync_opts= 4 in_picture->pts=2 delta= -1.000000
duration1.000000    ost->sync_opts= 5 in_picture->pts=3 delta= -1.000000
duration1.000000    ost->sync_opts= 6 in_picture->pts=4 delta= -1.000000
duration1.000000    ost->sync_opts= 7 in_picture->pts=5 delta= -1.000000
duration1.000000    ost->sync_opts= 8 in_picture->pts=6 delta= -1.000000
duration1.000000    ost->sync_opts= 9 in_picture->pts=7 delta= -1.000000
duration1.000000    ost->sync_opts= 10 in_picture->pts=8 delta= -1.000000
duration1.000000    ost->sync_opts= 11 in_picture->pts=9 delta= -1.000000
duration1.000000    ost->sync_opts= 12 in_picture->pts=10 delta= -1.000000
duration1.000000    ost->sync_opts= 13 in_picture->pts=11 delta= -1.000000
duration1.000000    ost->sync_opts= 14 in_picture->pts=12 delta= -1.000000
duration1.000000    ost->sync_opts= 15 in_picture->pts=13 delta= -1.000000
duration1.000000    ost->sync_opts= 16 in_picture->pts=14 delta= -1.000000
duration1.000000    ost->sync_opts= 17 in_picture->pts=15 delta= -1.000000
duration1.000000    ost->sync_opts= 18 in_picture->pts=16 delta= -1.000000
duration1.000000    ost->sync_opts= 19 in_picture->pts=17 delta= -1.000000
duration1.000000    ost->sync_opts= 20 in_picture->pts=18 delta= -1.000000
duration1.000000    ost->sync_opts= 21 in_picture->pts=19 delta= -1.000000
duration1.000000    ost->sync_opts= 22 in_picture->pts=20 delta= -1.000000
duration1.000000    ost->sync_opts= 23 in_picture->pts=21 delta= -1.000000
frame=   24 fps=0.0 q=2.0 Lsize=     156kB time=00:02:00.00 bitrate=  
10.7kbits/s dup=0 drop=2
video:155kB audio:0kB subtitle:0 global headers:0kB muxing overhead 
0.580371%



I think in_picture->pts is not increasing quite well

I also don't undestand why it is changing my image to yuv444p ,according 
to line one line from log
Input stream #0:0 frame changed from size:279x181 fmt:yuvj420p to 
size:640x480 fmt:yuvj444p
I never asked ffmpeg to convert in pixel format to yuv444p, i asked for 
yuv420p

I feel there is no problem in image, because in list of image i gave 2nd 
and forth image same,
if it has converted yuv444p to yuv420p then nnext time when same image 
come, it should
do same conversion properly

Please point me some document, so that I can make my timing 
understanding good, It look like
these concepts of mine are weak

If all image are in yuv420p format already, then frame drop is not observed




More information about the ffmpeg-user mailing list