[gst-devel] Icecast a dv stream via ogg

Edward Hervey bilboed at gmail.com
Tue May 11 08:59:25 CEST 2010


Hi,

On Tue, 2010-05-11 at 14:27 +0800, matheist76 at westnet.com.au wrote:
> Hi, I'm wondering if anyone can help me. I want to, using gst-launch,
> send a dv (firewire) stream from a video camera convert it to an ogg
> and then send it to an icecast server.
> 
> I have tried several things. The main problem seems to lie with
> converting the dv video stream into a theora stream. 
> 
> So I ran some tests. These I ran on an Macbook Pro with an Intel Dual
> core 2.4GHz Processor and 4GB of ram and my old Toshiba Dual Core
> 1.8GHz processor and 512MB of ram
> 
> So the tests were:
> 
> 1.  Just test the decoding of the dv stream. 
> gst-launch-0.10 dv1394src ! dvdemux ! dvdec ! fakesink

  Try again with a queue between the source and the demuxer. Here only
one thread is being used to:
  * wait for the next frame from the camera
  * demux it
  * decode it

  Also, replace dvdec by ffdec_dvvideo (it's faster)
> 
> Mac: gives me 50% and 4% CPU usage. video quality unknown
> Tosh: same 
> 
> 2.  Do the full conversion.
> gst-launch-0.10 dv1394src ! dvdemux ! dvdec ! video/x-raw-yuv !
> ffmpegcolorspace ! theoraenc ! oggmux name=mux ! filesink
> location=test.ogg

  Same as above, you're having it do *everything* in one thread
(capturing/demuxing/decoding/colorspace
conversion/encoding/muxing/writing). Regardless of having multiple
cores, you want to have a dedicated thread for:
  * capturing
  * decoding
  * encoding

  Replace dvdec by ffdec_dvvideo (provided with gst-ffmpeg), and you
don't need to specify you want video/x-raw-yuv (dv decodes to YUV and
theoraenc accepts YUV). I'm not even certain you need ffmpegcolorspace,
but let's leave it (won't take any cpu if it doesn't have to transform).

  This pipeline should do it:
  dv1394src ! queue ! dvdemux ! dvdec ! queue ! ffmpegcolorspace !
theoraenc ! queue ! oggmux ! filesink
> 
> Mac: That gives me 100% and 4% usage and real crap video.
> Tosh: Same :-(
> 
> I have tried various other things like used queues and set the dv
> stream to drop frame rates however it ends up that it kinda works but
> the file plays for only 7 secs when I've recorded 30 secs worth or it
> records the video for the right length but misses showing most of the
> frames.

  Try again with the advices above, if the output is still garbled, then
there's definitely a problem

  Also mention what version of gstreamer+plugins you're using


   Edward

> 
> Matthew Franklin.
> 
> 
> ------------------------------------------------------------------------------
> 
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel






More information about the gstreamer-devel mailing list