[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