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:
- libvpx from webmproject
- git master of gstreamer, gst-plugins-base, gst-plugins-bad
- git
of gst-plugins-good from my github repositorymaster of gst-plugins-good git of Flumotion from my github repositorysvn trunk of Flumotion from https://code.fluendo.com/flumotion/trac/wiki/Documentation/DeveloperIntroduction#getting-your-development-environment-installed
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/
May 21st, 2010 at 1:33 pm
Awesomeness to the nth degree!
May 21st, 2010 at 1:48 pm
Nice!
May 21st, 2010 at 1:52 pm
great!!
May 21st, 2010 at 1:59 pm
[...] 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. [...]
May 21st, 2010 at 2:30 pm
Brilliant!
May 21st, 2010 at 4:14 pm
Would it be possible to stream to an icecast2 with vp8???????
thanks.
May 21st, 2010 at 4:19 pm
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.
May 21st, 2010 at 4:23 pm
Great job guys! It makes me proud to be a Flumotion employee.
May 21st, 2010 at 5:16 pm
Where’s the PR?
Just joking, good work!
May 21st, 2010 at 7:21 pm
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
May 22nd, 2010 at 3:00 am
Woho, this is cool Zaheer.
Congrats
May 22nd, 2010 at 6:06 am
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
May 22nd, 2010 at 6:06 am
This is great. Are there any implications for adaptive bitrate streaming?
May 22nd, 2010 at 5:34 pm
That’s excellent (and very quick) work!
Thanks for this, I can’t wait to see all the code unleashed in stable releases.
May 24th, 2010 at 11:18 am
[...] 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 [...]
May 24th, 2010 at 12:59 pm
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’?
May 24th, 2010 at 1:03 pm
all packages are from the git provided in ths page
May 24th, 2010 at 1:04 pm
so I guess I might have missed some configure args concerning webm/vp8
May 24th, 2010 at 1:04 pm
pdfan, do you have /usr/lib/libvpx.so on your system?
May 24th, 2010 at 1:43 pm
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.
May 24th, 2010 at 7:51 pm
I need support webm on my Apache, how to make this?
May 24th, 2010 at 7:54 pm
@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.
May 24th, 2010 at 11:33 pm
[...] 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 [...]
May 25th, 2010 at 7:41 am
[...] 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 [...]
May 25th, 2010 at 4:32 pm
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)
May 25th, 2010 at 9:26 pm
@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
May 26th, 2010 at 1:40 am
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)
May 26th, 2010 at 1:44 am
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 >
May 26th, 2010 at 1:46 am
how to set flumotion to use gst-plugins-good only and not use gst-plugins-base/bad/ugly
May 26th, 2010 at 5:24 am
First was Cherokee HTTP server:
http://www.alobbs.com/1386/Streaming_WebM_VP8_one_day_later.html
Anyway you rock too!
May 26th, 2010 at 6:26 am
========= 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
May 26th, 2010 at 6:26 am
========= 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
May 26th, 2010 at 6:33 am
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.
May 26th, 2010 at 6:34 am
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.
May 26th, 2010 at 6:36 am
maybe I missed a patch that set the is-live property for webm?
May 26th, 2010 at 6:42 am
======== 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?
May 26th, 2010 at 6:52 am
# 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
May 26th, 2010 at 7:26 am
@pdfan
cd gst-plugins-good ; git checkout webmlive
May 26th, 2010 at 8:27 am
# 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.
May 26th, 2010 at 8:30 am
@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.
May 26th, 2010 at 11:27 am
@solca: what Cherokee did is not live streaming, but streaming a static file through progressive download, which is very different.
May 26th, 2010 at 1:40 pm
# 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)
May 28th, 2010 at 3:04 am
[...] 我们的发布在社区中引发了关于设计以及开发版质量的讨论。我们针对 VP8 进行了大量测试,结果该编码完全可以胜任或超越其他领先编码的质量。从本周起,WebM 幕后的工程师们将在本博客定期发表关于如何使该方案中的 VP8 视频编码与 Vorbis 音频编码取得最优化的利用。我们相信开放的开发模式将带来额外的改进,这些改进将进一步优化 WebM。事实上,开放开发的力量已经显现,开发者提交 patch,Flumotion 在项目启动仅三天内就在他们的产品中实现了 直播流支持。 [...]
May 28th, 2010 at 12:21 pm
libvpx bug is the cause: https://bugzilla.gnome.org/show_bug.cgi?id=619916 , it will be fixed soon
June 1st, 2010 at 12:11 am
Please show us something from real webcam, with preview in Firefox and in webcam program!
Nice.
June 13th, 2010 at 9:54 am
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
December 11th, 2010 at 7:11 pm
Hello,
We are new to Flumotion and streaming and are looking for anyone who has experience with it to help us set up the software and maintain it on a long term base. I see that there are guys here who may be able to help us.
You may contact me at willy(at)payservices.com
Thanks
Willy
April 28th, 2012 at 10:28 am
tv…
[...]Zaheer Abbas Merali » Blog Archive » WebM and VP8 streaming live from Flumotion[...]…
April 24th, 2013 at 9:45 am
It’s like you understand my head! You appear to comprehend a great deal around this, just like you published a guidebook within it as well. I believe for you to is able to do with many Per-cent for you to strain the message household a bit, even so rather than that will, that is spectacular blog. An incredible read. I am going to definitely be again.
April 29th, 2013 at 4:36 am
Sweet blog! I found it while browsing on Yahoo News.
Do you have any suggestions on how to get listed in Yahoo News?
I’ve been trying for a while but I never seem to get there! Many thanks
Feel free to visit my blog :: Phen375 Reality
May 7th, 2013 at 9:36 pm
Remarkable things here. I’m very satisfied to see your article. Thank you so much and I’m having a look ahead to contact you. Will you please drop me a e-mail?