Opened 6 years ago

Closed 6 years ago

#32 closed defect (invalid)

too long time waste on the part before intended snippet and encode zero frame when encode a rmvb file to an avi snippet

Reported by: littlebat Owned by: michael
Priority: normal Component: ffmpeg
Version: git Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

I tried to get an avi snippet from a rmvb movie using ffmpeg, this is my command line: ffmpeg -i yyzs.rmvb -ss 02:40:00 -t 00:10:00 yyzs17.avi

But, it spend about 10 minutes on the part before intended snippet and encode zero frame, the last 1 minutes it worked on that snippet. The key message is: "Buffering several frames is not supported. Please consume all available frames before adding a new one."

I tried encoding rmvb to avi, rmvb to mp4, mp4 to mp4, mp4 to avi, got the same result.

ffmpeg compiled from newest git repository: FFmpeg version git-N-28755-g7ac1674

Envirnment: Vmware virtual machine(Core(TM)2 Duo CPU E7400), Ubuntu 10.04

Console output:
(break the long time running and omitted some
repeat messages):

mdx@u1004b2-desktop:/media/1217e/mdx/share/rwshare/yyzs$

ffmpeg -i yyzs.rmvb -ss 02:40:00 -t 00:10:00 yyzs17.ffmpeg.refresh.avi
FFmpeg version git-N-28755-g7ac1674, Copyright (c) 2000-2011 the FFmpeg
developers built on Apr 1 2011 15:36:56 with gcc 4.4.3 configuration:

libavutil 50. 40. 0 / 50. 40. 0
libavcodec 52.116. 0 / 52.116. 0
libavformat 52.104. 0 / 52.104. 0
libavdevice 52. 4. 0 / 52. 4. 0
libavfilter 1. 76. 0 / 1. 76. 0
libswscale 0. 13. 0 / 0. 13. 0

[NULL @ 0xa9f3010] Unsupported video codec
[rm @ 0xa9ea600] max_analyze_duration reached
Input #0, rm, from 'yyzs.rmvb':

Metadata:

title :
author :
copyright :
comment :

Duration: 02:45:12.13, start: 0.000000, bitrate: 608 kb/s

Stream #0.0: Video: rv40, yuv420p, 640x360, 531 kb/s, 12.05 fps, 12

tbr, 1k tbn, 12 tbc Stream #0.1: Audio: cook, 44100 Hz, stereo, s16, 64
kb/s Stream #0.2: Data: [0][0][0][0] / 0x0000
[buffer @ 0xaa76500] w:640 h:360 pixfmt:yuv420p
Output #0, avi, to 'yyzs17.ffmpeg.refresh.avi':

Metadata:

INAM :
author :
ICOP :
ICMT :
ISFT : Lavf52.104.0
Stream #0.0: Video: mpeg4, yuv420p, 640x360, q=2-31, 200 kb/s, 12

tbn, 12 tbc Stream #0.1: Audio: mp2, 44100 Hz, stereo, s16, 64 kb/s
Stream mapping:

Stream #0.0 -> #0.0
Stream #0.1 -> #0.1

Press [q] to stop encoding
[buffer @ 0xaa76500] Buffering several frames is not supported. Please consume all available frames before adding a new one. frame= 0 fps=0 q=0.0 size= 10kB time=10000000000.00 bitrate= 0.0kbit
frame= 0 fps= 0 q=0.0 size= 10kB time=10000000000.00
bitrate= 0.0kbit
frame= 0 fps= 0 q=0.0 size= 10kB time=10000000000.00 bitrate= 0.0kbit
frame= 0 fps= 0 q=0.0 size= 10kB time=10000000000.00 bitrate= 0.0kbit
frame= 0 fps= 0 q=0.0 size= 10kB time=10000000000.00 bitrate= 0.0kbit

...(omitted)

frame= 0 fps= 0 q=0.0 size= 10kB time=10000000000.00 bitrate= 0.0kbit
Last message repeated 45778 times Buffering several frames is not supported. Please consume all available frames before adding a new one. [buffer @ 0xaa76500]
Buffering several frames is not supported. Please consume all available frames before adding a new one.

Attachments (1)

yyzs2.4M.rmvb (2.3 MB) - added by littlebat 6 years ago.
dd if=yyzs.rmvb of=yyzs2.4M.rmvb bs=1024 count=2400; ffmpeg -i yyzs2.4M.rmvb -ss 00:00:25 -t 00:00:02 yyzs2s3.avi

Change History (4)

Changed 6 years ago by littlebat

dd if=yyzs.rmvb of=yyzs2.4M.rmvb bs=1024 count=2400; ffmpeg -i yyzs2.4M.rmvb -ss 00:00:25 -t 00:00:02 yyzs2s3.avi

comment:1 Changed 6 years ago by cehoyos

I am not sure I understand your report:
You put -ss behind the input file, instructing ffmpeg to decode all data before the "intended snippet". It may take several minutes to decode over two hours of rv40 video. You can put -ss before the input file, instructing ffmpeg to seek over the unneeded data. This does not always work (some streams are not seekable, ffmpeg may not support seeking in some streams), but it does work fine for the test file you uploaded.

Or are you complaining about the warning message from the buffer filter?

Note that FFmpeg's rm demuxer is known not to work very well: I believe you cut FFmpeg output, so it is not visible, but I suspect it shows a high (and unwanted) valued for "drop". -r 25 does not help, unfortunately.

comment:2 Changed 6 years ago by littlebat

Sorry, it's not a bug, all is my fault. Too many examples on internet for splitting video with ffmpeg is put -i before -ss.

Put -i after -ss solved my broblem.

Thanks.

comment:3 Changed 6 years ago by cehoyos

  • Resolution set to invalid
  • Status changed from new to closed

Allow me to repeat that I do not believe the resulting "snippet" has acceptable quality (because at least half the frames are missing).

Note: See TracTickets for help on using tickets.