flutsmux information (extended)

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

flutsmux information (extended)

ldac

   Hi all,

    I have a few questions related to the flutsmux/flutsdemux elements.

   Firstable, which is the standard way to do streaming with the output of the "flutsmux" element? I mean, you get the output flow from "flutsmux", and do you directly encapsulate it into UDP packages for being sent through the network? Or it is normally used TCP packages, or any other kind of encapsulation before being sent?

   Where can I find some more information/documentation about flutsmux/flutsdemux?

   In "flutsdemux" I have seen that you have a property named "program-number". But, how do you mux several "programs" using "flutsmux"? Is there some pipeline example muxing several channels in a sender and then demuxing them in a receiver?

    One specific question about a pipeline multiplexing streams. Next pipeline encodes 2 video and 2 audio streams into one .ts file (it works fine). But, how do I play either one stream or the other?

gst-launch-0.10 \
   filesrc location=video0.mp4 ! qtdemux ! h264parse ! queue ! mux. \
   filesrc location=audio0.mp3 ! mp3parse ! queue ! mux. \
   filesrc location=video1.mp4 ! qtdemux ! h264parse ! queue ! mux. \
   filesrc location=inputs/audio1.mp3 ! mp3parse ! queue ! mux. \
   flutsmux name=mux ! filesink location=test_2prog.ts


I guess that is should be something like this, but I can play only video0 with audio0.

gst-launch-0.10 filesrc location=test_2prog.ts ! flutsdemux program-number=1 name=demux demux. ! queue ! ffdec_h264 ! xvimagesink demux. ! queue ! mad ! alsasink demux.

(changing "program-number" I always get: ERROR: from element /GstPipeline:pipeline0/GstFluTSDemux:demux: Could not determine type of stream)


   THANK YOU VERY MUCH.
   All the best.
   LD.
------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today.
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: flutsmux information (extended)

lyang
Hi Idac,

Are you trying to mux two different programs within one TS stream?

In fact I looked into a similar problem with mpegtsmux/flutsmux (they are basically identical) a few weeks ago, and what I found is that the capability of the muxer is not as good as expected. (If you are interested you can have a look at http://gstreamer.freedesktop.org/wiki/MpegTsMuxTest; there you can see that the produced TS stream is not compatible with many contemporary players.) The main reason of this is that flutsmux/mpegtsmux is incapable to write full-fledged PAT/PMT tables in the stream. I currently don't have an environment to test your pipeline, but I think your problem probably comes from the same reason.

As an advertisement, I've proposed a project aiming to enhance the TS muxer in the Google summer of code this year, which is supposed to be finished by the end of June or so. I hope to support your use case in my project.

Regards,
Lin


ldac wrote
   Hi all,


    I have a few questions related to the flutsmux/flutsdemux elements.


   Firstable, which is the standard way to do streaming with the output
of the "flutsmux" element? I mean, you get the output flow from
"flutsmux", and do you directly encapsulate it into UDP packages for
being sent through the network? Or it is normally used TCP packages, or
any other kind of encapsulation before being sent?


   Where can I find some more information/documentation about
flutsmux/flutsdemux?


   In "flutsdemux" I have seen that you have a property named
"program-number". But, how do you mux several "programs" using
"flutsmux"? Is there some pipeline example muxing several channels in a
sender and then demuxing them in a receiver?


    One specific question about a pipeline multiplexing streams. Next
pipeline encodes 2 video and 2 audio streams into one .ts file (it
works fine). But, how do I play either one stream or the other?

gst-launch-0.10 \
   filesrc location=video0.mp4 ! qtdemux ! h264parse ! queue !
mux. \
   filesrc location=audio0.mp3 ! mp3parse ! queue ! mux. \
   filesrc location=video1.mp4 ! qtdemux ! h264parse ! queue !
mux. \
   filesrc location=inputs/audio1.mp3 ! mp3parse ! queue ! mux. \
   flutsmux name=mux ! filesink location=test_2prog.ts

I guess that is should be something like this, but I can play only
video0 with audio0.

gst-launch-0.10 filesrc location=test_2prog.ts ! flutsdemux
program-number=1 name=demux demux. ! queue ! ffdec_h264 ! xvimagesink
demux. ! queue ! mad ! alsasink demux.

(changing "program-number" I always get: ERROR: from element
/GstPipeline:pipeline0/GstFluTSDemux:demux: Could not determine type of
stream)


   THANK YOU VERY MUCH.

   All the best.

   LD.




------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today.
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel