WebM and VP8 streaming live from Flumotion

We did it! Today we managed to get Flumotion to stream live over http a test signal encoded in Vp8 and muxed in the WebM container.

The below screenshot shows Firefox webm developer preview playing it back in browser!

It requires patches to GStreamer and to Flumotion. So what you need is:

Thanks to Google for opening up vp8 and throwing the HTML5 video tag’s codec race wide open! Thanks to Collabora (especially Sebastian Dröge) and Entropy Wave (especially David Schleef) for getting the GStreamer plugins in shape! Thanks to Mark Nauwelaerts for fixing bits in the matroska muxer so it doesn’t output small buffers then seek every ebml tag! Thanks to Andoni Morales and Xavier Queralt for also putting in a lot of time after hours to work together to have the streaming working quick-smart.

I believe we are the first free software live streaming solution to have VP8 in WebM streaming live to browsers, if we are not we are definitely one of the first. This makes me very proud. We still have work to do to clean up the patches we have done and push them upstream to GStreamer and to Flumotion. There is still some work to do in cleaning up the patches and get them upstream in GStreamer and Flumotion but the hard part is done.

UPDATE: All the patches have landed into GStreamer and Flumotion so no need to use my repositories any more, just get from upstream! Also we have an official demo up at  http://www.flumotion.com/demosite/webm/

58 Responses to “WebM and VP8 streaming live from Flumotion”

  1. wulczer Says:

    Awesomeness to the nth degree!

  2. DZPM Says:

    Nice! :)

  3. pepribas Says:

    great!!

  4. WebM & VP8 Streaming Live From Flumotion Says:

    [...] We believe we are the first free software live streaming solution to have VP8 in WebM streaming live to browsers, if we are not we are definitely one of the first. Find out how we did it here. [...]

  5. Gerbrand Oudenaarden Says:

    Brilliant!

  6. walo Says:

    Would it be possible to stream to an icecast2 with vp8???????

    thanks.

  7. admin Says:

    walo, I don’t think icecast2 supports vp8 in ogg or vp8 in webm. Flumotion with the git rep mentioned in this blog post supports both.

  8. alvinator Says:

    Great job guys! It makes me proud to be a Flumotion employee. :)

  9. phil Says:

    Where’s the PR? :D

    Just joking, good work!

  10. walo Says:

    ok, but, ¿can i install a flumotion server? or it isn’t free???? i want to stream in vp8 from a webcam client with flumotion-admin to a server, so ¿what do i have to do?

    yo [at] alvarolara [dott] com is my email address please, contact me!!!

    thanx

  11. Kapil Agrawal Says:

    Woho, this is cool Zaheer.
    Congrats :)

  12. Edward Hervey Says:

    Awesome. I had no idea webm (or rather matroska) was streaming-friendly. And yay on Mark fixing the muxer !

    Regarding the icecast question, if it can silently forward formats it doesn’t know about, one should be able to use a gstreamer pipeline (with latest -base) to create a ogg/vorbis/vp8 stream and push it out to icecast for streaming. Problem is that the ogg mapping for vp8 is still unofficial (read “only gstreamer-based players should be able to handle it”).

    Carry on the good work :)

  13. Richard Kimber Says:

    This is great. Are there any implications for adaptive bitrate streaming?

  14. Lino Says:

    That’s excellent (and very quick) work!

    Thanks for this, I can’t wait to see all the code unleashed in stable releases.

  15. thomas.apestaart.org » Flumotion streaming VP8 in Ogg and WebM Says:

    [...] company), a bunch of our hackers got excited too and executed on the match made in heaven. Zaheer’s blog has all the details, and yesterday all I did was check out a bunch of code and run this simple [...]

  16. pdfan Says:

    while select webm flumotion shows error message:
    Worker ‘localhost’ is missing GStreamer element ‘vp8enc’.
    Please install the necessary GStreamer plug-ins that provide these elements and restart the worker.

    devices are webcam and soundcard, and the ogg works.
    all the package are installed with some thing like the following:

    autogen.sh –prefix=/usr
    make install

    how to setup GStreamer with support for element ‘vp8enc’?

  17. pdfan Says:

    all packages are from the git provided in ths page

  18. pdfan Says:

    so I guess I might have missed some configure args concerning webm/vp8

  19. admin Says:

    pdfan, do you have /usr/lib/libvpx.so on your system?

  20. pdfan Says:

    yes, libvpx is installed, and ffmpeg installed with google webm patch, and it can save stream to webm file, but the live feed not work.

    your demo just plays several seconds in my webm firefox and then stalled foreve.

  21. xpto Says:

    I need support webm on my Apache, how to make this?

  22. ylatuya Says:

    @pdfan: Do you have the vp8 encoder gstreamer plugin installed too?
    The libvpx build system is horrible and ‘make install’ doesn’t install the headers in the right place and most likely it hasn’t been selected to be built because the headers were not found by the gstreamer’s ./configure script
    Chek that when you run ./configure for gst-plugins-bad, this plugin is marked to be compiled.
    For instance we needed to copy manually the libvpx headers to /usr/local/include/libvpx.

  23. Zaheer Abbas Merali » Blog Archive » N900 and Maemo5 playing vp8/webm live stream Says:

    [...] Friday, we got flumotion to stream vp8/webm live.Details on a previous blog post. On the weekend and today (Monday), I set up a live stream from a TV channel from DVB to output in [...]

  24. N900 and Maemo5 playing vp8/webm live stream | Maemo Nokia N900 Says:

    [...] Friday, we got flumotion to stream vp8/webm live.Details on a previous blog post. On the weekend and today (Monday), I set up a live stream from a TV channel from DVB to output in [...]

  25. pdfan Says:

    gentoo linux: gstreamer search libvpx *h in /usr/include/vpx, so the *h files need be put in /usr/include/vpx.

    with webm the vp8 start work, but the URL is inactive, after a while (no more than 1 minute) encoder-video will stop. debug show 3 error messages:

    1 encoder-video error message: after a while

    Internal error in component.
    Posted on Wed 26 May 2010 02:08:20 AM CST.

    Debug information:
    failure twisted.spread.pb.PBConnectionLost: [Failure instance: Traceback (failure with no frames): : Connection was closed cleanly.
    ]

    2. mixer-audio-video: at start

    Could not setup component.
    Posted on Wed 26 May 2010 02:07:19 AM CST.

    Debug information:
    failure at flumotion/component/feedcomponent.py:348: create_pipeline(): componet “muxer” can not find attribule “is-live”

    3. overlay-video: at start

    Internal GStreamer error.
    Posted on Wed 26 May 2010 02:07:20 AM CST.

    Debug information:
    Internal GStreamer error
    gst-stream-error-quark: 1
    gstbasesrc.c(2550): gst_base_src_loop (): /GstPipeline:pipeline-overlay-video/GstAppSrc:source:
    streaming task paused, reason not-negotiated (-4)

    with ogg, it works well, the URL is active, but still shows one error at start, the same as error message in overlay-video.

    Internal GStreamer error.
    Posted on Wed 26 May 2010 02:07:20 AM CST.

    Debug information:
    Internal GStreamer error
    gst-stream-error-quark: 1
    gstbasesrc.c(2550): gst_base_src_loop (): /GstPipeline:pipeline-overlay-video/GstAppSrc:source:
    streaming task paused, reason not-negotiated (-4)

  26. ylatuya Says:

    @pdfan: the ‘is-live’ property is part of the patches added by zaheer and xqueralt to the matroska muxer. If this property is missing that’s because you are not using zhaeer’s gst-plugins-good branch from github ;)

  27. pdfan Says:

    I reinstalled gobject-introspection, pygobject, pygi, gst-python, libvpx, gstreamer, gst-plugins-base/bad/good(zaheer’s)/ugly/etc. flumotion. webm still not work with 2 error messages:

    ========= flumotion-admin GUI error messages
    1.muxer-audio-video

    Could not setup component.
    Posted on Wed 26 May 2010 10:40:37 AM CST.

    Debug information:
    failure at flumotion/component/feedcomponent.py:348: create_pipeline(): no property “is-live” in element “muxer”

    2.overlay-video

    Internal GStreamer error.
    Posted on Wed 26 May 2010 10:40:38 AM CST.

    Debug information:
    Internal data flow error.
    gst-stream-error-quark: 1
    gstbasesrc.c(2550): gst_base_src_loop (): /GstPipeline:pipeline-overlay-video/GstAppSrc:source:
    streaming task paused, reason not-negotiated (-4)

  28. pdfan Says:

    flumotion-admin -d5 -v DEBUG
    ========= DEBUG component moods(just enumerated not in the order showed up):

    encoder-audio 0
    encoder-audio 2
    encoder-audio 3
    encoder-video 1
    encoder-video 2
    encoder-video 3
    http-audio-video 1
    http-audio-video 2
    http-audio-video 3
    muxer-audio-video 3
    muxer-audio-video 5
    overlay-video 2
    overlay-video 3
    overlay-video 5
    porter-http 0
    porter-http 2
    porter-http 3
    producer-audio 0
    producer-audio 2
    producer-audio 3
    producer-video 0
    producer-video 2
    producer-video 3

    ========= DEBUG warnings/errors/fails
    LOG [31296] twisted May 26 10:39:58 [Broker,client] /usr/lib64/flumotion/python/flumotion/admin/gtk/adminwindow.py:642: gtk.GtkWarning: Refusing to add non-unique action ‘user@localhost:51950′ to action group ‘Actions’
    LOG [31296] twisted May 26 10:39:58 [Broker,client] /usr/lib64/flumotion/python/flumotion/admin/gtk/adminwindow.py:642: gtk.GtkWarning: Refusing to add non-unique action ‘user@localhost:47152′ to action group ‘Actions’
    LOG [31296] twisted May 26 10:39:58 [Broker,client] /usr/lib64/flumotion/python/flumotion/admin/gtk/adminwindow.py:642: gtk.GtkWarning: Refusing to add non-unique action ‘user@localhost:59276′ to action group ‘Actions’
    LOG [31296] twisted May 26 10:39:58 [Broker,client] /usr/lib64/flumotion/python/flumotion/admin/gtk/adminwindow.py:642: gtk.GtkWarning: Refusing to add non-unique action ‘user@localhost:35721′ to action group ‘Actions’
    LOG [31296] twisted May 26 10:40:04 [Broker,client] /root/.flumotion/scenario-steps/f650be69fc5095363a9d609d5bae1308/flumotion/scenario/steps/productionsteps.py:155: exceptions.DeprecationWarning: Use the new widget gtk.Tooltip
    LOG [31296] twisted May 26 10:40:04 [Broker,client] /root/.flumotion/scenario-steps/f650be69fc5095363a9d609d5bae1308/flumotion/scenario/steps/productionsteps.py:157: exceptions.DeprecationWarning: Use the new widget gtk.Tooltip
    LOG [31296] twisted May 26 10:40:04 [Broker,client] /root/.flumotion/scenario-steps/f650be69fc5095363a9d609d5bae1308/flumotion/scenario/steps/productionsteps.py:159: exceptions.DeprecationWarning: Use the new widget gtk.Tooltip
    DEBUG [31296] “user@localhost:34616″ adminmodel May 26 10:40:18 baseavatar : callRemote(getEntryByType, u’webm-muxer’, ‘wizard’): (flumotion/common/medium.py:155)
    LOG [31296] twisted May 26 10:40:20 [Broker,client] /usr/lib64/flumotion/python/flumotion/ui/kiwipatches.py:43: gtk.GtkWarning: GtkSpinButton: setting an adjustment with non-zero page size is deprecated
    LOG [31296] twisted May 26 10:40:35 [Broker,client] /usr/lib64/flumotion/python/flumotion/admin/gtk/adminwindow.py:1230: exceptions.DeprecationWarning: Please use the set_ kwarg instead
    LOG [31296] components May 26 10:40:37 stateSet: state , key messages, value (flumotion/admin/gtk/componentlist.py:368)
    LOG [31296] components May 26 10:40:38 stateSet: state , key messages, value (flumotion/admin/gtk/componentlist.py:368)
    LOG [31296] twisted May 26 10:40:39 [Broker,client] /usr/lib64/python2.6/site-packages/kiwi/ui/objectlist.py:967: exceptions.DeprecationWarning: Use the new widget gtk.Tooltip
    DEBUG [31296] adminwindow May 26 10:40:47 have message (flumotion/admin/gtk/adminwindow.py:1252)
    DEBUG [31296] adminwindow May 26 10:40:47 message id overlay-video-gst-stream-error-quark-1 (flumotion/admin/gtk/adminwindow.py:1253)
    DEBUG [31296] adminwindow May 26 10:41:12 have message (flumotion/admin/gtk/adminwindow.py:1252)
    DEBUG [31296] adminwindow May 26 10:41:12 message id GStreamer error: could not parse component pipeline. (flumotion/admin/gtk/adminwindow.py:1253)
    LOG [31296] twisted May 26 10:41:12 [-] /usr/lib64/flumotion/python/flumotion/admin/gtk/adminwindow.py:337: gobject.Warning: gsignal.c:2390: instance `0xcc9180′ has no handler with id `119′
    LOG [31296] components May 26 10:41:38 stateSet: state , key messages, value (flumotion/admin/gtk/componentlist.py:368)
    LOG [31296] twisted May 26 10:41:53 [-] /usr/lib64/flumotion/python/flumotion/admin/gtk/statusbar.py:76: exceptions.DeprecationWarning: use gtk.Statusbar.remove_message
    LOG [31296] twisted May 26 10:41:57 [Broker,client] /usr/lib64/flumotion/python/flumotion/admin/gtk/statusbar.py:100: exceptions.DeprecationWarning: use gtk.Statusbar.remove_message
    LOG [31296] components May 26 10:41:57 stateSet: state , key messages, value (flumotion/admin/gtk/componentlist.py:368)
    LOG [31296] twisted May 26 10:42:05 [-] /usr/lib64/flumotion/python/flumotion/admin/gtk/adminwindow.py:898: exceptions.DeprecationWarning: Please call disconnectByFunction instead
    LOG [31296] twisted May 26 10:42:05 [-] /usr/lib64/flumotion/python/flumotion/admin/gtk/adminwindow.py:899: exceptions.DeprecationWarning: Please call disconnectByFunction instead
    LOG [31296] twisted May 26 10:42:05 [-] /usr/lib64/flumotion/python/flumotion/admin/gtk/adminwindow.py:900: exceptions.DeprecationWarning: Please call disconnectByFunction instead
    DEBUG [31296] FPBClientFactory May 26 10:42:05 Lost connection to IPv4Address(TCP, ‘localhost’, 34616): failure : Connection to the other side was lost in a non-clean fashion: Connection lost. (flumotion/admin/admin.py:75)
    LOG [31296] twisted May 26 10:42:05 [Broker,client] connection lost to IPv4Address(TCP, ‘localhost’, 34616), reason >

  29. pdfan Says:

    how to set flumotion to use gst-plugins-good only and not use gst-plugins-base/bad/ugly

  30. solca Says:

    First was Cherokee HTTP server:

    http://www.alobbs.com/1386/Streaming_WebM_VP8_one_day_later.html

    Anyway you rock too!

  31. pdfan Says:

    ========= source files containing ‘is-live’
    # find ./gstreamer ./gst-plugins-base ./gst-plugins-bad ./gst-plugins-good ./flumotion -type f | xargs grep -i is-live | cut -d: -f1 | sort -u | grep ^[.] | grep -E “[.]c$|[.]h$” | grep -v /tests/
    ./gst-plugins-bad/gst/asfmux/gstasfmux.c
    ./gst-plugins-base/gst-libs/gst/app/gstappsrc.c
    ./gst-plugins-base/gst/audiotestsrc/gstaudiotestsrc.c
    ./gst-plugins-base/gst/videotestsrc/gstvideotestsrc.c
    ./gst-plugins-good/ext/soup/gstsouphttpsrc.c
    ./gst-plugins-good/gst/flv/gstflvmux.c
    ./gstreamer/plugins/elements/gstfakesrc.c

    ========= source files containing ‘webm’
    # find ./gstreamer ./gst-plugins-base ./gst-plugins-bad ./gst-plugins-good ./flumotion -type f | xargs grep -i webm | cut -d: -f1 | sort -u | grep ^[.] | grep -E “[.]c$|[.]h$” | grep -v /tests/
    ./gst-plugins-base/gst-libs/gst/pbutils/descriptions.c
    ./gst-plugins-base/gst/typefind/gsttypefindfunctions.c
    ./gst-plugins-good/gst/matroska/matroska-demux.c
    ./gst-plugins-good/gst/matroska/matroska-ids.h
    ./gst-plugins-good/gst/matroska/matroska-mux.c

  32. pdfan Says:

    ========= there’s no is-live in ‘webmmux: Element Properties:’
    # gst-inspect-0.10 -a |grep webm
    matroskademux: video/webm
    webmmux: Factory Details:
    webmmux: Long name: WebM muxer
    webmmux: Class: Codec/Muxer
    webmmux: Description: Muxes video/audio/subtitle streams into a WebM stream
    webmmux: Author(s): GStreamer maintainers
    webmmux: Rank: primary (256)
    webmmux:
    webmmux: Plugin Details:
    webmmux: Name: matroska
    webmmux: Description: Matroska stream handling
    webmmux: Filename: /usr/lib64/gstreamer-0.10/libgstmatroska.so
    webmmux: Version: 0.10.22.2
    webmmux: License: LGPL
    webmmux: Source module: gst-plugins-good
    webmmux: Binary package: Gentoo GStreamer Ebuild
    webmmux: Origin URL: http://www.gentoo.org
    webmmux:
    webmmux: GObject
    webmmux: +—-GstObject
    webmmux: +—-GstElement
    webmmux: +—-GstMatroskaMux
    webmmux: +—-GstWebMMux
    webmmux:
    webmmux: Implemented Interfaces:
    webmmux: GstTagSetter
    webmmux:
    webmmux: Pad Templates:
    webmmux: SINK template: ‘video_%d’
    webmmux: Availability: On request
    webmmux: Has request_new_pad() function: gst_matroska_mux_request_new_pad
    webmmux: Capabilities:
    webmmux: video/x-vp8
    webmmux: width: [ 16, 4096 ]
    webmmux: height: [ 16, 4096 ]
    webmmux: framerate: [ 0/1, 2147483647/1 ]
    webmmux:
    webmmux: SINK template: ‘audio_%d’
    webmmux: Availability: On request
    webmmux: Has request_new_pad() function: gst_matroska_mux_request_new_pad
    webmmux: Capabilities:
    webmmux: audio/x-vorbis
    webmmux: channels: [ 1, 2147483647 ]
    webmmux: rate: [ 1, 2147483647 ]
    webmmux:
    webmmux: SRC template: ‘src’
    webmmux: Availability: Always
    webmmux: Capabilities:
    webmmux: video/webm
    webmmux:
    webmmux:
    webmmux: Element Flags:
    webmmux: no flags set
    webmmux:
    webmmux: Element Implementation:
    webmmux: Has change_state() function: gst_matroska_mux_change_state
    webmmux: Has custom save_thyself() function: gst_element_save_thyself
    webmmux: Has custom restore_thyself() function: gst_element_restore_thyself
    webmmux:
    webmmux: Element has no clocking capabilities.webmmux:
    webmmux: Element has no indexing capabilities.
    webmmux: Element has no URI handling capabilities.
    webmmux:
    webmmux: Pads:
    webmmux: SRC: ‘src’
    webmmux: Implementation:
    webmmux: Has custom eventfunc(): 0x7f7fbeb6f780
    webmmux: Pad Template: ‘src’
    webmmux:
    webmmux: Element Properties:
    webmmux: name : The name of the object
    webmmux: flags: readable, writablewebmmux:
    webmmux: String. Default: null Current: “webmmux0″
    webmmux: writing-app : The name the application that creates the matroska file.
    webmmux: flags: readable, writablewebmmux:
    webmmux: String. Default: null Current: “GStreamer Matroska muxer”
    webmmux: version : This parameter determines what Matroska features can be used.
    webmmux: flags: readable, writablewebmmux:
    webmmux: Integer. Range: 1 – 2 Default: 2 Current: 2
    webmmux: min-index-interval : An index entry is created every so many nanoseconds.
    webmmux: flags: readable, writablewebmmux:
    webmmux: Integer64. Range: 0 – 9223372036854775807 Default: 0 Current: 0

    ========= all Elements with ‘is-live’ Property
    # gst-inspect-0.10 -a | grep -i is-live
    fakesrc: is-live : True if the element cannot produce data in PAUSED
    videotestsrc: is-live : Whether to act as a live source
    appsrc: is-live : Whether to act as a live source
    audiotestsrc: is-live : Whether to act as a live source
    souphttpsrc: is-live : Act like a live source
    asfmux: is-live : Whether this stream should be treated as a live stream, meaning that it doesn’t need an index or header updates when done.
    gltestsrc: is-live : Whether to act as a live source

  33. pdfan Says:

    http://www.alobbs.com/1386/Streaming_WebM_VP8_one_day_later.html is file streaming not live streaming as you see the same video every time you start over it. but zaheer’s page plays the realtime TV and you see different news every time your start over it.

  34. admin Says:

    pdfan, you need the webmlive branch from my github.

    Also we were the first to do LIVE streaming of webm, Cherokee just does serving of files at a speed just above the bitrate of the file but still files.

  35. pdfan Says:

    maybe I missed a patch that set the is-live property for webm?

  36. pdfan Says:

    ======== sources checked out
    git clone git://anongit.freedesktop.org/gstreamer/gstreamer gstreamer
    git clone git://anongit.freedesktop.org/gstreamer/gst-plugins-base gst-plugins-base
    git clone git://anongit.freedesktop.org/gstreamer/gst-plugins-bad gst-plugins-bad
    git clone git://github.com/zaheerm/gst-plugins-good gst-plugins-good
    git clone git://github.com/zaheerm/Flumotion flumotion

    how to check out webmlive and how to install it?

  37. pdfan Says:

    # grep git: *
    gst-plugins-good.doap:

    autogen.sh will git update some thing ( the common folder) from “git://anongit.freedesktop.org/gstreamer/gst-plugins-good” instead of git://github.com/zaheerm/gst-plugins-good

  38. admin Says:

    @pdfan

    cd gst-plugins-good ; git checkout webmlive

  39. pdfan Says:

    # git checkout webmlive

    then is-live is ok, but both ogg/webm URL always inactive. DEBUG shows:

    WARN [14950] “Webcam” default May 26 17:58:01 something bad happened: no framerate selected? (flumotion/component/producers/webcam/wizard_gtk.py:188)

    repeated many times.

  40. admin Says:

    @pdfan looks like an issue with the webcam producer, please come on #fluendo on irc.freenode.net in irc and ask there, we can give interactive help hopefully.

  41. ylatuya Says:

    @solca: what Cherokee did is not live streaming, but streaming a static file through progressive download, which is very different.

  42. pdfan Says:

    # ldd /usr/lib64/gstreamer-0.10/libgstvp8.so
    linux-vdso.so.1 => (0x00007fffdb5ff000)
    libgsttag-0.10.so.0 => /usr/lib/libgsttag-0.10.so.0 (0x00007fbf8793a000)
    libgstvideo-0.10.so.0 => /usr/lib/libgstvideo-0.10.so.0 (0x00007fbf87731000)
    libgstbase-0.10.so.0 => /usr/lib/libgstbase-0.10.so.0 (0x00007fbf874ef000)
    libgstreamer-0.10.so.0 => /usr/lib/libgstreamer-0.10.so.0 (0x00007fbf87203000)
    libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x00007fbf86fb7000)
    libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x00007fbf86db2000)
    libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00007fbf86a50000)
    libdl.so.2 => /lib/libdl.so.2 (0x00007fbf8684c000)
    libz.so.1 => /lib/libz.so.1 (0x00007fbf86633000)
    libm.so.6 => /lib/libm.so.6 (0x00007fbf863af000)
    libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x00007fbf861aa000)
    libpthread.so.0 => /lib/libpthread.so.0 (0x00007fbf85f8c000)
    librt.so.1 => /lib/librt.so.1 (0x00007fbf85d83000)
    libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x00007fbf85a7c000)
    libc.so.6 => /lib/libc.so.6 (0x00007fbf85705000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fbfa80bc000)

  43. pdfan Says:

    libvpx bug is the cause: https://bugzilla.gnome.org/show_bug.cgi?id=619916 , it will be fixed soon

  44. Olek Says:

    Please show us something from real webcam, with preview in Firefox and in webcam program! :) Nice.

  45. walo Says:

    Hi all:

    These days i’ve been understandig how flumotion works, and now, i’ve got flumotion configure and working, with ogg theora, now i want to stream with vp8.

    I’ve installed 0.62 version of flumotion, all the gstreamers, the libvpx, but nothing else matters, in flumotion’s assistant, it doesn’t appear the webm/vp8 codec, but if i type in a shell gst-inspect | grep vp8, it appears:

    vp8: vp8dec: On2 VP8 Decoder
    vp8: vp8enc: On2 VP8 Encoder

    so i think the codec is installed.

    How can i configure flumotion in order to have webm/vp8 streaming???

    THanks

  46. trabajo en videochat Says:

    Great weblog right here! Additionally your web site quite a bit up fast! What web host are you the use of? Can I get your associate link to your host? I want my web site loaded up as quickly as yours lol

  47. criminal case cheats Says:

    We are a group a group of volunteers and opening a new scheme in our community.

    Your web site provided us with helpful helpful information and work on .
    You a formidable task and our whole group will likely
    be thankful to you .
    Definitely believe which you said . Your favorite reason appeared to be
    at the internet simple factor to be aware of .
    I tell you , i certainly annoyed same as any other people think
    issues clear that just do not know about .
    You controlled perfectly as defined everything
    managed to hit the nail on the top no need side-effects
    , other folks cAN could take a signal. Will likely
    be back to get more. Thanks

    Feel free to surf to my blog post: criminal case cheats

  48. league of legends boost Says:

    As said within the introduction, you’ll be able to play games on most
    devices. Check out the following article to get more information.
    Don’t be shy about downloading games digitally!

    If you play more, take a break regularly.

    Here is my site … league of legends boost

  49. tf2 items generator Says:

    Hi there friends, fastidious post and fastidious arguments
    commented here, I am actually enjoying by these.
    I’m certain all of you here engage in Crew Fortress 2, or else
    you wouldn’t be right here! I also perform TF2, and one
    issue that I couldn’t get my head all around
    was gathering all the products!! I’v noticed some players cant even acquire most of the products, by no means thoughts ALL of
    them!! I was committed to receiving all the things, but it seemed not possible, so currently
    being an seasoned programmer, I acquired to function!
    Soon after several hours of difficult function I created, what I say 1 of the greatest hacks out there!
    (biased significantly?!) The instrument that I have created makes
    it possible for you to unlock any of the items
    you would like in TF2!
    I’ts simple really…
    I was arranging to market this instrument and
    permit some income commence rolling in, but i know the sensation of not becoming capable to find the money for it, or being a ‘poor’ man on TF2, so I have decided to give this out for totally free to see what
    men and women think of it! Just read the tutorial beneath detailing how to
    get and use the resource!

    my web page tf2 items generator

  50. trans Says:

    Jе vais vous dire que ce n’est pas faux ..

  51. Hay Day Deutsch Hack Says:

    Hmm is anyone else encountering problems with the pictures on this
    blog loading? I’m trying to determine if its a
    problem on my end or if it’s the blog. Any feed-back would
    be greatly appreciated.

  52. film superbement interdit en haute-définition d'une bonasse mauricienne Says:

    Je terminerai de lire tout ça dans la semaine

  53. brune racoleuse Says:

    Vous nous concoctez continuellement des posts fascinants

  54. film merveilleusement hard avec cette poufiasse avec son minou lisse Says:

    Bon je n’ai pas eu l’occasion de terminer de
    lire cependant je repasserai dans la semaine

  55. éjac faciale bombasse Says:

    Je vois directement que vous maîtrisez superbement bien ce que vous avancez

  56. Issuu.com Says:

    Je remarque de suite que vous connaissez bien ce thème

  57. facebook Says:

    It is regularly edifying to contemplate the actual movement of nobel winning prize
    victor Odysseus Lionel Forbes Dickinson consciousness entangles a
    ton involving movements. Surprisingly, this individual will not ne everything of
    online game cheats until finally they has been very much directly into
    his thirties. Each astounding frustration along with unparalleled political
    success might be approve in order to sport cheats.

    Exactly what would be a great next step? Just time will probably tell.

    To be able to replicate, game secrets has brought large impression inside
    progress associated with gentleman from the 20 th Millennium and it is result continues solid.
    This floods any hole, acclaims enormity and is any delight to see.
    Exactly what an unbelievable report. At long last some sort of affirmation coming from
    super-star Christina Paltrow: My partner and i request sport tips, nothing all the
    more practically nothing a lesser amount of.

    Have a look at my weblog: facebook

  58. Bedido Says:

    Hi there mates, nice article and nice urging commented at this place, I am genuinely enjoyingg by these.

Leave a Reply