• How to capture Wowza Transcoder benchmark statistics

    This article describes how to configure and use Wowza Streaming Engine media server software to capture transcoder performance benchmark numbers for your specific hardware and operating system configuration. Transcoding in Wowza media server software is enabled by Wowza Transcoder. The methods described in this article are similar to those used by Wowza to capture and publish the data as described in Wowza Transcoder performance benchmark.

    Note: Wowza Streaming Engine™ 4.1 or later is recommended.

    Contents


    Getting started
    Test approach
    Wowza Streaming Engine setup
    Performance data collection

    Getting started


    This article assumes familiarity with basic operations of Wowza Streaming Engine software. If you're not familiar with Wowza Streaming Engine, you can request a free Trial license to try out the software. The Wowza Streaming Engine Trial download includes the Wowza Streaming Engine media server software, Wowza Transcoder, Wowza nDVR, and Wowza DRM, documentation, and examples. Review the Wowza Streaming Engine User's Guide for details about how to install and use the software.

    Note: You shouldn't capture transcoder performance benchmark numbers for your media server running with a Wowza Streaming Engine Trial license. The Trial license permits a transcode of one incoming source stream to an unlimited number of outbound streams and this will likely not approach the maximum capacity of your system. To get the best transcoder performance benchmark numbers, it's best to saturate your system by using a Subscription or Perpetual license for the Streaming Engine software to get unlimited incoming stream capacity. For details, see Wowza Streaming Engine Pricing.

    Test approach


    The scenarios in this test take the following into consideration:

    1. Network bandwidth: The test network should be configured on a closed network to avoid network activity outside the scope of the test workflows.

    2. Isolated workload: The test scenarios use two server computers for test execution in order to capture the raw transcoding numbers with minimal overhead from other processes. The two computers are allocated for the following uses:

      • Server 1: This computer's sole purpose is to send a single stream to the test server (Server 2) via UDP. In our tests, this is done via a command-line script that uses VideoLAN (VLC) as the sending mechanism. In your environment, Server 1 can be replaced with any compatible encoder source.

      • Server 2: This computer is dedicated to running Wowza Streaming Engine software with Transcoder enabled. All performance collection is obtained from this computer.

    3. Source Content: The test scenarios use publicly available source content and assume you're using the downloadable source files listed below. Other source files that are compatible with the Wowza Transcoder specification can be used.


    4. Incoming Stream Ingest: Each incoming stream into the transcoder is incrementally ingested until one or more of the following limits occur:

      • CPU Utilization is greater than 65 percent.
      • Memory Utilization is greater than 80 percent.
      • Wowza Streaming Engine starts logging "All Frames On" or "Skipped Frames" messages.
      • Wowza Streaming Engine starts logging keyframe alignment errors.
      • Visual inspection of video playback shows picture jitter, pixelation, or other unwanted video artifacts.

    Wowza Streaming Engine setup


    This article demonstrates two main methods for transcoding video:

    • Transrate is used to ingest an H.264 video and AAC/MP3 audio formatted media stream and create a full set of bitrate renditions that are keyframe-aligned to the source stream for adaptive bitrate delivery.

    • Transcode is used to ingest a non-H.264 video and non-AAC/MP3 audio formatted media stream and convert it to a keyframe-aligned set of adaptive bitrate media streams formatted with H.263 or H.264 video and AAC or MP3 audio.

    For more information about transrating and transcoding, see the Wowza Transcoder Users Guide.

    Create a live application and enable the transcoder

    To create a new live application and enable Transcoder:

    1. In Wowza Streaming Engine Manager, click the Applications tab, and then click Add Application in the contents panel. Select Live: Single server or origin in the Add Application page.

    2. In the Add Application dialog box, enter an application name (we'll use xrate1). Click Add and keep all default values.

    3. With xrate1 selected, click Transcoder in the contents panel.

    4. On the xrate1 > Transcoder page, click Enable Transcoder, and then restart the application.

      Note: The Streaming Engine must be properly licensed to enable the Transcoder. For details, see Licensing requirements for Wowza Transcoder.
    For help with creating live applications with transcoding enabled, see How to set up and run Wowza Transcoder for live streaming.

    To enable bitrate encoding presets for the Transrated stream

    1. On the xrate1 > Transcoder page, in the Transcoder Templates section, click Transrate (Default).

    2. Click the linked name of a preset you want to enable, and then click Enable Preset. Click Return to Transcoder Templates to enable other presets. For this test, enable the following encoding presets, and then click Save:

      • 720p
      • 360p
      • 240p
      • 160p

    3. Restart the application using the button at the upper-right corner of the screen.


    To enable bitrate encoding presets for the Transcoded stream

    1. On the xrate1 > Transcoder page, in the Transcoder Templates section, click Transcode (Default).

    2. Click the linked name of a preset you want to enable, and then click Enable Preset. Click Return to Transcoder Templates to enable other presets. For this test, enable the following encoding presets, and then click Save:

      • 720p
      • 360p
      • 240p
      • 160p

    3. Restart the application using the button at the upper-right corner of the screen.

    Set up the source stream

    VideoLAN (VLC) is used as the encoder source for the test described in this article. We'll use command-line options to stream a video on demand (VOD) asset across UDP for ingest into Wowza Streaming Engine. You can use other sources to benchmark other streaming workflows. For more information about configuring other encoders, see Specific encoding technologies.

    To use VLC and big_buck_bunny_720p_h264.mov for a source stream ingest into the Wowza media server (Windows OS), do the following:

    1. Open a command prompt, and then navigate to the VLC installation directory.

    2. Enter the following command:
      vlc -vvv "C:\path_to_video_file\ big_buck_bunny_720p_h264.mov" --sout="#rtp{dst=server-IP,port=10000,mux=ts}"
    3. After the VLC application launches, click the Repeat control in VLC to enable loop mode.

    Start the live stream

    To pull the stream from VLC into Wowza Streaming Engine, create a .stream file for the xrate1 application:

    1. Sign in to Wowza Streaming Engine Manager.

    2. Select the Server tab, and then click Stream Files in the contents panel.

    3. In the Virtual Host Stream Files page, click Add Stream File.

    4. In the Add Stream File dialog box, enter a stream file name (for example, myStream1.stream). For the Stream URI, enter udp://0.0.0.0:10000. Click Add.

    5. Refresh the Virtual Host Stream Files page and click the Connect icon next to the new stream file.

    6. In the Connect a Stream File dialog box, select xrate1 as the Application Name. Select Connect to application instance and enter _definstAppInstance in the text field. Click OK.

    For more information about how to use stream files, see How to create and use .stream files in Wowza Streaming Engine Manager.

    Verify that the stream is transcoding by clicking the Applications tab, selecting your live application, and selecting Incoming Streams.

    Performance data collection


    This section describes how to collect the data using Performance Monitor on Windows operating systems and sar commands on Linux operating systems. Data collection captures CPU utilization at one-second intervals for 60 seconds. The results are logged for further analysis. After each sample is collected, if the results are below target, another incoming stream is initiated and data collection is invoked again.

    Collect data using Performance Monitor (Windows)

    1. Run Performance Monitor from the Windows Start menu (click Start, click Run, type Perfmon in the Run dialog box, and then click OK).

    2. In the Performance Monitor contents panel, click Data Collector Sets.

    3. Right-click on the User Defined folder, and then select New > Data Collector Set.

    4. Name your data collector set, select Create from a template, and then click Next.

    5. Select the System Performance template, and then click Next.

    6. Specify a storage location for data to be kept, and then click Finish.

    7. Right-click the new data collector set in Performance Monitor, and then and click Start.

    8. In the Performance Monitor contents panel, navigate to Reports > User Defined and click the data collector you created above. You'll receive a message while it's collecting data. When complete, a page displays the results. These results reflect an average based on one-second samples over 60 seconds of collection.

    Collect data using SAR (Linux)

    1. Enable SAR (System Activity Reports) by editing the /etc/sysconfig/sysstat file and making the following changes:
      ENABLED="true"
    2. Save changes and restart the service.
      sudo service sysstat restart
    3. Enter the following command to collect data:
      sar 1 60 -o filename
      This command writes the data to filename in one-second intervals for one minute (60 seconds).

    4. Convert the data to comma-separated values (CSV) using the following command:
      csadf -d filename >>filename.csv
    5. Open the CSV file in a spreadsheet program to view and manipulate the data.


    Originally Published: 11-17-2014.
    Updated: For Wowza Streaming Engine 4.3.0 on 10-06-2015.

    If you're having problems or want to discuss this article, post in our forum.