Manual Chapter : Accelerating Video Streams with Video Delivery Optimization

Applies To:

Show Versions Show Versions

BIG-IP AAM

  • 14.1.3, 13.1.5, 13.1.4, 13.1.3, 13.1.1, 13.1.0, 13.0.1, 13.0.0

BIG-IP APM

  • 14.1.3, 14.1.2, 14.0.1, 14.0.0, 13.1.5, 13.1.4, 13.1.3, 13.1.1, 13.1.0, 13.0.1, 13.0.0
Manual Chapter

Overview: Optimizing video delivery

BIG-IP® video delivery optimization provides you with the ability to retrieve and accelerate an on-demand video stream from an origin web server. The BIG-IP system sends client requests for the video stream to an origin web server, caches the response video segments, and sequentially sends optimized video responses to all authorized users.

Additionally, video delivery optimization enables you to associate video advertisements with a video stream, providing the ability to preroll advertisements or to insert advertisements as specified by a video advertisement policy.

Task summary for optimizing video streams

Perform these tasks to accelerate video segments by using video delivery optimization.

Task summary

Creating a video advertisement policy

You can create a video advertisement policy to manage the video advertisements that you want to associate with a video stream.
  1. On the Main tab, click Acceleration > Web Application > Policies > Video Ad Policies .
    The Video Ad Policies screen displays a list of existing video advertisement policies.
  2. Click Create.
  3. In the Policy Name field, type a name for the video advertisement policy.
  4. Specify a folder, based on your configuration.
    • For a symmetric or farm configuration, from the Sync Folder list, select the name of a symmetric folder.
    • For an asymmetric configuration, from the Sync Folder list, select No Selection.
  5. Optional: In the Description field, type a description.
  6. For the Mode setting, select the applicable option:
    • Sequential displays video advertisements sequentially.
    • Random displays video advertisement randomly.
  7. In the Name field, type a name.
  8. In the URL field, type the URL for the video advertisement.
  9. Select the Preroll check box to enable prerolling of the video advertisements.
  10. Click Add.
    The advertisement resource appears in the Ad URL's list.
  11. Click Save.
The video advertisement policy is configured, as specified, to manage the advertisements that you want to associate with a video stream.

Modifying a video advertisement policy

You can modify a user-defined video advertisement policy, as necessary.
  1. On the Main tab, click Acceleration > Web Application > Policies > Video Ad Policies .
    The Video Ad Policies screen displays a list of existing video advertisement policies.
  2. Click the name of a user-defined video advertisement policy.
  3. Optional: In the Description field, type a description.
  4. For the Mode setting, select the applicable option:
    • Sequential displays video advertisements sequentially.
    • Random displays video advertisement randomly.
  5. In the Name field, type a name.
  6. In the URL field, type the URL for the video advertisement.
  7. Select or clear the Preroll check box to enable or disable prerolling of the video advertisements.
  8. Click Add.
    The advertisement resource appears in the Ad URL's list.
  9. From the Ad URL's list, click Delete for the advertisement resource that you want to modify, and then complete the following steps in the Ad Resources area.
    • In the Name field, type a name.
    • In the URL field, type the URL for the video advertisement.
    • Select or clear the Preroll check box to enable or disable insertion of the specified advertisement into the video stream.
    • Click Add.
  10. Click Save.
The video advertisement policy is modified, as specified, to manage the advertisements that you want to associate with a video stream.

Deleting a video advertisement policy

You can delete a video advertisement policy, as necessary.
  1. On the Main tab, click Acceleration > Web Application > Policies > Video Ad Policies .
    The Video Ad Policies screen displays a list of existing video advertisement policies.
  2. Select the check box for each video ad policy that you want to delete.
  3. Click Delete.
  4. Click Delete.
The specified video advertisement policies are deleted.

Enabling video delivery optimization

