After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 551580 - problems with lame ! ffmux_mpeg
problems with lame ! ffmux_mpeg
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gst-libav
0.10.x
Other Linux
: Normal normal
: NONE
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-09-09 21:38 UTC by Mildred
Modified: 2012-12-17 18:43 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Mildred 2008-09-09 21:38:03 UTC
Hi,

I use gstreamer to recod my webcam to some OGG/Vorbis+Theora video file, and then, i can't read it back using gstreamer.

To create the file i use:

gst-launch-0.10 v4l2src ! video/x-raw-yuv,width=640,height=480 ! tee name=img ! queue ! xvimagesink img. ! ffmpegcolorspace ! queue ! videorate ! video/x-raw-rgb,rate=15/1 ! ffmpegcolorspace ! theoraenc ! oggmux name=mux ! filesink location=foo.ogg alsasrc ! audio/x-raw-int,channels=1,rate=22025,depth=16 ! queue ! audioconvert ! vorbisenc ! mux.

(you can replace v4l2src by videotestsrc, the bug still happens)

Then, to convert to MPEG2, i would like to use the following command line:

gst-launch-0.10 filesrc location=foo.ogg ! decodebin name=demux demux. ! queue ! ffmpegcolorspace ! ffenc_mpeg2video ! video/mpeg ! queue ! mux. demux. ! queue ! audioconvert ! lame ! audio/mpeg ! queue ! mux. ffmux_mpeg name=mux ! filesink location=foo.mpeg

But then:

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /pipeline0/mux: Internal GStreamer error: negotiation problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Additional debug info:
gstffmpegmux.c(381): gst_ffmpegmux_collected (): /pipeline0/mux:
no caps set on stream 1 (audio)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
FREEING pipeline ...

Ideally, GStreamer should be able to read the files it created :)

I use the packages compiled for ArchLinux, the package versions are:

extra/gstreamer0.10 0.10.20-1 
extra/gstreamer0.10-bad 0.10.7-1 
extra/gstreamer0.10-bad-plugins 0.10.7-3 (gstreamer0.10-plugins)
extra/gstreamer0.10-base 0.10.20-1 
extra/gstreamer0.10-base-plugins 0.10.20-1 (gstreamer0.10-plugins)
extra/gstreamer0.10-ffmpeg 0.10.4-1 (gstreamer0.10-plugins)
extra/gstreamer0.10-good 0.10.8-1 
extra/gstreamer0.10-good-plugins 0.10.8-4 (gstreamer0.10-plugins)
extra/gstreamer0.10-python 0.10.12-1 
extra/gstreamer0.10-ugly 0.10.8-1 
extra/gstreamer0.10-ugly-plugins 0.10.8-1 (gstreamer0.10-plugins)


Thanks for any help.

Mildred
Comment 1 Tim-Philipp Müller 2009-05-31 19:35:38 UTC
Looks like some element (lame presumably) doesn't set caps on the outgoing buffers. I'm not aware of this being a problem otherwise, so maybe the bug is elsewhere - I think we would have noticed before if this was in fact the problem.

With git of things, I get for

 $ gst-launch-0.10 audiotestsrc ! lame ! mp3parse ! ffmux_mpeg ! fakesink

just an endless stream of error debug messages:
:00:00.304304059 12855       0x7e5bf0 ERROR               ffmpeg :0:: buffer underflow i=0 bufi=339 size=418

Do you get those as well if you run gst-launch with

  $ GST_DEBUG=*:1 gst-launch-0.10 ...


Btw (unrelated, I think, but still):

 - the video framerate is set via the "framerate"
   field, not the "rate" field (re. the capsfilter
   after videorate)

 - you don't need the audio/mpeg capsfilter after
   lame, but you might need/want an mp3parse

Comment 2 Tim-Philipp Müller 2012-12-17 18:43:25 UTC
No additional info for more than 3 years, let's close this.

Please re-open if you still have problems with GStreamer 1.0 and gst-libav 1.x, thanks!