{"id":5844,"date":"2014-09-18T00:00:00","date_gmt":"2014-09-18T00:00:00","guid":{"rendered":"https:\/\/azure.microsoft.com\/blog\/azure-media-services-rtmp-support-and-live-encoders"},"modified":"2025-09-15T11:21:18","modified_gmt":"2025-09-15T18:21:18","slug":"azure-media-services-rtmp-support-and-live-encoders","status":"publish","type":"post","link":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/","title":{"rendered":"Azure Media Services RTMP Support and Live Encoders"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Live streaming is now available for <a href=\"https:\/\/azure.microsoft.com\/blog\/2014\/09\/10\/azure-media-services-launches-proven-live-streaming-platform\/\" target=\"_blank\" rel=\"noreferrer noopener\">public preview<\/a>, and one of the supported ingest protocols is RTMP. RTMP is a commonly used protocol for ingesting and delivering rich media including live streaming. Azure Media Services supports ingesting live feeds using RTMP and uses <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/azure\/jj889436.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">Dynamic Packaging<\/a> to dynamically transmuxe live streams for delivery in MPEG-DASH, Microsoft Smooth Streaming, Apple HLS, or Adobe HDS formats. This enables using a widely adopted RTMP protocol for input and multiple output protocols to reach multiple devices and endpoints while maintaining compatibility with legacy players and formats. For information on setting up an Azure Media account with a live channel and streaming endpoint, see Jason Suess\u2019s excellent blog, \u201c<a href=\"https:\/\/azure.microsoft.com\/blog\/2014\/09\/10\/getting-started-with-live-streaming-using-the-azure-management-portal\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with Live Streaming Using the Azure Media Management Portal<\/a>\u201d. This article focuses on RTMP ingest feature enabled by Azure Media Services, and how it can be used to source multi-bitrate live feed to Azure Media Services channels using Wirecast, Flash Media Live Encoder (FMLE) and FFmpeg encoders.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"architecture-and-general-information\">Architecture and General Information<\/h2>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.webp\" alt=\"architecture: Live Streaming diagram\" class=\"wp-image-8874 webp-format\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.webp\"><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">At a high level, the Live Streaming architecture consists of three main components: Channel\/Program, Storage and Streaming Endpoints.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><strong>Channel\/Program-<\/strong> Channels enable live streaming. They include the ingest point for your live encoder. As of today RTMP and Fragmented MP4 (Smooth Streaming) are the supported ingest protocols. A program is the logical component inside a channel. Program publish the received data for streaming and also archive the content for on-demand transformation and live presentation window (DVR).<\/li>\n\n\n\n<li class=\"wp-block-list-item\"><strong>Streaming Endpoint and Streaming Units-<\/strong> a Streaming Endpoint provides you with a URL from which you can pull your live and VOD assets.&nbsp; Streaming Endpoints also provide dynamic packaging capabilities and secure the delivery of the streams.<\/li>\n\n\n\n<li class=\"wp-block-list-item\"><strong>Storage-<\/strong> Programs use Azure storage for storing live archives. On-demand streaming and encoding services also use storage.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"channel-rtmp-support\">Channel RTMP support<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Azure Media Services Channel supports RTMP push model. It can support both single and multi-bitrate inputs, but it is highly recommended to use multi-bitrate input to get the benefits of Adaptive Bitrate Streaming. In future Azure Media Services will provide a live transcoder service which will convert single bitrate input to multi bitrate output. To use RTMP ingest, following is required:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">RTMP output supported encoder<\/li>\n\n\n\n<li class=\"wp-block-list-item\">H.264 video and AAC audio codec output<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Key frame or GOP (Group of pictures) alignment across video qualities<\/li>\n\n\n\n<li class=\"wp-block-list-item\">2 second key frame interval (You can use up to 6 seconds, but this requires special configuration. Please see advanced settings section below)<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Unique&nbsp; stream names for each quality<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Network connectivity (Available bandwidth for aggregated video+audio bitrates)<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Strict CBR encoding recommended for optimum Adaptive bitrate performance.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In this post I will use three video qualities for output and ingest to Azure Media Services channel. You can use multiple qualities, but keep in mind that, the initial quality will be limited by your machine\u2019s encoding capabilities and your network connection to the channel ingest. If you exceeded your bandwidth or there is a poor network connection, you might need to adjust the quality count and also the encoding settings to use a lower resolution and bitrate. When using multiple qualities you should pay attention to the aggregated bitrate of all qualities.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Note: Make sure to Reset your channel every time you change encoder settings and disconnect and reconnect your encoder to the channel.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"wirecast-configuration\">Wirecast Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wirecast is a well-known RTMP encoder. Wirecast enables capture, live production, and encoding of live streams for broadcast. You can get more information and download a trial version from the <a href=\"https:\/\/www.telestream.net\/wirecast\/overview.htm\" target=\"_blank\" rel=\"noreferrer noopener\">Telestream web site<\/a>. Wirecast version 5 and 6&nbsp;is supported and tested with Azure Media Services. Below steps applies to both Wirecast version 5 and 6. Version 6 also includes ready to use Azure Media Services encoding presets. You can either use the default presets or create your own following the below steps.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configuring-input\">Configuring Input<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Hover over \u201c+\u201d button.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Wirecast1_thumb.webp\" alt=\"graphical user interface, application\" class=\"wp-image-8876 webp-format\" title=\"Wirecast1\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Wirecast1_thumb.webp\"><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Select from the available source options. Wirecast includes multiple options. For this post I will use my integrated Video Camera.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast2_thumb.webp\" alt=\"graphical user interface, application\" class=\"wp-image-8878 webp-format\" title=\"wirecast2\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast2_thumb.webp\"><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Camera capture appears in the new small window. Click on it and your camera capture will appear in the Preview window.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast13_thumb.webp\" alt=\"graphical user interface, website\" class=\"wp-image-8880 webp-format\" title=\"wirecast13\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast13_thumb.webp\"><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configuring-output\">Configuring Output<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">On the Main Menu, go to Output -&gt; Output Settings.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast4_thumb.webp\" alt=\"graphical user interface, application\" class=\"wp-image-8882 webp-format\" title=\"wirecast4\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast4_thumb.webp\"><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">In the Select an Output Destination dialog box, select RTMP Server.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">The Output Settings dialog appears.<a href=\"https:\/\/acom.azurecomcdn.net\/80C57D\/blogmedia\/blogmedia\/2014\/09\/18\/wirecast6.png\"><\/a><\/p>\n<\/blockquote>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Name your first output (quality). For example \u201cAzure Media Services Quality1\u201d<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Enter your channel\u2019s ingest URL in the Address field.&nbsp; See \u201c<a href=\"https:\/\/azure.microsoft.com\/blog\/2014\/09\/10\/getting-started-with-live-streaming-using-the-azure-management-portal\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with Live Streaming Using the Azure Media Management Portal<\/a>\u201d for information on how to get channel ingest URL.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Enter a unique stream name (for example, myStream1).If you have multiple qualities, each quality needs to have a unique stream name.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Create a new encoding preset for your first quality.\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">In the Output Settings dialog box, select New Preset<\/li>\n\n\n\n<li class=\"wp-block-list-item\">In the Enter New Preset Name text box, enter a name of the new preset.&nbsp; For example \u201cMyQuality1\u201d<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Set \u201cEncoder:\u201d type to <strong>H.264 or x264<\/strong>.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Configure the preset to desired values.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">When creating your own encoding presets you should set \u201cFrames per second\u201d and \u201cKey frame every\u201d values to the same value for each quality. You should use same audio encoding settings for each quality and also you should check \u201cKeyframe Aligned\u201d setting for each quality.\u00a0 Otherwise the streams will not work or not ingest to the channel. For a proper Adaptive Bitrate Streaming these settings must be same across qualities.<a href=\"https:\/\/acom.azurecomcdn.net\/80C57D\/blogmedia\/blogmedia\/2014\/09\/18\/wirecast7.png\"><\/a><\/p>\n<\/blockquote>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">After configuring your first output, your output configuration should look like<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast8_thumb.webp\" alt=\"graphical user interface, text, application, email\" class=\"wp-image-8890 webp-format\" title=\"wirecast8\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast8_thumb.webp\"><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">To add other quality levels, click Add and follow the above steps to add additional qualities. Please don\u2019t forget to set same values to \u201cFrames per second\u201d and \u201cKey frame every\u201d. Also please check \u201cKeyframe Aligned\u201d setting and name streams unique.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">After configuring all three qualities, your output configuration will be:<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast9_thumb.webp\" alt=\"graphical user interface, text, application, email\" class=\"wp-image-8892 webp-format\" title=\"wirecast9\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast9_thumb.webp\"><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"start-encoding-and-pushing-data-to-channel-ingest\">Start Encoding and pushing data to channel ingest<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Click arrow to start encoding:<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast10_thumb.webp\" alt=\"graphical user interface, application\" class=\"wp-image-8894 webp-format\" title=\"wirecast10\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast10_thumb.webp\"><\/figure>\n<\/blockquote>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Start pushing live encoded data to channel by pressing the Stream button. Indicator light turns to red when streaming starts.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><figure class=\"wp-block-image size-full\"><img decoding=\"async\" alt=\"screenshot of \"wirecast\" with \"stream\" highlighted\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast11_thumb.webp\" alt='screenshot of \"wirecast\" with \"stream\" highlighted' class=\"wp-image-8896 webp-format\" title=\"wirecast11\" data-orig-alt=\"screenshot of \"wirecast\" with \"stream\" highlighted\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast11_thumb.webp\"><\/figure>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"preview-the-stream\">Preview the Stream<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can use the Azure Management Portal to preview your streams. You can also publish your streams using Azure Portal. See \u201c<a href=\"https:\/\/azure.microsoft.com\/blog\/2014\/09\/10\/getting-started-with-live-streaming-using-the-azure-management-portal\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with Live Streaming Using the Azure Media Management Portal<\/a>\u201d for information on how to publishing and preview. As an alternative you can use for multiple player options and preview.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"flash-media-live-encoder-fmle-configuration\">Flash Media Live Encoder (FMLE) Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FMLE is a free software from Adobe. You can get more information and download a copy of the encoder from <a href=\"https:\/\/www.adobe.com\/products\/flash-media-encoder.html\">https:\/\/www.adobe.com\/products\/flash-media-encoder.html<\/a>. By default FMLE supports MP3 audio output. Currently Azure Media Services <a href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/an-introduction-to-live-encoding-with-azure-media-services\/\"><s>doesn\u2019t offer a live transcoding service<\/s><\/a> and requires AAC audio codec to dynamic package source streams to multiple formats such as MPEG-DASH, Smooth Streaming and HLS. To use FMLE with Azure Media Services, you need a AAC plugin. In this post I will use a plugin from Main Concept.&nbsp; You can get more information and download a trial version from <a href=\"https:\/\/www.mainconcept.com\/eu\/products\/plug-ins\/plug-ins-for-adobe\/aac-encoder-fmle.html\">https:\/\/www.mainconcept.com\/eu\/products\/plug-ins\/plug-ins-for-adobe\/aac-encoder-fmle.html<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configuring-fmle\">Configuring FMLE<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">The first thing you should do is, configure the FMLE to use NTP time source (Absolute time) for RTMP timestamps. To do this,\n<ol class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Close your encoder.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Open the FMLE config.xml file in a text editor.The default installation location on Windows is C:Program FilesAdobeFlash Media Live Encoder 3.2 (For x64 it is C:Program Files (x86)AdobeFlash Media Live Encoder 3.2) The default installation location on Mac OS is Macintosh HD:Applications:Adobe:Flash Media Live Encoder 3.2<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Set streamsynchronization\/enable to true. true<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Save file and start your encoder again.<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Select your source device from device list. For this post I will be using \u201cIntegrated Camera\u201d<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Select your encoding preset from the preset menu or create your own. If you will be creating your own please read the &#8220;Channel RTMP support&#8221; section for requirements.&nbsp; I will be using \u201cMulti Bitrate \u2013 3 streams (1500) Kbps \u2013 H.264\u201d from the presets menu which will create 3 qualities.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast12_thumb.webp\" alt=\"a screenshot of a live stream \" class=\"wp-image-8898 webp-format\" title=\"wirecast12\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast12_thumb.webp\"><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Configure H.264 advanced settings and set \u201cKey Frame frequency\u201d to 2 seconds by clicking icon.\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Note: This will turn preset name to \u201cCustom\u201d<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast15_thumb.webp\" alt=\"a screenshot of a cell phone\" class=\"wp-image-8902 webp-format\" title=\"wirecast15\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast15_thumb.webp\"><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Set Frame rate to 30 fps<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Select your Audio device<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Set Audio output format to AAC. Note: AAC and HE-AAC will not be available by default. FMLE only supports MP3 audio out of box. You need a plugin to enable AAC codec.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Set desired Audio bandwidth. For this post I will use 96 Kbps and 44100 sampling rate.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast16_thumb.webp\" alt=\"a screen shot of a smart phone\" class=\"wp-image-8904 webp-format\" title=\"wirecast16\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast16_thumb.webp\"><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Select \u201cStream to Flash Media Server\u201d<\/li>\n\n\n\n<li class=\"wp-block-list-item\">See \u201c<a href=\"https:\/\/azure.microsoft.com\/blog\/2014\/09\/10\/getting-started-with-live-streaming-using-the-azure-management-portal\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with Live Streaming Using the Azure Media Management Portal<\/a>\u201d for information on how to get channel ingest URL.<\/li>\n\n\n\n<li class=\"wp-block-list-item\">Enter \u201cstream%i\u201d as Stream name. This setting will force FMLE to name each quality using a unique stream name.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Your initial configuration will be:<a href=\"https:\/\/acom.azurecomcdn.net\/80C57D\/blogmedia\/blogmedia\/2014\/09\/18\/wirecast20.png\"><\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"start-encoding-and-pushing-data-to-channel-ingest\">Start Encoding and pushing data to channel ingest<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Click Connect. This will connect the encoder to the channel ingest URL.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast18_thumb.webp\" alt=\"graphical user interface, text, application\" class=\"wp-image-8910 webp-format\" title=\"wirecast18\" data-orig-src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/wirecast18_thumb.webp\"><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">Click start to start encoding.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Note: You can also use FMLE in command line mode. For more information please see <a href=\"https:\/\/help.adobe.com\/en_US\/FlashMediaLiveEncoder\/3.2\/Using\/WS5b3ccc516d4fbf351e63e3d11c104ba71a-7ffe.html#WS5b3ccc516d4fbf351e63e3d11c104babd5-7ffc\" target=\"_blank\" rel=\"noreferrer noopener\">\u201cStart Flash Media Live Encoder in command-line mode\u201d<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"preview-the-stream\">Preview the Stream<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can use the Azure Management Portal to preview your streams. You can also publish your streams using Azure Portal. See \u201c<a href=\"https:\/\/azure.microsoft.com\/blog\/2014\/09\/10\/getting-started-with-live-streaming-using-the-azure-management-portal\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with Live Streaming Using the Azure Media Management Portal<\/a>\u201d for information on how to publish and preview. As an alternative you can use for multiple player options and preview.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"using-ffmpeg-with-azure-media-services-channel-ingest\">Using FFmpeg with Azure Media Services Channel ingest<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">FFmpeg is a well-known open source software which encodes and created different media formats. RTMP is one of the supported protocols. You can get more information and download a copy of FFmpeg from their <a href=\"https:\/\/ffmpeg.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">official web site<\/a>. In this post I will not go into the details of FFmpeg commands and their usage, but provide a sample command which will stream a local file and simulates a live stream. You can use FFmpeg to capture data from multiple sources\/devices including local camera, desktop capture and other devices. More information can be found on their <a href=\"https:\/\/ffmpeg.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">official web site<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"example-command\">Example Command<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I will use a Windows build of FFmpeg for my post. You can use FFmpeg version that matches your platform. <strong>Single bitrate:<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nC:toolsffmpegbinffmpeg.exe -v verbose -i MysampleVideo.mp4 -strict -2 -c:a aac -b:a 128k -ar 44100 -r 30 -g 60 -keyint_min 60 -b:v 400000 -c:v libx264 -preset medium -bufsize 400k -maxrate 400k -f flv rtmp:\/\/channel001-streamingtest.channel.media.windows.net:1935\/live\/a9bcd589da4b424099364f7ad5bd4940\/mystream1\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\"><strong>Multi bitrate ( 3 bit rates 500, 300 and 150 Kbps ):<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nC:toolsffmpegbinffmpeg.exe -threads 15 -re -i MysampleVideo.mp4 -strict experimental -acodec aac -ab 128k -ac 2 -ar 44100 -vcodec libx264 -s svga -b:v 500k -minrate 500k -maxrate 500k -bufsize 500k  -r 30 -g 60 -keyint_min 60 -sc_threshold 0 -f flv rtmp:\/\/channel001-streamingtest.channel.media.windows.net:1935\/live\/a9bcd589da4b424099364f7ad5bd4940\/Streams_500 -strict experimental -acodec aac -ab 128k -ac 2 -ar 44100 -vcodec libx264 -s vga -b:v 300k -minrate 300k -maxrate 300k -bufsize 300k -r 30 -g 60 -keyint_min 60 -sc_threshold 0 -f flv rtmp:\/\/channel001-streamingtest.channel.media.windows.net:1935\/live\/a9bcd589da4b424099364f7ad5bd4940\/Streams_300 -strict experimental -acodec aac -ab 128k -ac 2 -ar 44100 -vcodec libx264 -s qvga -b:v 150k -minrate 150k -maxrate 150k -bufsize 150k  -r 30 -g 60 -keyint_min 60 -sc_threshold 0 -f flv rtmp:\/\/channel001-streamingtest.channel.media.windows.net:1935\/live\/a9bcd589da4b424099364f7ad5bd4940\/Streams_150\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">The Multi-bitrate command creates three qualities (500, 300 and 150 Kbps) of video with 2 seconds of key frame interval and send the output to Azure Media Services Channel ingest. See \u201c<a href=\"https:\/\/azure.microsoft.com\/blog\/2014\/09\/10\/getting-started-with-live-streaming-using-the-azure-management-portal\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with Live Streaming Using the Azure Media Management Portal<\/a>\u201d for information on how to get channel ingest URL.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"preview-the-stream-1\">Preview the Stream<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You can use the Azure Management Portal to preview your streams. You can also publish your streams using Azure Portal. See \u201c<a href=\"https:\/\/azure.microsoft.com\/blog\/2014\/09\/10\/getting-started-with-live-streaming-using-the-azure-management-portal\/\" target=\"_blank\" rel=\"noreferrer noopener\">Getting Started with Live Streaming Using the Azure Media Management Portal<\/a>\u201d for information on how to publish and preview channels and programs. As an alternative you can use for multiple player options and preview.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"advanced-configuration\">Advanced Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">By default Azure Media Services Channel is configured to ingest 2 seconds key frame interval data or GOP (KeyFrameInterval). Also dynamic packaging uses 3 to 1 mapping configuration for HLS output which means; if you ingest 2 second key frame interval configured data your HLS output segment will be 6 seconds (3 * 2 seconds) If you want to ingest data which is different than 2 seconds key frame interval than you need to adjust this values. To adjust this values and create a channel, you should use the SDK since these advanced settings cannot be changed using Portal. You can get more information for how to create a channel using SDK from <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/azure\/dn783465.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">\u201cCreating a Live Streaming Application with the Media Services SDK for .NET\u201d<\/a> To configure this parameters please refer to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/azure\/dn783458.aspx#ChannelInput\" target=\"_blank\" rel=\"noreferrer noopener\">ChannelInput\/KeyFrameInterval<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/azure\/dn783458.aspx#ChannelOutput\" target=\"_blank\" rel=\"noreferrer noopener\">ChannelOutput\/Hls\/FragmentsPerSegment<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"summary-and-next-steps\">Summary and Next Steps<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hopefully this post demonstrates the ease of getting RTMP live encoders to work with Azure Media Services and configure for basic streaming. You can do more with Azure Media Services Live streaming and other features. You can find more information about Live Streaming and SDK support at <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/azure\/dn783466.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">\u201cWorking with Azure Media Services Live Streaming\u201d<\/a> and general information about Azure Media at <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/media-services\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u201cAzure Media Services\u201d<\/a> official site. We hope you try our new Live streaming services with RTMP ingest support and let us know if you have any feedback. Happy Live Streaming!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This article focuses on RTMP ingest feature enabled by Azure Media Services, and how it can be used to source multi-bitrate live feed to Azure Media Services channels using Wirecast, Flash Media Live Encoder (FMLE) and FFmpeg encoders.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","footnotes":"","msx_community_cta_settings":[]},"categories":[1],"tags":[],"audience":[3055,3056],"content-type":[],"product":[],"tech-community":[],"topic":[],"coauthors":[97],"class_list":["post-5844","post","type-post","status-publish","format-standard","hentry","category-uncategorized","audience-developers","audience-it-implementors","review-flag-1680286581-295","review-flag-1680286581-364","review-flag-1-1680286581-825","review-flag-2-1680286581-601","review-flag-3-1680286581-173","review-flag-5-1680286581-950","review-flag-6-1680286581-909","review-flag-free-1680286579-836","review-flag-new-1680286579-546","review-flag-publi-1680286584-566"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Azure Media Services RTMP Support and Live Encoders | Microsoft Azure Blog<\/title>\n<meta name=\"description\" content=\"This article focuses on RTMP ingest feature enabled by Azure Media Services, and how it can be used to source multi-bitrate live feed to Azure Media Services channels using Wirecast, Flash Media Live Encoder (FMLE) and FFmpeg encoders.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Azure Media Services RTMP Support and Live Encoders | Microsoft Azure Blog\" \/>\n<meta property=\"og:description\" content=\"This article focuses on RTMP ingest feature enabled by Azure Media Services, and how it can be used to source multi-bitrate live feed to Azure Media Services channels using Wirecast, Flash Media Live Encoder (FMLE) and FFmpeg encoders.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Azure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/microsoftazure\" \/>\n<meta property=\"article:published_time\" content=\"2014-09-18T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-15T18:21:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.png\" \/>\n<meta name=\"author\" content=\"Microsoft Azure\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@azure\" \/>\n<meta name=\"twitter:site\" content=\"@azure\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Azure\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/\"},\"author\":[{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/microsoft-azure\/\",\"@type\":\"Person\",\"@name\":\"Microsoft Azure\"}],\"headline\":\"Azure Media Services RTMP Support and Live Encoders\",\"datePublished\":\"2014-09-18T00:00:00+00:00\",\"dateModified\":\"2025-09-15T18:21:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/\"},\"wordCount\":2015,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/\",\"name\":\"Azure Media Services RTMP Support and Live Encoders | Microsoft Azure Blog\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.png\",\"datePublished\":\"2014-09-18T00:00:00+00:00\",\"dateModified\":\"2025-09-15T18:21:18+00:00\",\"description\":\"This article focuses on RTMP ingest feature enabled by Azure Media Services, and how it can be used to source multi-bitrate live feed to Azure Media Services channels using Wirecast, Flash Media Live Encoder (FMLE) and FFmpeg encoders.\",\"breadcrumb\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#primaryimage\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.webp\",\"width\":644,\"height\":364,\"caption\":\"diagram\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog home\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Uncategorized\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/uncategorized\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Azure Media Services RTMP Support and Live Encoders\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"name\":\"Microsoft Azure Blog\",\"description\":\"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.\",\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\",\"name\":\"Microsoft Azure Blog\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"width\":512,\"height\":512,\"caption\":\"Microsoft Azure Blog\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/microsoftazure\",\"https:\/\/x.com\/azure\",\"https:\/\/www.instagram.com\/microsoftdeveloper\/\",\"https:\/\/www.linkedin.com\/company\/16188386\",\"https:\/\/www.youtube.com\/user\/windowsazure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117\",\"name\":\"shakir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"caption\":\"shakir\"},\"sameAs\":[\"https:\/\/azure.microsoft.com\"],\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Azure Media Services RTMP Support and Live Encoders | Microsoft Azure Blog","description":"This article focuses on RTMP ingest feature enabled by Azure Media Services, and how it can be used to source multi-bitrate live feed to Azure Media Services channels using Wirecast, Flash Media Live Encoder (FMLE) and FFmpeg encoders.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/","og_locale":"en_US","og_type":"article","og_title":"Azure Media Services RTMP Support and Live Encoders | Microsoft Azure Blog","og_description":"This article focuses on RTMP ingest feature enabled by Azure Media Services, and how it can be used to source multi-bitrate live feed to Azure Media Services channels using Wirecast, Flash Media Live Encoder (FMLE) and FFmpeg encoders.","og_url":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/","og_site_name":"Microsoft Azure Blog","article_publisher":"https:\/\/www.facebook.com\/microsoftazure","article_published_time":"2014-09-18T00:00:00+00:00","article_modified_time":"2025-09-15T18:21:18+00:00","og_image":[{"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.png","type":"","width":"","height":""}],"author":"Microsoft Azure","twitter_card":"summary_large_image","twitter_creator":"@azure","twitter_site":"@azure","twitter_misc":{"Written by":"Microsoft Azure","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#article","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/"},"author":[{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/microsoft-azure\/","@type":"Person","@name":"Microsoft Azure"}],"headline":"Azure Media Services RTMP Support and Live Encoders","datePublished":"2014-09-18T00:00:00+00:00","dateModified":"2025-09-15T18:21:18+00:00","mainEntityOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/"},"wordCount":2015,"commentCount":0,"publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/","name":"Azure Media Services RTMP Support and Live Encoders | Microsoft Azure Blog","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#primaryimage"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.png","datePublished":"2014-09-18T00:00:00+00:00","dateModified":"2025-09-15T18:21:18+00:00","description":"This article focuses on RTMP ingest feature enabled by Azure Media Services, and how it can be used to source multi-bitrate live feed to Azure Media Services channels using Wirecast, Flash Media Live Encoder (FMLE) and FFmpeg encoders.","breadcrumb":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#primaryimage","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2014\/09\/Live-architecture_thumb.webp","width":644,"height":364,"caption":"diagram"},{"@type":"BreadcrumbList","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-media-services-rtmp-support-and-live-encoders\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog home","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/"},{"@type":"ListItem","position":2,"name":"Uncategorized","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/uncategorized\/"},{"@type":"ListItem","position":3,"name":"Azure Media Services RTMP Support and Live Encoders"}]},{"@type":"WebSite","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","name":"Microsoft Azure Blog","description":"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.","publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization","name":"Microsoft Azure Blog","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","width":512,"height":512,"caption":"Microsoft Azure Blog"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/microsoftazure","https:\/\/x.com\/azure","https:\/\/www.instagram.com\/microsoftdeveloper\/","https:\/\/www.linkedin.com\/company\/16188386","https:\/\/www.youtube.com\/user\/windowsazure"]},{"@type":"Person","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117","name":"shakir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4","url":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","caption":"shakir"},"sameAs":["https:\/\/azure.microsoft.com"],"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/"}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Azure Blog","distributor_original_site_url":"https:\/\/azure.microsoft.com\/en-us\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/5844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/comments?post=5844"}],"version-history":[{"count":5,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/5844\/revisions"}],"predecessor-version":[{"id":46243,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/5844\/revisions\/46243"}],"wp:attachment":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/media?parent=5844"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/categories?post=5844"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tags?post=5844"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/audience?post=5844"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/content-type?post=5844"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/product?post=5844"},{"taxonomy":"tech-community","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tech-community?post=5844"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/topic?post=5844"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/coauthors?post=5844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}