In an acceleration policy, you can use video delivery optimization to retrieve and accelerate an on-demand video stream from an origin web server.
  1. On the Main tab, click Acceleration > Web Application > Policies .
    The Policies screen displays a list of existing acceleration policies.
  2. Click the name of a user-defined acceleration policy.
  3. Expand the Policy Tree to a branch node or leaf node, and click the node.
  4. From the Matching Rules menu, choose Acceleration Rules.
  5. On the menu bar, click Video.
    The screen refreshes to show video options.
  6. Optional: In the Video Optimization Options area, configure the options, as necessary.
    1. Select the Enable Fast Start check box to enable caching in accordance with cache priority settings.
    2. In the Maximum Bitrate field, type a maximum bit rate (in kbps) for the video stream.
  7. Optional: In the Video Advertisement Options area, configure the options, as necessary.
    1. Select the Enable Ad insertion check box to insert the specified advertisement into the video stream.
    2. In the Ad Insertion Period field, type the period (in seconds) to display the advertisement.
    3. Select the Enable Preroll Ads check box to preroll the specified advertisements.
    4. From the Ad Policy list, select a video advertisement policy.
  8. Click Save.
  9. On the menu bar, click Responses Cached.
  10. From the Cache Priority list, select a priority to determine the caching priority for the video segments associated with the node.
    Important: If you have selected the Cache content on first hit check box, the Cache Priority setting is overridden and not used. You must clear the Cache content on first hit check box to enable the Cache Priority functionality.
  11. Click Save.
The video advertisement policy is configured according to the specified settings.

Modifying video delivery optimization

You can modify the settings for video delivery optimization, as necessary.
  1. On the Main tab, click Acceleration > Web Application > Policies .
    The Policies screen displays a list of existing acceleration policies.
  2. Click the name of a user-defined acceleration policy.
  3. Expand the Policy Tree to a branch node or leaf node, and click the node.
  4. From the Matching Rules menu, choose Acceleration Rules.
  5. On the menu bar, click Video.
    The screen refreshes to show video options.
  6. Optional: In the Video Optimization Options area, configure the options, as necessary.
    1. Select the Enable Fast Start check box to enable caching in accordance with cache priority settings.
    2. In the Maximum Bitrate field, type a maximum bit rate (in kbps) for the video stream.
  7. Optional: In the Video Advertisement Options area, configure the options, as necessary.
    1. Select the Enable Ad insertion check box to insert the specified advertisement into the video stream.
    2. In the Ad Insertion Period field, type the period (in seconds) to display the advertisement.
    3. Select the Enable Preroll Ads check box to preroll the specified advertisements.
    4. From the Ad Policy list, select a video advertisement policy.
  8. Click Save.
  9. On the menu bar, click Responses Cached.
  10. From the Cache Priority list, select a priority to determine the caching priority for the video segments associated with the node.
    Important: If you have selected the Cache content on first hit check box, the Cache Priority setting is overridden and not used. You must clear the Cache content on first hit check box to enable the Cache Priority functionality.
  11. Click Save.
Video optimization for the node is modified, as specified.

Overview: Video Quality of Experience profile

The BIG-IP® system's video Quality of Experience (QoE) profile enables you to assess an audience's video session or overall video experience, providing an indication of customer satisfaction. The QoE profile uses static information, such as bitrate and duration of a video, and video metadata, such as URL and content type, in monitoring video streaming. Additionally, the QoE profile monitors dynamic information, which reflects the real-time network condition.

By considering both the static video parameters and the dynamic network information, the user experience can be assessed and defined in terms of a single mean opinion score (MOS) of the video session, and a level of customer satisfaction can be derived. QoE scores are logged in the ltm log file, located in /var/log, which you can evaluate as necessary.

Task summary

Creating an iRule to collect video Quality of Experience scores

