[gst-devel] Icecast a dv stream via ogg

matheist76 at westnet.com.au matheist76 at westnet.com.au
Tue May 11 10:15:16 CEST 2010


Hi Edward,
I've done what you have suggested and replaced dvdec with ffdec_dvvideo. I've also added in a queue between the source and the demuxer. It produces much the same thing except with a lower cpu usage. 

I'm using gstreamer version 0.10.1 . I think the real problem is with the theora encoding. Are there any other plugins that will do the same job?

Matt

----- Original Message -----
From: "Edward Hervey" <bilboed at gmail.com>
To: "Discussion of the development of GStreamer" <gstreamer-devel at lists.sourceforge.net>
Sent: Tuesday, 11 May, 2010 4:59:25 PM GMT +10:00 Brisbane
Subject: Re: [gst-devel] Icecast a dv stream via ogg

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



------------------------------------------------------------------------------

_______________________________________________
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