{"id":24527603,"url":"https://github.com/offlinehacker/flumotion","last_synced_at":"2025-07-20T02:10:38.811Z","repository":{"id":141496733,"uuid":"1848077","full_name":"offlinehacker/flumotion","owner":"offlinehacker","description":null,"archived":false,"fork":false,"pushed_at":"2011-08-25T15:41:13.000Z","size":12068,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-15T04:46:19.854Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.flumotion.net/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/offlinehacker.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-06-04T20:30:20.000Z","updated_at":"2016-12-22T13:24:12.000Z","dependencies_parsed_at":"2023-03-13T10:33:05.041Z","dependency_job_id":null,"html_url":"https://github.com/offlinehacker/flumotion","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offlinehacker%2Fflumotion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offlinehacker%2Fflumotion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offlinehacker%2Fflumotion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/offlinehacker%2Fflumotion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/offlinehacker","download_url":"https://codeload.github.com/offlinehacker/flumotion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243760345,"owners_count":20343626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-22T06:19:41.633Z","updated_at":"2025-03-15T16:33:22.368Z","avatar_url":"https://github.com/offlinehacker.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Flumotion - your streaming media server\n\nWHAT IT IS\n----------\n\nFlumotion is a streaming media server based on GStreamer and Twisted.\n\nThis is the first public development series of Flumotion.\nIt will probably still contain bugs, be difficult to install (since\nyou need recent dependencies), and cause you some headaches.\n\nOn the other hand, when it works and you are capturing your Firewire camera\non one machine, encoding to Theora on a second (with an overlay, of course),\nencoding the audio to Vorbis on a third, muxing to Ogg on a fourth, and then\nstreaming both audio and video from a fifth, audio only from a sixth,\nvideo only from a seventh, and capturing all three streams to disk from\nan eigth, you feel very good about yourself.\n\nAnd you also have too many computers.\n\nREQUIREMENTS\n------------\n\nYou need:\n\nGstreamer: you need GStreamer version 0.10.10 or higher. 0.10.11 or higher is\nstrongly recommended.\n\nFor 0.10.x:\n  GStreamer: 0.10.10 or higher\n  GStreamer plugins base 0.10.10 or higher\n  GStreamer plugins good 0.10.1 or higher\n  GStreamer python bindings 0.10.1 or higher\n\nPyGTK - 2.8.3 or higher\nPython - 2.4 or higher\nTwisted - 2.5.0 or higher\nKiwi - 1.9.13 or higher\nPyCairo- 1.2.0 or higher\n\nAnd depending on what codecs you want to use:\n\nlibvorbis 1.0.1 or higher\nlibogg 1.1 or higher\nlibtheora 1.0alpha3 or higher\n\nAnd if you want to build documentation:\n\nepydoc\n\nAnd if you want support for java applets:\n\ncortado\n\nISSUES\n------\n\nSome issues have been brought to our attention.  Please take note if you\nrun into them:\n- locales with a comma as a decimal point trigger problems in the XML parsing.\n  Run with LANG=C if you run into this\n- When encoding to Vorbis, prefer to use quality instead of absolute bitrate.\n  For absolute bitrate, for each sample rate a limited range of bitrates is\n  allowed.\n- You may see memory leaks if you use the soundcard or firewire source\n  components, and you use PyGTK prior to 0.8.5, or gst-python prior to 0.10.3,\n  so upgrading to these versions is strongly recommended.\n\nA FIRST TEST\n------------\n\nOnce everything is built and installed,\nyou can try this to start the server:\n\nterminal 1:\n  flumotion-manager -v -T tcp conf/managers/default/planet.xml\n\nterminal 2:\n  flumotion-worker -v -T tcp -u user -p test\n\nterminal 3:\n  flumotion-admin\n  Unselect 'Secure connection via SSL', press Next, then enter \"user\" and\n  \"test\" in the dialog.\n\n  Go through the wizard, chosing defaults.\n\n  Double-click the http component after the wizard has completed\n\nterminal 4:\n  gst-launch playbin2 uri=http://localhost:8800/ogg-audio-video/\n\n  Some systems may not have gst-launch, but only gst-launch-0.8 or\n  gst-launch-0.10, in that case you can substitute either of those commands.\n\n  Alternatively, you can use any theora-enabled network player to see the\n  stream.\n\nterminal 5:\n  for a in `seq 1 9`; do ( flumotion-tester http://localhost:8800/ogg-audio-video/ \u0026 ); done\n\n  This will throw 9 processes with 100 clients each at the server.  Hopefully,\n  all of them will return success at the end of their run!\n\n  We use 900 clients rather than a nice round number such as 1000 because, with\n  a standard unix system, you'll usually be limited to slightly under 1000\n  clients by default due to limits on open file descriptors (each client\n  requires a file descriptor). This limit is changable, but it's simpler to just\n  test with slightly fewer clients.\n\nDOCUMENTATION\n-------------\n\nA manual is being written.  You can access the current work in progress at\nhttp://www.flumotion.net/doc/flumotion/manual/en/trunk/html/\n\nFlumotion also comes with API documentation.  You need epydoc to build them.\n\nHACKING\n-------\n\nYou can use jhbuild with the flu.modules and jhbuildrc file provided in misc/\n\nThis will set up everything except for Twisted for you from source.\n\nSECURITY\n--------\n\nRead the security chapter in the aforementioned manual to get started.\n\nFlumotion uses SSL transport by default.  For this you need a PEM certificate\nfile.  For security reasons you should generate this yourself when installing\nfrom source.\n\nThe sample configuration file for the manager contains some htpasswd-style\ncrypted credentials, for a user named \"user\" and a password \"test\".  Use\nthese only for testing; make sure you change them before putting Flumotion\ninto production.\n\nThe sample configuration also only allows localhost connections, to make\nsure you change the configuration before moving it into production.\nRemove the host entry from the sample planet.xml file to allow other hosts\nto connect.\n\nABOVE AND BEYOND\n----------------\n\nYou can subscribe to our development list.  Information is at\nhttp://lists.fluendo.com/mailman/listinfo/flumotion-devel\n\nYou can visit us on IRC: #fluendo on irc.freenode.org\n\nYou can visit our trac installation for the Wiki, source browsing and\nticket tracking:\nhttps://core.fluendo.com/flumotion/trac\n\nLICENSING\n---------\n\nThis version of the Flumotion Streaming Server is dual-licensed.\n\nThe GPL applies to all code files shipped with this version.\nSee LICENSE.GPL\n\nThe files may only be used together with or as part of the Flumotion\nAdvanced Streaming Server:\n- under the terms of the Flumotion Advanced Streaming Server Commercial\n  License Agreement; and\n- when you have purchased or hold a valid Flumotion Advanced Streaming Server\n  license.\n\nIf the conditions of this licensing strategy are not clear to you, please\ncontact Thomas Vander Stichele (thomas@fluendo.com).\n\nTESTING\n-------\nFor testing purposes of your streams, you can run some GStreamer pipelines\nto verify if things work as they should.\n\n- multipart/jpeg stream (video only):\n  gst-launch -v gnomevfssrc location=http://localhost:8802 ! multipartdemux ! jpegdec ! xvimagesink\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fofflinehacker%2Fflumotion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fofflinehacker%2Fflumotion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fofflinehacker%2Fflumotion/lists"}