flvmux strange issue (Gstreamer 1.0.3)

Guetcho Guetchev getcho.getchev at gmail.com
Mon Dec 3 15:58:39 PST 2012

Hello guys,

Recently I have strange issues with the following pipeline:

appsrc --- x264enc ---capsfilter--- flvmux --- appsink
appsrc --- speex ------capsfilter------|

Basically I want to produce a flv stream (or a file), that contains speex encoded audio plus h264 encoded video. 
I was told to use capsfilters when necessary to explicitly set the caps of the elements. 

The input data is contained in a file. The video samples are I420 encoded, 640x480, 20 fps; the audio samples are LPCM, 44.1 kHz, 1 channel (mono), 16 bit little-endian. 
The timestamps for the video are in seconds - double (8 bytes), as if returned from time() function.
The timestamps for the audio are in ticks - double again, each tick is 1 / rate, where rate = 44.1kHz. 

This test case fails to build a .flv file even on linux (Ubuntu 12.04, 32-bit). The target system is ARM-based, unix - derivate. 

By some reason I cannot use shared object in my build of Gstreamer. All modules are static .a libraries. Thus automatic elements like playbin cannot be used - I have to explicitly build the pipeline. 

		 you can get a sample application along with a sample data. 

The issue:
The appsink produces very short samples (96 to 54 bytes long). Either values of TRUE or FALSE on  the "streamable" property makes no difference. 
I tried even if the appsrc are seekable. The same result. 
When logging with GST_DEBUG="flvmux:5" I get this warning: downstream is not seekable, but streamable=false. Will ignore that and create streamable output instead.
I have no idea how to make an appsink to be seekable. And I am not sure this is the root of the problem.  

Please, can you enlighten me where I do wrong. 
Thanks in advance.


More information about the gstreamer-devel mailing list