词条 | Draft:Liquidsoap |
释义 |
| name = Liquidsoap | logo = | screenshot = | caption = Audio Streaming Language | developer = The Savonet Team | released = 2003 | latest_release_version = 1.1.1 | latest_release_date = {{release date and age|2013|05|08}} | programming language = OCaml | operating_system = Unix, Linux, Microsoft Windows and Mac OS X. | status = Active | genre = Streaming media | license = GPL | website = http://liquidsoap.fm/ }}{{Portal|Free and open-source software}} Liquidsoap is an audio programming language developed initially to produce audio and video source streams sent to an Icecast server.[1] The difference with other available tools is that Liquidsoap interprets a dedicated script language, which makes it very versatile and adaptable to a lot of various usages. The recent releases of Liquidsoap also include the possibility to interact with the local sound card or to output multimedia data to local files using various formats. Thus, Liquidsoap is not only a source client for Icecast, but a general purpose specialized audio language dedicated to the automation of audio and video processing and streaming. Liquidsoap is released under the GNU General Public License (GPL), is part of the Savonet project, and is developed in OCaml. The Savonet project also provides OCaml modules used for the various features supported by Liquidsoap. DesignDescribing an audio stream can be very complex: several inputs (files, stream relaying, sound card input) that can be combined in various ways (audio processing, mixing, track scheduling, fall-backs)[1]{{rp|3}} and finally be output in various other ways (several servers, contents and formats). Liquidsoap uses its own scripting language for configuration. StreamsIn the Liquidsoap language, audio and video streams are represented by variables. However, a stream is an infinite object, hence streams variable in Liquidsoap cannot be directly manipulated. Instead, they are processed through operators that wrap operations around them. Additionally, a stream is a high-order object{{clarification needed|date=April 2015}} that represents an infinite sequence of audio or video data samples but also metadata and breaks which represent tracks limits. For example, a stream can be defined from an external audio stream the following way: Later, if the user wants to apply a volume change to this stream, he uses the This code redefines the source Eventually, the stream is passed to an output, which can be either a local output, to the sound card, a JACK server, a file, etc.., or an output to a distant server such as an Icecast server: A functional languageThe Liquidsoap language is a functional language. Hence, functions can be used as variables. In particular, since streams are infinite objects, the only way to apply an operation on every element of the stream is to define a generic function that is applied to each element once it is generated. For instance, you can define an operation on each metadata carried by the stream: DynamicWhen executing a script, Liquidsoap parses each operators and definitions. From these objects, it generates an oriented graph of operators whose roots are the sources and leaves the outputs. This graph is executed on the reverse order: for each output, Liquidsoap asks for a complete frame of data. Then the output propagates this to the nodes below it, up to the roots of the graph where the source fills the frame. During this execution, the same frame object is passed to each operators in the graph, allowing a minimal number of copies of the audio and video data, which is important to maintain a correct efficiency. ApplicationsAn Internet radio station can be implemented using Liquidsoap and icecast or Airtime[4]. There has even been a suggestion Liquidsoap may be utilized on a Raspberry Pi to function as an STL codec encoder.[5] External links
References1. ^1 2 {{cite conference |url=https://hal.inria.fr/inria-00585728/document|title=Liquidsoap: A High-Level Programming Language for Multimedia Streaming.|last1=Baelde|first1=D.|last2=Beauxis|first2=R|last3=Mimram|first3=S.|date=2011 |conference=SOFSEM |conference-url= |editor= Cerná, Ivana |editor2=Gyimóthy, Tibor |editor3=Hromkovic, Juraj |editor4=Jefferey, Keith |editor5=Královic, Rastislav |editor6=Vukolic, Marko |editor7=Wolf, Stefan |others= |volume=6543 |edition= |book-title=SOFSEM 2011: Theory and Practice of Computer Science. . Lecture Notes in Computer Science|archive-url=https://web.archive.org/web/20181003181450/https://hal.inria.fr/inria-00585728/document |archive-date=3 October 2018 |location= Nový Smokovec, Slovakia |pages=99–110 |format= |id= |isbn=978-3-642-18381-2 |bibcode= |oclc= |doi= |access-date= |quote= |ref= |postscript=|publisher=Springer, Berlin, Heidelberg|language= |page= |at= |trans-title= }} [1][2][3]2. ^1 {{cite web|title=STLs and Raspberry Pis|url=https://www.dlineradio.co.uk/articles/stls-and-raspberry-pis/|access-date=3 October 2018|website=D/Line Radio|dead-url=no|archive-url=https://web.archive.org/web/20140624064714/http://dlineradio.co.uk/articles/stls-and-raspberry-pis|archive-date=24 June 2014|df=dmy-all|date=2015-01-08}} 3. ^1 {{cite web|url=http://fsmsh.com/3718|title=Create a radio station in five minutes with Airtime 2.0 on Ubuntu or Debian|access-date=3 October 2018|first=Daniel|last=James|website=Free Software Magazine|date=22 February 2012|dead-url=no|archive-url=https://web.archive.org/web/20171112023415/http://freesoftwaremagazine.com/articles/create_radio_station_five_minutes_airtime_20_ubuntu_or_debian/|archive-date=12 November 2017|df=dmy-all}} }}Category:Internet radio softwareCategory:Free network-related softwareCategory:Streaming softwareCategory:Cross-platform free software |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。