Capture Transcoder benchmark statistics in Wowza Streaming Engine

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

Note: Wowza Streaming Engine 4.1 or later is recommended.

Contents


Test approach
Wowza Streaming Engine setup Performance data collection

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 Transcoder specification can be used.
     
    • big_buck_bunny_720p_h264.mov
       
      • Length: 9 minutes 56 seconds
      • Video Size: 1280 x 720 pixels
      • Bitrate: 5.588 megabits per second (Mbps)
      • Framerate: 24 frames per second (fps)
    • big_buck_bunny_1080p_h264.mov
       
      • Length: 9 minutes 56 seconds
      • Video Size: 1920 x 1080
      • Bitrate: 9.727 Mbps
      • Framerate: 24 fps
  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.264 video and AAC or MP3 audio.

For more information about transrating and transcoding, see About Wowza Streaming Engine Transcoder.

Create a 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: Wowza Streaming Engine must be properly licensed to enable Transcoder. For details, see Licensing Transcoder.
For help creating live applications with transcoding enabled, see Set up and run Transcoder in Wowza Streaming Engine.

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.
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 asset across UDP for ingest into Wowza Streaming Engine. You can use other sources to benchmark other streaming workflows. For 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 Streaming Engine 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 Create and use .stream files in Wowza Streaming Engine.

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 change:
    ENABLED="true"
  2. Save change 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:
    sadf -d filename >>filename.csv
  5. Open the CSV file in a spreadsheet program to view and manipulate the data.