<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Web, Technologies, IA, Vidéo... - Analyse, Streaming server, Vidéo</title><link href="https://www.alkannoide.com/" rel="alternate"/><link href="https://www.alkannoide.com/feeds/analyse-streaming-server-video.atom.xml" rel="self"/><id>https://www.alkannoide.com/</id><updated>2013-07-05T10:51:00+02:00</updated><entry><title>How to create and architecture an open-source and/or free video platform ?</title><link href="https://www.alkannoide.com/2013/07/05/how-to-create-and-architecture-an-open-source-andor-free-video-platform/" rel="alternate"/><published>2013-07-05T10:51:00+02:00</published><updated>2013-07-05T10:51:00+02:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2013-07-05:/2013/07/05/how-to-create-and-architecture-an-open-source-andor-free-video-platform/</id><summary type="html">&lt;p&gt;This post is the result of a sort of challenge. The objective is to create an architecture to generate, manage and deliver HTTP streaming videos using free and/or open-source tools and/or applications. It need to answer to many questions : tools must be open source or free; reliability of …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This post is the result of a sort of challenge. The objective is to create an architecture to generate, manage and deliver HTTP streaming videos using free and/or open-source tools and/or applications. It need to answer to many questions : tools must be open source or free; reliability of the platform and the ability to scale up quickly. The architecture can be split in two parts : the content preparation and the delivery. I will expose an overview for each part of the architecture. Then I will list differents tools you can use. To finish, I will give you in details the architecture I will choose to deploy. But to realize this, few or some developments can be required, the language you will use, will be your choice. The operating system will be on Linux.&lt;!--more--&gt;&lt;/p&gt;
&lt;h2&gt;Content preparation&lt;/h2&gt;
&lt;p&gt;Here is the part to prepare the content. It will be separate in 3 differents items, I call them services :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;span style="line-height: 16px;"&gt;Manager&lt;/span&gt;&lt;/strong&gt;&lt;span style="line-height: 16px;"&gt; this service will orchestrate all the tasks. In this part, I choose the self-development but another option is possible (see below).&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bus&lt;/strong&gt; the service bus will deliver all messages between others services&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Worker &lt;/strong&gt;each worker will be in charge of one specific task : encode, upload, download, package.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of these is exposed in this figure :&lt;/p&gt;
&lt;h3&gt;&lt;a href="/images/2013/06/how_to_open_arch_video_step1.png"&gt;&lt;img src="/images/2013/06/how_to_open_arch_video_step1.png" class="alignnone wp-image-1506" width="650" height="354" alt="how_to_open_arch_video_step1" /&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;The generated assets are transfered in the delivery zone storage.&lt;/p&gt;
&lt;h3&gt;Service : Manager&lt;/h3&gt;
&lt;p&gt;Here is the intelligence of the system. You have two choice :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="line-height: 16px;"&gt;&lt;span style="line-height: 16px;"&gt;create your own system. In this case, t&lt;/span&gt;&lt;/span&gt;he manager need some developments, you can choose the language you want : Python, PHP, NodeJS, Java, Perl, etc...&lt;/li&gt;
&lt;li&gt;using a system already developed. I think about Kaltura platform for example. This option need some integration and learning time if you want to use it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I recommend to associate your code to a database. The database will save the metadata of your video assets and some configurations datas.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="line-height: 16px;"&gt;relational database : &lt;/span&gt;&lt;a href="http://www.mysql.com/" style="line-height: 16px;"&gt;MySQL&lt;/a&gt;&lt;span style="line-height: 16px;"&gt;, &lt;/span&gt;&lt;a href="http://www.postgresql.org/" style="line-height: 16px;"&gt;PostgreSQL&lt;/a&gt;&lt;span style="line-height: 16px;"&gt;, &lt;/span&gt;&lt;a href="http://www.sqlite.org/" style="line-height: 16px;"&gt;SQLLite&lt;/a&gt;, ...&lt;/li&gt;
&lt;li&gt;non-relational database : &lt;a href="http://redis.io/"&gt;Redis&lt;/a&gt;, ...&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Service : Bus&lt;/h3&gt;
&lt;p&gt;The service bus will use the concept of &lt;a href="http://en.wikipedia.org/wiki/Message_queue"&gt;Message queue&lt;/a&gt;. That is very interesting because it helps to manage more easily the communication between each application : you send the message and the library or the system make the rest. There are many tools in the open source world :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.zeromq.org/"&gt;ZeroMQ&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.gearman.org/"&gt;Gearman&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.rabbitmq.com/"&gt;RabbitMQ&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For each message queue solutions, you will find connectors for separates languages (C, C++, PHP, Python, Perl, ...). Depends on the message queue solution you choose, you need to make more or less developments.&lt;/p&gt;
&lt;h3&gt;Service : Worker&lt;/h3&gt;
&lt;p&gt;Workers services are here to make specific tasks :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;encode&lt;/strong&gt; : this service is based on the most famous open source tools in the encoding's world : &lt;a href="http://ffmpeg.org/"&gt;ffmpeg&lt;/a&gt; and its differents libraries (&lt;a href="http://ffmpeg.org/trac/ffmpeg/wiki/AACEncodingGuide"&gt;libfaac&lt;/a&gt;, &lt;a href="http://www.videolan.org/developers/x264.html"&gt;libx264&lt;/a&gt;, ...). But you can use &lt;a href="http://www.mplayerhq.hu/design7/news.html"&gt;mencoder&lt;/a&gt; too.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;package&lt;/strong&gt; : the objective is not to encode the video asset, but to change the format. Some tools are available :&lt;/li&gt;
&lt;li&gt;&lt;a href="http://gpac.wp.mines-telecom.fr/"&gt;MP4Box&lt;/a&gt; : to manage MP4 files or MPEG-DASH&lt;/li&gt;
&lt;li&gt;&lt;a href="http://help.adobe.com/en_US/HTTPStreaming/1.0/Using/WSaeac10ab694095a12a9a3a7d12823cda643-7ffc.html"&gt;f4fpackager&lt;/a&gt; : to generate HDS, you will need to deploy the HDS module for Apache in the delivery platform&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/iliya-gr/mediasegmenter"&gt;mediasegmenter&lt;/a&gt; : to generate HLS&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mistserver.org/index.php?title=FLV2DTSC"&gt;FLV2DTSC&lt;/a&gt; : to generate DTSC if you want to use &lt;a href="http://www.mistserver.org"&gt;MistServer&lt;/a&gt; (&lt;a href="https://www.alkannoide.com/2013/04/18/mistserver-optimize-the-http-delivery-via-caching/" title="Mistserver – Optimize the HTTP delivery via caching"&gt;a solution I told in previous articles&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;transferts&lt;/strong&gt; : at the end of a process, you will need to transfert the asset to a destination. Transfert workers is able to use some protocols : FTP, SCP, HTTP, etc... So you can push the content to the delivery storage.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All of this services can be in the same physical server. If you have more assets to manage and generate, it is possible very easily to scale up. Workers can be deploy on dedicated server and the bus service is here to manage the network. You can add another service manager to add redundance. Thoses updates will have a impact on the reliability of the platform.&lt;/p&gt;
&lt;p&gt;Here is one solution which include the most part of those precepts : &lt;a href="http://www.transcodem.com/"&gt;Transcodem&lt;/a&gt;. You can fork this project on GitHub too.&lt;/p&gt;
&lt;h2&gt;Delivery&lt;/h2&gt;
&lt;p&gt;Ok, now your assets are ready to deliver and are in the delivery storage. In our architecture, we want to stream content based on HTTP protocol (HDS, HLS, Smooth Streaming). You can start with one physical server, but all tools and the architecture I expose can scale up easily to many physicals servers. We have many tools to help us :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="line-height: 16px;"&gt;HTTP webservers : &lt;a href="http://httpd.apache.org/"&gt;Apache&lt;/a&gt;, &lt;a href="http://nginx.org/"&gt;NGinx&lt;/a&gt;, &lt;a href="http://www.lighttpd.net/"&gt;Lighttpd&lt;/a&gt; and differents plugins (&lt;a href="http://help.adobe.com/en_US/HTTPStreaming/1.0/Using/WS7b362c044b7dd076-735e76121260080a90e-8000.html"&gt;module origin from Adobe&lt;/a&gt; to stream HDS for example)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Media servers : &lt;a href="http://www.red5.org/"&gt;Red5&lt;/a&gt;, &lt;a href="http://www.mistserver.org"&gt;MistServer&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And if your platform will support a high load, you can use proxy cache solution like &lt;a href="https://www.varnish-cache.org/"&gt;Varnish&lt;/a&gt;. I gave in a previous post a solution to &lt;a href="https://www.alkannoide.com/2013/04/18/mistserver-optimize-the-http-delivery-via-caching/" title="Mistserver – Optimize the HTTP delivery via caching"&gt;deliver content with Varnish and MistServer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/2013/07/how_to_open_arch_video_step2.png"&gt;&lt;img src="/images/2013/07/how_to_open_arch_video_step2.png" class="aligncenter wp-image-1582" width="624" height="271" alt="how_to_open_arch_video_step2" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To finish, you can split the two part or merge them in one infrastructure. I am opened to talk about this architecture and which tools we can use to deploy it.&lt;/p&gt;</content><category term="Analyse, Streaming server, Vidéo"/><category term="architecture"/><category term="http"/><category term="message queue"/><category term="mistserver"/><category term="streaming"/><category term="varnish"/></entry><entry><title>Mistserver - Optimize the HTTP delivery via caching</title><link href="https://www.alkannoide.com/2013/04/18/mistserver-optimize-the-http-delivery-via-caching/" rel="alternate"/><published>2013-04-18T16:24:00+02:00</published><updated>2013-04-18T16:24:00+02:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2013-04-18:/2013/04/18/mistserver-optimize-the-http-delivery-via-caching/</id><summary type="html">&lt;p&gt;In the previous post, we looked the &lt;a href="https://www.alkannoide.com/2013/04/11/mistserver-new-features-for-the-version-1-1/" title="MistServer – new features for the version 1.1"&gt;new features of MistServer (version 1.1).&lt;/a&gt;&lt;br&gt;
&lt;a href="/images/2013/04/varnish.png"&gt;&lt;img src="/images/2013/04/varnish.png" class="alignright size-full wp-image-1392" width="200" height="75" alt="varnish" /&gt;&lt;/a&gt;Today, I expose an idea exposed by a friend &lt;a href="http://www.eltrovemo.com/"&gt;Nicolas Weil&lt;/a&gt;. We talked about the content caching for an architecture based on Mistserver especially for HTTP based format. We thought about &lt;a href="https://www.varnish-cache.org/"&gt;Varnish&lt;/a&gt;, an &lt;a href="http://en.wikipedia.org/wiki/Varnish_(software)"&gt;HTTP accelerator&lt;/a&gt;. The …&lt;/p&gt;</summary><content type="html">&lt;p&gt;In the previous post, we looked the &lt;a href="https://www.alkannoide.com/2013/04/11/mistserver-new-features-for-the-version-1-1/" title="MistServer – new features for the version 1.1"&gt;new features of MistServer (version 1.1).&lt;/a&gt;&lt;br&gt;
&lt;a href="/images/2013/04/varnish.png"&gt;&lt;img src="/images/2013/04/varnish.png" class="alignright size-full wp-image-1392" width="200" height="75" alt="varnish" /&gt;&lt;/a&gt;Today, I expose an idea exposed by a friend &lt;a href="http://www.eltrovemo.com/"&gt;Nicolas Weil&lt;/a&gt;. We talked about the content caching for an architecture based on Mistserver especially for HTTP based format. We thought about &lt;a href="https://www.varnish-cache.org/"&gt;Varnish&lt;/a&gt;, an &lt;a href="http://en.wikipedia.org/wiki/Varnish_(software)"&gt;HTTP accelerator&lt;/a&gt;. The idea is to keep in cache the different fragments which are generated by MistServer. This article will not talk about the RTMP or TS part, theses protocols are not HTTP based.&lt;/p&gt;
&lt;p&gt;To make this test, I use on the same server MistServer and Varnish. Here is the architecture.&lt;br&gt;
&lt;a href="/images/2013/04/varnish-mist.png"&gt;&lt;img src="/images/2013/04/varnish-mist.png" class="size-full wp-image-1437 alignnone" width="597" height="366" alt="varnish-mist" /&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;!--more--&gt;

&lt;p&gt;As you look, my Mistserver HTTP based protocols are on 8081 port. The operating system is Ubuntu and I follow this tutorial to &lt;a href="https://www.varnish-cache.org/installation/ubuntu"&gt;install Varnish&lt;/a&gt;. Then I setup Varnish and fill which is his backend. Open the &lt;em&gt;/etc/varnish/default.vcl&lt;/em&gt; and update thoses lines :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;backend default {
    .host = &amp;quot;127.0.0.1&amp;quot;;
    .port = &amp;quot;8081&amp;quot;;
}
sub vcl_recv {
    set req.grace = 30s;
    return (lookup);
}
sub vcl_pipe {
    return (pipe);
}
sub vcl_pass {
    return (pass);
}
sub vcl_init {
    return (ok);
}
sub vcl_fini {
    return (ok);
}
sub vcl_deliver {
        if (obj.hits &amp;gt; 0) {
                set resp.http.X-Cache = &amp;quot;cached&amp;quot;;
        } else {
                set resp.http.X-Cache = &amp;quot;uncached&amp;quot;;
        }
        return (deliver);
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;To help on debug,  I add in vcl_deliver a &lt;em&gt;X-Cache&lt;/em&gt; header with values &lt;em&gt;cached - uncached&lt;/em&gt;. HTTP files will be in cache during 30 seconds. You can change the value very easier.&lt;/p&gt;
&lt;p&gt;You can optimize the configuration but it's not the object of that article and you can find many informations on the web.&lt;/p&gt;
&lt;p&gt;To check the good configuration,  get a content with curl command line. Be careful, we are not testing to call the MistServer but the Varnish cache, so we will point to the port 80 not 8081.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;curl&lt;span class="w"&gt; &lt;/span&gt;-I&lt;span class="w"&gt; &lt;/span&gt;http://ip_address/dynamic/mystream/manifest.f4m
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Check the HTTP header :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kr"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="m"&gt;1.1&lt;/span&gt; &lt;span class="m"&gt;200&lt;/span&gt; &lt;span class="ne"&gt;OK&lt;/span&gt;
&lt;span class="na"&gt;Cache-Control&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;no-cache&lt;/span&gt;
&lt;span class="na"&gt;Content-Type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;text/xml&lt;/span&gt;
&lt;span class="na"&gt;X-UID&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;0f4405cc8b4b43312a8f35d7ba0b043e_sintel_dynamic&lt;/span&gt;
&lt;span class="na"&gt;Content-Length&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;815&lt;/span&gt;
&lt;span class="na"&gt;Accept-Ranges&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;bytes&lt;/span&gt;
&lt;span class="na"&gt;Date&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;Thu, 11 Apr 2013 14:30:19 GMT&lt;/span&gt;
&lt;span class="na"&gt;Age&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;0&lt;/span&gt;
&lt;span class="na"&gt;Connection&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;keep-alive&lt;/span&gt;
&lt;span class="na"&gt;X-Cache&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;uncached&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can see the uncached value on the last line.&lt;br&gt;
If you make a new call, before the end of the 30s of cache, the content will be in Varnish cache and MistServer is not called :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="kr"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="m"&gt;1.1&lt;/span&gt; &lt;span class="m"&gt;200&lt;/span&gt; &lt;span class="ne"&gt;OK&lt;/span&gt;
&lt;span class="na"&gt;Cache-Control&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;no-cache&lt;/span&gt;
&lt;span class="na"&gt;Content-Type&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;text/xml&lt;/span&gt;
&lt;span class="na"&gt;X-UID&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;0f4405cc8b4b43312a8f35d7ba0b043e_sintel_dynamic&lt;/span&gt;
&lt;span class="na"&gt;Content-Length&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;815&lt;/span&gt;
&lt;span class="na"&gt;Accept-Ranges&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;bytes&lt;/span&gt;
&lt;span class="na"&gt;Date&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;Thu, 11 Apr 2013 14:30:21 GMT&lt;/span&gt;
&lt;span class="na"&gt;Age&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;2&lt;/span&gt;
&lt;span class="na"&gt;Connection&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;keep-alive&lt;/span&gt;
&lt;span class="na"&gt;X-Cache&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="l"&gt;cached&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;This is the magic of HTTP caching ! ;-) Mistserver is not used when content is cached by Varnish.&lt;/p&gt;
&lt;p&gt;You can check too with the varnishlog tools to see if Varnish call the backend or not.&lt;/p&gt;
&lt;p&gt;If you want to use this kind of configuration for production for example, you can apply this kind of architecture : multiple varnish caches (called edges), as physical servers, in front of Mistserver (called origin).&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/2013/04/varnish_mist_multiple.png"&gt;&lt;img src="/images/2013/04/varnish_mist_multiple.png" class="size-full wp-image-1442 alignnone" width="628" height="410" alt="varnish_mist_multiple" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can divide by many the load on the origin server and Varnish was created for this kind of usage.&lt;/p&gt;
&lt;p&gt;To finish, you can apply this kind of configuration for VoD or Live. For VoD, the cache lifetime can be more than 10 minutes, for live, I advise a short cache lifetime, the reason are simple to understand.&lt;/p&gt;
&lt;p&gt;Have fun !&lt;/p&gt;</content><category term="Analyse, Streaming server, Vidéo"/><category term="architecture"/><category term="cache"/><category term="mistserver"/><category term="varnish"/></entry><entry><title>MistServer - new features for the version 1.1</title><link href="https://www.alkannoide.com/2013/04/11/mistserver-new-features-for-the-version-1-1/" rel="alternate"/><published>2013-04-11T20:45:00+02:00</published><updated>2013-04-11T20:45:00+02:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2013-04-11:/2013/04/11/mistserver-new-features-for-the-version-1-1/</id><summary type="html">&lt;p&gt;&lt;a href="/images/2012/12/mistserver.png"&gt;&lt;img src="/images/2012/12/mistserver.png" class="alignleft wp-image-1087" width="151" height="151" alt="mistserver" /&gt;&lt;/a&gt;I made last year a post to introduce a new streaming server : &lt;a href="https://www.alkannoide.com/2012/12/10/mistserver-a-new-multimedia-streaming-server-first-overview/" title="Mistserver – a new multimedia streaming server – First overview"&gt;MistServer&lt;/a&gt;. From this article, I follow all the updates made by the team. &lt;a href="http://mistserver.org/?news=7" target="_blank"&gt;The DDVTech team released the server in version 1.1 the 31th March.&lt;/a&gt; The &lt;a href="http://mistserver.org/index.php?title=Mistserver_Changelog" target="_blank"&gt;changelog&lt;/a&gt; is available too.&lt;/p&gt;
&lt;p&gt;Some important formats were updated in this …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="/images/2012/12/mistserver.png"&gt;&lt;img src="/images/2012/12/mistserver.png" class="alignleft wp-image-1087" width="151" height="151" alt="mistserver" /&gt;&lt;/a&gt;I made last year a post to introduce a new streaming server : &lt;a href="https://www.alkannoide.com/2012/12/10/mistserver-a-new-multimedia-streaming-server-first-overview/" title="Mistserver – a new multimedia streaming server – First overview"&gt;MistServer&lt;/a&gt;. From this article, I follow all the updates made by the team. &lt;a href="http://mistserver.org/?news=7" target="_blank"&gt;The DDVTech team released the server in version 1.1 the 31th March.&lt;/a&gt; The &lt;a href="http://mistserver.org/index.php?title=Mistserver_Changelog" target="_blank"&gt;changelog&lt;/a&gt; is available too.&lt;/p&gt;
&lt;p&gt;Some important formats were updated in this new version : HLS and Smooth Streaming, HTTP Progressive. They added too MPEG TS protocol. The interface get some updates too for a better management. And the most important, the server gets many improvements.&lt;!--more--&gt;&lt;/p&gt;
&lt;h2&gt;&lt;!--more--&gt;The interface&lt;/h2&gt;
&lt;p&gt;The main update on the interface is for the protocol section. The &lt;strong&gt;Limits&lt;/strong&gt; are now only available in the LTS (you need to buy it, but it's only 299€).&lt;/p&gt;
&lt;p&gt;The list of the protocols available is more cleanest.&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/2013/04/protocol_index.png"&gt;&lt;img src="/images/2013/04/protocol_index.png" class="aligncenter wp-image-1374" width="641" height="192" alt="protocol_index" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To add or edit a protocol, you will get a specific form. You can choose HTTP or HTTP based protocol, RTMP and TS. We will see the different protocols below.&lt;/p&gt;
&lt;h2&gt;&lt;a href="/images/2013/04/protocol_edit.png"&gt;&lt;img src="/images/2013/04/protocol_edit.png" width="642" height="179" alt="protocol_edit" /&gt;&lt;/a&gt;Formats supported&lt;/h2&gt;
&lt;p&gt;In this version,  new formats are now supported or the performance to deliver was improved.  MistServer interface is very easy to use and manage if you want to make a try. For the HTTP based protocol, you need to create first a HTTP protocol on a specific interface and port.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTTP Dynamic Streaming&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This format was already available in previous version, but the template of the url changed :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nl"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//[&lt;/span&gt;&lt;span class="n"&gt;ip_address&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;]/&lt;/span&gt;&lt;span class="k"&gt;dynamic&lt;/span&gt;&lt;span class="o"&gt;/[&lt;/span&gt;&lt;span class="n"&gt;stream_name&lt;/span&gt;&lt;span class="o"&gt;]/&lt;/span&gt;&lt;span class="n"&gt;manifest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;f4m&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can test the content with &lt;a href="http://www.opensourcemediaframework.com/"&gt;an OSMF player.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTTP Smooth Streaming&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The Microsoft's protocol works now well with the last version. I tested it 3 months ago but the video doesn't stream well (lags, buffering, etc...). It's now fixed.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nl"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//[&lt;/span&gt;&lt;span class="n"&gt;ip_address&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;]/&lt;/span&gt;&lt;span class="n"&gt;smooth&lt;/span&gt;&lt;span class="o"&gt;/[&lt;/span&gt;&lt;span class="n"&gt;stream_name&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ism&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;Manifest&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Here is a &lt;a href="http://player.smooth.vertigo.com"&gt;distant Smooth player&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTTP Live Streaming&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This format is used by the iOS devices (iPhone / iPad / iPod) and by some Android devices.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nl"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//[&lt;/span&gt;&lt;span class="n"&gt;ip_address&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;]/&lt;/span&gt;&lt;span class="n"&gt;hls&lt;/span&gt;&lt;span class="o"&gt;/[&lt;/span&gt;&lt;span class="n"&gt;stream_name&lt;/span&gt;&lt;span class="o"&gt;]/&lt;/span&gt;&lt;span class="k"&gt;index&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;m3u8&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can test your content with an Quicktime player or a &lt;a href="http://www.videolan.org/vlc/"&gt;VLC player&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This format is currently in progress. The dev team is improving the performance of this format.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTTP Progressive&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;With MistServer, you can deliver too the content via HTTP Progressive download. You just need to call the movie as a FLV file or MP3 file (for audio only).&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nl"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//[&lt;/span&gt;&lt;span class="n"&gt;ip_address&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;]/[&lt;/span&gt;&lt;span class="n"&gt;stream_name&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;flv&lt;/span&gt;
&lt;span class="nl"&gt;http&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//[&lt;/span&gt;&lt;span class="n"&gt;ip_address&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;]/[&lt;/span&gt;&lt;span class="n"&gt;stream_name&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mp3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can read flv with a Flash based player. Or, &lt;a href="https://groups.google.com/d/msg/mistserver/eL_5FBhDvWE/gdr6LMCfXVwJ"&gt;I read a specific trick&lt;/a&gt; (on Mist mailing list) for Android, you just make a \&amp;lt;a&amp;gt; link pointing to the flv. Android detects MimeType and suggests one of the player.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RTMP&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;RTMP is a format provided by Adobe. You can read RTMP stream with some players.&lt;br&gt;
In MistServer interface, add a new protocol RTMP. By default, the port is 1935.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nl"&gt;rtmp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//[&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="cm"&gt;/*/[streamname]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;TS&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;As the CTO of DDVTech told me, TS is a raw stream. You can deliver a single stream once you are connected to. In the interface, you need to provide which stream you want to deliver.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="nl"&gt;tcp&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//[&lt;/span&gt;&lt;span class="n"&gt;server&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="o"&gt;]/&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;You can try the stream with VLC for example.&lt;/p&gt;
&lt;p&gt;To conclude, this version makes available some good functionalities and the team help us quickly on the different communication channels (GoogleGroup, IRC). To avoid the load, we can make some optimization in the architecture based on Mist. We will see it in a next post. Have fun when you test it !&lt;/p&gt;
&lt;p&gt;Update 18/04/2013 : DDVTech &lt;a href="http://mistserver.org/?news=8"&gt;published a version 1.1.1&lt;/a&gt; with some bug fixes (&lt;a href="http://mistserver.org/index.php?title=Mistserver_Changelog"&gt;changelog&lt;/a&gt;).&lt;/p&gt;</content><category term="Analyse, Streaming server, Vidéo"/><category term="mistserver"/><category term="streaming"/></entry><entry><title>Precision about HTTP streaming format in Adobe Media Server</title><link href="https://www.alkannoide.com/2013/01/04/precision-about-http-streaming-format-in-adobe-media-server/" rel="alternate"/><published>2013-01-04T14:31:00+01:00</published><updated>2013-01-04T14:31:00+01:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2013-01-04:/2013/01/04/precision-about-http-streaming-format-in-adobe-media-server/</id><summary type="html">&lt;p&gt;&lt;img src="/images/2012/10/ams.png" class="size-full wp-image-998 alignright" width="80" height="80" alt="ams" /&gt; To begin this new year, I make this post on a subject which can introduce misunderstandings. Previously, Adobe named it streaming server : Flash Media Server (aka FMS) &lt;a href="http://help.adobe.com/en_US/flashmediaserver/devguide/index.html"&gt;v4.5&lt;/a&gt;. In october 2012, Adobe release a new version and recalled the server: Adobe Media Server (aka AMS) &lt;a href="http://help.adobe.com/en_US/adobemediaserver/devguide/index.html"&gt;v5.0.1&lt;/a&gt;. Some …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img src="/images/2012/10/ams.png" class="size-full wp-image-998 alignright" width="80" height="80" alt="ams" /&gt; To begin this new year, I make this post on a subject which can introduce misunderstandings. Previously, Adobe named it streaming server : Flash Media Server (aka FMS) &lt;a href="http://help.adobe.com/en_US/flashmediaserver/devguide/index.html"&gt;v4.5&lt;/a&gt;. In october 2012, Adobe release a new version and recalled the server: Adobe Media Server (aka AMS) &lt;a href="http://help.adobe.com/en_US/adobemediaserver/devguide/index.html"&gt;v5.0.1&lt;/a&gt;. Some acronym used in FMS are the same in AMS, but this is not the same "products" (e.g. PHLS). In this post, I will give some input on live streaming format and especially about security applied on.&lt;!--more--&gt;&lt;/p&gt;
&lt;h2&gt;HTTP Dynamic Streaming (HDS)&lt;/h2&gt;
&lt;p&gt;Adobe Media Server is abled to stream (and so repack) 3 HDS formats :&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;HTTP Dynamic Streaming (HDS)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This is the common &lt;a href="http://www/images.adobe.com/www.adobe.com/content/dam/Adobe/en/products/hds-dynamic-streaming/pdfs/hds_datasheet.pdf"&gt;HDS&lt;/a&gt; format created by Adobe. A HDS content contains 1 XML based manifest file (.f4m), 1 index file (.f4x) and 1 file contained the fragments (.f4f).&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Protected HTTP Dynamic Streaming (PHDS)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;PHDS adds encryption on the content without using a DRM system like Adobe Access. The content is only encrypted, there is no right management.&lt;/p&gt;
&lt;p&gt;To improve your security, you can use too SWF verification. One or more players are declared in a whitelist on the server and only this players can stream contents.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;HTTP Dynamic Streaming associate to &lt;a href="http://www.adobe.com/products/adobe-access.html"&gt;Adobe Access&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;To apply some rights on your content, you apply some rules via a DRM system. The Adobe Access license server is optimized to use with HDS. You need to declare on the server some informations from the license server and which DRM policy you want to use.&lt;/p&gt;
&lt;h2&gt;HTTP Live Streaming (HLS)&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.alkannoide.com/2012/12/19/adobe-media-server-setup-phls-live-stream/" title="Adobe Flash Media Server 4.5 – Setup PHLS live stream"&gt;In a previous post&lt;/a&gt;, I talked on the Flash Media Server 4.5 setup, to be more precise on PHLS setup. There is a big difference, so here, forget the formats in FMS ;-) Adobe Media Server is abled to stream 4 HLS formats. The first is the common HLS and 3 others.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;Vanilla&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In AMS, Vanilla is the HLS format with an AES-128 encryption applied on the content. You can stream the content with all Quicktime based players (like the player on iOS devices).&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;" mce-mark="1"&gt;Protected HTTP Live Streaming (PHLS)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Here is the main difference between PHLS on FMS and PHLS in AMS. In FMS, PHLS is the HLS with AES. In AMS, PHLS is an encryption on your content without using a DRM system.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;HTTP Live Streaming associate to &lt;a href="http://www.adobe.com/products/adobe-access.html"&gt;Adobe Access&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Like HDS with Adobe Access, you can apply a full DRM solution on HLS. Please notice, this functionality is only available with Adobe Access v4.&lt;/p&gt;
&lt;p&gt;For the two last formats, the content can only be streamed by a specific player provided by Adobe.&lt;/p&gt;
&lt;p&gt;To finish, when you read the documentation on Adobe developer website, be careful you read the doc related to the good version of the streaming server. Some link in AMS 5.0 reported to the FMS 4.5 ;-)&lt;/p&gt;</content><category term="Analyse, Streaming server, Vidéo"/><category term="adobe"/><category term="ams"/><category term="PHDS"/><category term="PHLS"/></entry><entry><title>Mistserver - a new multimedia streaming server - First overview</title><link href="https://www.alkannoide.com/2012/12/10/mistserver-a-new-multimedia-streaming-server-first-overview/" rel="alternate"/><published>2012-12-10T14:41:00+01:00</published><updated>2012-12-10T14:41:00+01:00</updated><author><name>admin</name></author><id>tag:www.alkannoide.com,2012-12-10:/2012/12/10/mistserver-a-new-multimedia-streaming-server-first-overview/</id><summary type="html">&lt;p&gt;&lt;img src="/images/2012/12/mistserver.png" title="mistserver" class="wp-image-1087 alignleft" width="151" height="151" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mistserver.org/"&gt;Mistserver&lt;/a&gt; is a open-source multimedia streaming server developed by &lt;a href="http://ddvtech.com/"&gt;DDVTech&lt;/a&gt; a company based in Netherlands. This server will support some technologies : HLS, HDS, Smooth Streaming, RTMP, ...&lt;/p&gt;
&lt;p&gt;For the moment, HDS, RTMP and progressive download are available. You can push too livestream via RMTP. The company have two others solutions : &lt;a href="http://mistserver.org/index.php?title=Miststeward_Introduction"&gt;MistSteward …&lt;/a&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img src="/images/2012/12/mistserver.png" title="mistserver" class="wp-image-1087 alignleft" width="151" height="151" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://mistserver.org/"&gt;Mistserver&lt;/a&gt; is a open-source multimedia streaming server developed by &lt;a href="http://ddvtech.com/"&gt;DDVTech&lt;/a&gt; a company based in Netherlands. This server will support some technologies : HLS, HDS, Smooth Streaming, RTMP, ...&lt;/p&gt;
&lt;p&gt;For the moment, HDS, RTMP and progressive download are available. You can push too livestream via RMTP. The company have two others solutions : &lt;a href="http://mistserver.org/index.php?title=Miststeward_Introduction"&gt;MistSteward&lt;/a&gt;, &lt;a href="http://mistserver.org/index.php?title=Mistcenter"&gt;MistCenter&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;DDVTech positions his solution in a competitive market with some actors : Adobe Media Server, Wowza, Red5, Apache, ...&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/2012/12/mistserver_position.png"&gt;&lt;img src="/images/2012/12/mistserver_position.png" title="mistserver_position" width="678" height="430" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The solution is open-source so the source code is available on &lt;a href="https://github.com/DDVTECH/"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The main idea, in the server architecture, is to have a specific process for each viewer. The main concept design is modularity via some Server API.&lt;/p&gt;
&lt;p&gt;For this first quick overview, I use a Virtual Machine based on Ubuntu 64bits. In the download section of the site, you have some statics binaries. In my case, I compile the library and the server. You need to install some packages before, if they are not already installed :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;apt-get install pkg-config openssl-dev g++
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Then, just follow the &lt;a href="http://mistserver.org/index.php?title=Quick_Start"&gt;QuickStart page&lt;/a&gt;. When it's finished, have a look on administration  home page.&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/2012/12/home_admin.png"&gt;&lt;img src="/images/2012/12/home_admin.png" title="home_admin" class="aligncenter size-full wp-image-1105" width="640" height="176" /&gt;&lt;/a&gt; Ok, now I will stream a VoD content. To do that, you need to use a FLV file (named here &lt;em&gt;movie.flv&lt;/em&gt;). Please take care when you use the commandline MistFLV2DTSC : you need to have the &lt;strong&gt;\&amp;lt; &amp;gt;&lt;/strong&gt; in your command. The video is piped in the MistFLV2DTSC and then output in the dtsc file.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;MistFLV2DTSC &amp;lt; movie.flv &amp;gt; movie.dtsc
MistDTSCFix movie.dtsc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Now, add your content in the administration portal. Go in &lt;strong&gt;Protocols&lt;/strong&gt; and add a new one. You can add 2 types of protocols : HTTP or RTMP and associate it to a port. The interface is the network interface you want to use.&lt;/p&gt;
&lt;p&gt;&lt;a href="/images/2012/12/mist-protocols.png"&gt;&lt;img src="/images/2012/12/mist-protocols.png" title="mist-protocols" class="size-full wp-image-1121 aligncenter" width="600" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ok, so your server is set-up to stream file on HTTP and port 8080. Without adding one protocol, you can't be able to stream a content.&lt;/p&gt;
&lt;p&gt;Now, add our video (the &lt;em&gt;movie.flv&lt;/em&gt; file). Go in &lt;strong&gt;Stream&lt;/strong&gt;, fill a name and a source (the location of the file in the server). &lt;a href="/images/2012/12/mist-streams.png"&gt;&lt;img src="/images/2012/12/mist-streams.png" title="mist-streams" class="aligncenter size-full wp-image-1124" width="600" height="153" /&gt;&lt;/a&gt;You will see in the server log (available via the Administration interface or via shell)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;STRM&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;New&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;After few moment, the status updates to &lt;strong&gt;Available&lt;/strong&gt;. You can now preview the content, click on &lt;strong&gt;Embed&lt;/strong&gt; then &lt;strong&gt;Preview&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;To finish, you can access to your content via differents url for the differents protocols  :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;for FLV : http://server_address:port/movie.flv&lt;/li&gt;
&lt;li&gt;for F4m : http://server_address:port/movie/manifest.f4m&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next step is to set-up a live stream and playing with the server, but this is for another post ;-)&lt;/p&gt;
&lt;p&gt;Update 12th April 2013 : &lt;a href="https://www.alkannoide.com/2013/04/11/mistserver-new-features-for-the-version-1-1/" title="MistServer – new features for the version 1.1"&gt;Release of version 1.1&lt;/a&gt;&lt;/p&gt;</content><category term="Analyse, Streaming server, Vidéo"/><category term="hds"/><category term="HLS"/><category term="HSS"/><category term="mistserver"/><category term="rtmp"/><category term="streaming"/></entry></feed>