GNOME Bugzilla – Bug 140137
[ffdec_msmpeg4] Can't play pokem.avi
Last modified: 2004-12-22 21:47:04 UTC
ftp://ftp.mplayerhq.hu/MPlayer/samples/A-codecs/MP3/pokem.avi does not play with gst-player/totem or on the command line, it just shows a black screen. MPlayer can play it fine and shows the following output: VIDEO: [DIV3] 480x320 24bpp 23.976 fps 1008.1 kbps (123.1 kbyte/s) ========================================================================== Opening audio decoder: [mp3lib] MPEG layer-2, layer-3 MP3lib: init layer2&3 finished, tables done AUDIO: 44100 Hz, 2 ch, 16 bit (0x10), ratio: 16000->176400 (128.0 kbit) Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3) ========================================================================== vo: X11 running at 1400x1050 with depth 16 and 16 bpp (":0.0" => local display) ========================================================================== Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family Selected video codec: [ffdivx] vfm:ffmpeg (FFmpeg DivX ;-) (MS MPEG-4 v3)) ========================================================================== Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... AF_pre: af format: 2 bps, 2 ch, 44100 hz, little endian signed int AF_pre: 44100Hz 2ch Signed 16-bit (Little-Endian) AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) (2 bps) Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit... Starting playback... VDec: vo config request - 480 x 320 (preferred csp: Planar YV12) VDec: using Planar YV12 as output csp (no 0) Movie-Aspect is undefined - no prescaling applied. VO: [xv] 480x320 => 480x320 Planar YV12 [msmpeg4 @ 0x84c8be8]ac-tex damaged at 20 218/ 18 11% 5% 0.8% 0 0 0% [msmpeg4 @ 0x84c8be8] error while decoding block: 20 x 2 (1) [msmpeg4 @ 0x84c8be8]Error at MB: 82 [msmpeg4 @ 0x84c8be8]concealing errors A: 0.8 V: 0.8 A-V: 0.013 ct: 0.050 19/ 19 12% 5% 0.8% 0 0 0%
Fixed in CVS, needed to simply add the fourcc to riff-media.c
It's still not playable for me, with current cvs: $ gst-launch-0.8 filesrc location="/home/jdahlin/Movies/mplayer/samples/A-codecs/MP3/pokem.avi" ! avidemux name=demux ! { queue ! ffdec_msmpeg4 ! ffcolorspace ! xvimagesink } RUNNING pipeline ... ERROR default( 353) ./grammar.y(383):gst_parse_element_lock:<xvimagesink0> (null) ERROR default( 353) ./grammar.y(383):gst_parse_element_lock:<xvimagesink0> (null) ERROR: from element /pipeline0/thread0/xvimagesink0: Internal GStreamer error: state change failed. File a bug. ** (process:353): WARNING **: File said that it has an index, but there is no index data! ERROR default( 353) riff-read.c(198):gst_riff_read_element_data:<demux> (null) ERROR default( 353) riff-read.c(198):gst_riff_read_element_data:<demux> (null) ERROR: from element /pipeline0/demux: Could not read from resource. ERROR scheduler( 353) gstoptimalscheduler.c(2298):gst_opt_scheduler_iterate:<GstOptScheduler@0x8c65d00> in error state Execution ended after 38 iterations (sum 41161000 ns, average 1083184 ns, min 16000 ns, max 25575000 ns).
I must be doing something different then: [rbultje@shrek clips]$ ~/projects/gstreamer/gst-plugins/examples/gstplay/player pokem.avi got video size 16, 16 time tick 0.000570 video codec: DivX MS-MPEG-4 Version 3 time tick 0.000570 got video size 480, 320 audio codec: MPEG 1 layer 3 time tick 0.000570 got length 60560500000 time tick 0.000570 time tick 0.000570 time tick 0.000570 End Of Stream setting pipeline to ready [rbultje@shrek clips]$
This is what I get when issuing the same command with latest cvs of core,plugins and ffmpeg: got video size 16, 16 video codec: DivX MS-MPEG-4 Version 3 audio codec: MPEG 1 layer 3 End Of Stream (process:27983): GStreamer-WARNING **: element work_thread claimed state-change success,but state didn't change to PLAYING. State is PAUSED (NONE_PENDING pending), fix the element ** ERROR **: Could not set state to PLAYING aborting... Trace/breakpoint trap
Someone broke CVS, please retry.
Johan, could you please retry?
I still can't play it, full log can be found here: http://rafb.net/paste/results/g3094040.html command line: gst-launch-0.8 filesrc location="/home/jdahlin/Movies/mplayer/samples/A-codecs/MP3/pokem.avi" ! avidemux name=demux ! { queue ! spider ! ffcolorspace ! xvimagesink } { demux. ! queue ! spider ! osssink }
"Failed read" indicates that you don't have the full file, or do you? What's your filesize? Can you re-download? Just trying to make sure it's not something obvious. ;).
So, the caps problem was due to some bug in ffcolorspace which thomas introduced, I have now updated ffmpeg and it does no longer crash totem. However, I can not get any output from totem, while in mplayer I can see some japanese anime for a couple of seconds. This is printed on stdout/stderr: (totem:1604): GStreamer-WARNING **: element work_thread claimed state-change success,but state didn't change to PLAYING. State is PAUSED (NONE_PENDING pending), fix the element Trying on the command line, it sometimes works, this is always printed: ** (process:1715): WARNING **: File said that it has an index, but there is no index data! When it does not work, this is also printed: ERROR default( 1727) riff-read.c(199):gst_riff_read_element_data:<demux> (null) ERROR default( 1727) riff-read.c(199):gst_riff_read_element_data:<demux> (null) ERROR: from element /pipeline0/demux: Could not read from resource. ERROR scheduler( 1727) gstoptimalscheduler.c(2298):gst_opt_scheduler_iterate:<GstOptScheduler@0x92dacd8> in error state
This works fine with current CVS of Totem. However, you won't actually see an image. That's a sall bug in playbin: it cannot handle short-duration media. The clock inside the player will already run while setting up, and when we're finally set up (say that this takes 1 second), we will skip the first second of the movie to get back in sync. Hence, we see nothing.
(totem:20666): GStreamer-WARNING **: element thread_vbin claimed state-change success,but state didn't change to PLAYING. State is PAUSED (NONE_PENDING pending), fix the element That's what I get now...
As for the horseb movie, I get this: ERROR (0x89556e8 - 306452:44:52.357576000) ffmpeg(20796) (0):: MS Video-1 warning: stream_ptr out of bounds (5554 >= 5552) it plays, but there's a lot of colory blocks, nothing visible. ffplay plays it fine.
Oops, ignore that, wrong bug...
just tried to play it with current gst+totem CVS, got perfect image and about 2sec audio no warning on the console so, fixed by newer ffmpeg snapshot ?
Possibly, it seems to work for me, too.