[gst-devel] Icecast a dv stream via ogg
bilboed at gmail.com
Tue May 11 08:59:25 CEST 2010
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
Same as above, you're having it do *everything* in one thread
conversion/encoding/muxing/writing). Regardless of having multiple
cores, you want to have a dedicated thread for:
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
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
> Matthew Franklin.
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
More information about the gstreamer-devel