WMSPanel team continues analyzing the state of streaming protocols.
The metrics calculations are based on nearly 3.5 billion views. The stats are collected from 2700+ media servers (Nimble Streamer and Wowza).
Protocols share remain stable, i.e. HLS share is about 73% with progressive download having 8%.
You can compare that to April stats below.
May 31, 2016
May 29, 2016
De-interlacing in Transcoder for Nimble Streamer
Live Transcoder for Nimble Streamer allows using various FFmpeg filters for transforming content. Some filter are implemented as transforming blocks in transcoder UI which you may see in our videos.
However, there are tasks that need non-predefined filters. De-interlacing is one of those tasks and FFmpeg has yadif filter which is described in this article.
Let's see how this is done in Transcoder web UI. First you go to Transcoders menu to create new scenario or open existing one.
After adding decoder element with incoming app and stream names, you need to add custom video filter with "yadif" as filter name and zero value.
You should add de-interlacing filter before any other content transformation. This will allow preserving image quality for further changes.
So if you'd like to add some additional filters like scaling, you can add them right after "yadif" filter.
So your final version of transcoding scenario with de-interlacing and scaling will look as shown below.
Feel free to visit Live Transcoder webpage for other details and contact us if you have any question.
However, there are tasks that need non-predefined filters. De-interlacing is one of those tasks and FFmpeg has yadif filter which is described in this article.
Let's see how this is done in Transcoder web UI. First you go to Transcoders menu to create new scenario or open existing one.
Scenarios setup page |
After adding decoder element with incoming app and stream names, you need to add custom video filter with "yadif" as filter name and zero value.
Add custom "yadif" filter |
You should add de-interlacing filter before any other content transformation. This will allow preserving image quality for further changes.
So if you'd like to add some additional filters like scaling, you can add them right after "yadif" filter.
Add scaling after de-interlacing |
Take stream, de-interlace it, then scale and make output, with audio pass-through |
Feel free to visit Live Transcoder webpage for other details and contact us if you have any question.
Related documentation
Bitrate, profile, key frame and other encoder parameters, Live Transcoder for Nimble Streamer, Transcoder UI preview playlist, Live Streaming features,
May 26, 2016
Encoder settings: bitrate, profile, key frame alignment and more in Nimble Transcoder
Live Transcoder for Nimble Streamer has wide range of transcoding capabilities which include H.264 encoding. It currently uses x264 library licensed for commercial usage and any customer with our Transcoder may use x264 parameters to set up outgoing stream. This article gives some details on encoder parameters usage.
As you may have seen from our videos In Transcoder playlist, you need to set up transcoding scenario with source streams, transformation blocks and encoder.
You can see blue block being sources of streams, green blocks for filters to transform the content and orange blocks as outgoing streams encoders. If you point your mouse to any block, you'll see setup icon - you can clock on it to see details dialog.
If your input stream is anamorphic you might need to save its SAR parameter in the output as well, especially if you’re using a 'scale' filter in your Transcoder pipeline while DAR = SAR x Width / Height. Nimble supports keeping input SAR using keep-sar parameter set to true for encoder in its ‘Video output’ section. SAR/DAR/PAR correlation is described in this article.
As you may have seen from our videos In Transcoder playlist, you need to set up transcoding scenario with source streams, transformation blocks and encoder.
Scenarios setup page |
Part of ABR scenario setup example |
As example, here's a dialog for "medium" stream scaling filter which sets it to 360p.
Scale filter for 360p resize |
Let's open encoder settings.
Default settings for encoder |
Currently we support x264 encoder, let's take a look at its parameters.
Key frame alignment allows arranging key frames according to selected approach.
Those are
- source
- fps
- interval
- none
They are described below under the screenshot.
Setting key frame alignment |
Keeping source key frame alignment is a required feature for creating ABR streams, like you see here or here. The key will be aligned same way as they are aligned in source stream. So if you use it for ABR, you need to use it. This feature is not available when you use FFmpeg as a command-line tool.
FPS value will insert the key frame according to FPS amount defined in the opened edit box.
Interval value will insert key frame in the time point specified as shown below. It is measured in milliseconds. As example, if you have 0 frame at 5900, and 1 frame at 6100, then you set this value to 6000. In this case a new frame will be inserted at 6000, copied from nearest older frame which is 5900.
Having "none", the key frames will be defined by the encoder, the value will be determined based on preset and tune parameters.
There's currently one codec used for video output so Codec field is not changed.
Preset is selected among available presets which you can see on the screenshot below.
Add bitrate parameter if you'd like to set up the bitrate of outgoing stream. Its unit is Kbps so to have 600 Kbps you need to print "bitrate" in parameter name and then enter "600" in the right field as shown below.
Set 600 Kbps bitrate |
Notice: you can set constant bitrate for your encoded stream.
To set up the "tune", type it in left field. In the right field you will be able to select value from dropdown list.
To set up the "tune", type it in left field. In the right field you will be able to select value from dropdown list.
The list of all presents and their meanings can be taken from x264 library documentation like this one.
Setting tune for x264 encoder |
Profile is set by printing "profile" in the left filed and choosing the value from the drop down on the right. Typical values are "baseline" and "main".
Choosing profile for x264 encoder |
If your input stream is anamorphic you might need to save its SAR parameter in the output as well, especially if you’re using a 'scale' filter in your Transcoder pipeline while DAR = SAR x Width / Height. Nimble supports keeping input SAR using keep-sar parameter set to true for encoder in its ‘Video output’ section. SAR/DAR/PAR correlation is described in this article.
You may refer to X264 documentation like this one to see what else you can do with your encoder using various parameter. Setting those parameters will allow you to control your x264 video encoder more efficiently and make output streams according to your business logic.
To set up audio encoding parameters, please check Audio encoder parameters video on our YouTube channel.
Feel free to visit Live Transcoder webpage for other details and contact us if you have any question.
Related documentation
May 22, 2016
Live Transcoder for Nimble Streamer
Our company introduces Transcoder for Nimble Streamer. It's a premium add-on for Nimble Streamer which has wide set of capabilities to decode, transform and encode live streaming media.
The Transcoder takes the following content
The input protocols are
A wide set of existing FFmpeg filters can be applied to the processed content.
The following YouTube channel playlist shows the UI:
The Transcoder is provided per monthly subscription with an affordable pricing. With Nimble Streamer being low resource high-efficiency software, you can be sure that your total cost of ownership will be as low as possible.
Input specs
The Transcoder takes the following content
- H.264, HEVC (H.265), MPEG2, MPEG4, VP8 and VP9 video
- AAC, MP3, MP2, Speex and PCM G.711 (a-law, μ-law) audio
The input protocols are
Content processing
Our Transcoder has low resource usage and high performance.
- Each stream is decoded just once
- Multiple transcoding threads are used on multiple CPU cores
- Encoding is done once after all transformations
- A pass-through mode for non-changed media can be applied.
As it's a native application for Linux, Windows and Mac on x64 and ARM, it can be installed on the majority of popular OSes.
Output spec
The output content is encoded as H.264/AAC with pass-through support for known codecs.
The supported output protocols are
- HLS
- MPEG-DASH
- SLDP
- RTMP and RTSP playback and re-publish
- MPEG-TS playback and multicast
- SRT in all modes
- UDT
Applying FFmpeg™ filters
A wide set of existing FFmpeg filters can be applied to the processed content.
- Filters are applied without streams interruption
- 4 different strategies for adding key frames alignment
- Resize or crop to create multiple resolutions
- Graphic overlays
- Make filtering chains without additional decoding
- Audio transrating, e.g. 256Kbps to 192Kbps
- Audio re-sampling, e.g. 44KHz to 22KHz
- Mix several audio sources
- Add any custom or third-party filter
Web UI for transcoding scenarios
WMSPanel provides excellent web interface for controlling and reporting media servers which works in any web browser.
Now we applied the same principles to transcoder workflow control:
- Create any chain of transcoding for both video and audio.
- Set up filters in a couple of clicks.
- Drag-n-drop elements of transcoding scenario.
- Apply changes without interruption of live streaming.
- Apply settings to multiple servers in a few clicks.
- ABR scenario setup
- Graphics and video overlay scenario
- Using wizards to easily create transcoding scenarios
- Apply transcoding scenario to multiple servers
- Audio transformation workflow
- Put voice-over via audio mix filter
- Obtaining license
Affordable price
Visit Nimble Streamer Transcoder website to install it and try in action.
Contact us if you have any questions or feature requests, we'll appreciate your feedback.
Troubleshooting Live Transcoder, Live streaming capabilities of Nimble Streamer, Building streaming infrastructure with Nimble Streamer
Contact us if you have any questions or feature requests, we'll appreciate your feedback.
Related documentation
Troubleshooting Live Transcoder, Live streaming capabilities of Nimble Streamer, Building streaming infrastructure with Nimble Streamer
Subscribe to:
Posts (Atom)