You can create an iRule to use with a video Quality of Experience (QoE) profile that defines the QoE scores to collect.
  1. On the Main tab, click Local Traffic > iRules .
    The iRule List screen opens, displaying any existing iRules.
  2. Click Create.
    The New iRule screen opens.
  3. In the Name field, type a name, such as my_irule.
    The full path name of the iRule cannot exceed 255 characters.
  4. In the Definition field, type the syntax for the iRule using Tool Command Language (Tcl) syntax.
    For complete and detailed information about iRules syntax, see the F5 Networks DevCentral web site (http://devcentral.f5.com).
    For example, the following iRule saves Content-Type to session DB with a 600-second lifetime.
    …
    when HTTP_REQUEST {
       set LogString "Client [IP::client_addr]:[TCP::client_port] -> 
       [HTTP::host][HTTP::uri]"
       set x_playback_session_id [HTTP::header "X-Playback-Session-Id"]
    }
    
    when HTTP_RESPONSE {
       set content_type [HTTP::header "Content-Type"]
    }
    
    when CLIENT_CLOSED {  
       catch {
          if { ($content_type contains "video") && 
             ([QOE::video available] == 1) } {
             set qoe_params [list available width height duration nominal_bitrate 
             average_bitrate freeze_period freeze_frequency mos] 
             foreach param $qoe_params {
                set value [QOE::video $param]
                append params "$param=$value "
             }
             if {[string length $x_playback_session_id]}{ 
                log local0. "$LogString X-Playback-Session-Id:
                $x_playback_session_id QOE::video $params"
             } else {
                log local0. "$LogString QOE::video $params"
             }
          } 
       }
    }
  5. Click Finished.
    The new iRule appears in the list of iRules on the system.
There is now an available iRule to use with a QoE profile that collects specified QoE scores.

Creating an iRule to collect static information about video files

You can create an iRule to collect static information specific to video files, primarily for use with Policy Enforcement Manager™ (PEM).
  1. On the Main tab, click Local Traffic > iRules .
    The iRule List screen opens, displaying any existing iRules.
  2. Click Create.
    The New iRule screen opens.
  3. In the Name field, type a name, such as my_irule.
    The full path name of the iRule cannot exceed 255 characters.
  4. In the Definition field, type the syntax for the iRule using Tool Command Language (Tcl) syntax.
    For complete and detailed information iRules syntax, see the F5 Networks DevCentral web site (http://devcentral.f5.com).
    For example, the following iRule collects static information specific to video files.
    when QOE_PARSE_DONE {           
      set w [QOE::video width]           
      set h [QOE::video height]           
      set d [QOE::video duration]           
      set b [QOE::video nominal_bitrate]           
      log local0. "QOE_PARSE_DONE_ENABLED: width=$w height=$h 
      bitrate=$b duration=$d"  
    }
  5. Click Finished.
    The new iRule appears in the list of iRules on the system.
There is now an iRule available to collect static information specific to video files.

Creating a video Quality of Experience profile

You can use the Traffic Management shell (tmsh) to create a video Quality of Experience (QoE) profile to use with Policy Enforcement Manager™ (PEM™) or Application Acceleration Manager™ (AAM™) and determine a customer's video Quality of Experience.
  1. Log in to the command-line interface of the system using the root account.
  2. Open the Traffic Management Shell (tmsh).
    tmsh
  3. Create a video QoE profile.
    create ltm profile qoe qoe_profile_name video true
This creates the video QoE profile.

Creating a pool

You can create a pool of servers that you can group together to receive and process traffic.
  1. On the Main tab, click Local Traffic > Pools .
    The Pool List screen opens.
  2. Click Create.
    The New Pool screen opens.
  3. In the Name field, type a unique name for the pool.
  4. Using the New Members setting, add each resource that you want to include in the pool:
    1. (Optional) In the Node Name field, type a name for the node portion of the pool member.
    2. In the Address field, type an IP address.
    3. In the Service Port field, type a port number, or select a service name from the list.
    4. (Optional) In the Priority field, type a priority number.
    5. Click Add.
  5. Click Finished.
  6. Repeat these steps for each pool you want to create.
The new pool appears in the Pools list.

Creating a video Quality of Experience virtual server

Before creating a video Quality of Experience (QoE) virtual server, you need to have created and configured a video QoE profile.
You can assign video QoE profile to a virtual server.
  1. On the Main tab, click Local Traffic > Virtual Servers .
    The Virtual Server List screen opens.
  2. Click the Create button.
    The New Virtual Server screen opens.
  3. From the HTTP Profile list, select http.
  4. In the Resources area, for the iRules setting, from the Available list, select the name of the iRule that you want to assign, and move the name into the Enabled list.
  5. In the Resources area of the screen, from the Default Pool list, select the relevant pool name.
  6. Click Finished.
  7. Log in to the command-line interface of the system using the root account.
  8. Open the Traffic Management Shell (tmsh).
    tmsh
  9. Assign the video QoE profile to the virtual server.
    modify virtual_server_name profile add qoe_profile_name
This assigns the video QoE profile and iRules to the virtual server.