Broadcast Graphics Overlay Software For Windows
XeusMedia Character Generator, CG Software, Channel Branding, Realtime Interactive Broadcast Graphics, Graphic Overlay. Xeus CG has built in preview window which operators can check new coordinates of the updated object or new added graphic element. E3 Card Reader Service Mode Files. Preview gives the the abilty to create new designs.
This article provides instructions for developers about how to use Wowza Transcoder to place overlay images onto live broadcast streams. This article describes the steps of creating a custom Transcoder module, adding a static image to the video, adding text to the video, fading the image and text, and animating the image and text. The examples and classes in this article provide a starting point for development.
More elaborate overlays are possible through custom development by expanding the examples or by creating custom classes. Note: You can download the sample overlay images and helper classes that are referenced in this article.. Prerequisites This feature requires advanced technical skills. This article is intended for developers who are familiar with Wowza Media Server and are experienced with Java programming and XML. We recommend that you get a live stream playing through the Wowza Media Server to a client by doing the following: • It's important that your server is properly tuned. For more information, see. • Follow the tutorial, for step-by-step configuration instructions.
Before creating the Transcoder module for overlays, be sure to test basic live setup and playback of a single transcoded 360p stream. See Test #1 and Test #2 in the section of the tutorial.
The overlay example in this article uses the application name live and the stream name myStream. • Copy the example overlay content to your Wowza Media Server. Copy all the files in the content directory that is included in to the content directory of your Wowza Media Server installation ( [install-dir]/content). Note: If you choose to create your own overlay images, be sure to review the. Create a new Transcoder module To overlay an image or text on a live stream, a Transcoder module must be created. This example uses the. • Create a new project.
• Use the Wowza IDE to create a new Wowza Media Server Project: • Project name: ModuleTranscoderOverlayExample • Wowza Media Server location: Select the install directory where WMS300 is installed. • Package: com.wowza.wms.plugin.transcoderoverlays • Name: ModuleTranscoderOverlayExample • Under Run >Run Configurations, select ModuleTranscoderOverlayExample. • On the Arguments tab, add the following to the VM arguments. ModuleTranscoderOverlayExample Example Overlay com.wowza.wms.plugin.transcoderoverlays.ModuleTranscoderOverlayExample • Start Wowza Media Server and check for the message, 'INFO server comment - onAppStart: live/_definst_' in the default message log or set a break point on onAppStart.
Create a Transcoder module The overlayExample uses the following Wowza base classes and interface to overlay a graphic on the video: • IliveStreamTranscoderNotify • LiveStreamTranscoderActionNotifyBase • TranscoderVideoDecoderNotifyBase The example also includes the OverlayImage and AnimationEvents classes for quick drawing and animation. You must add these two classes to the project.
• Modify the ModuleTranscoderOverlayExample class. • Import the following. Source (encodeSource=true): • Benefits: Only one graphic operation is used. • Drawbacks: The graphics are rescaled and may not appear as the user intends.
Also, fonts aren't redrawn and are rescaled with image reduction. You can put graphics outside the source video if the video is scaled back ('pinched'). For example, if a video was originally 640 x 480 and is pinched to 640 x 400 to provide space at the bottom of the TV for graphics. Destination (encodeSource=false): • Benefits: Individual graphics can be used for each encoder if needed and fonts are drawn at a size to match the destination.
Also, the source can be pinched and graphics drawn outside the video. • Drawbacks: Multiple graphic operations are used for each encoder (720p, 360p, etc.) showTime Setting the showTime variable in onBeforeScaleFrame will cause the code to send the current time as the text for wowzaText. This variable is used in this example to demonstrate dynamic text by using the current time in an overlay image. ScalingFactor This double value defines the relationship between the destination video and source video. A value of.5 means that the destination video is half the size of the source video while a value for 2.0 means that the destination video is twice the size of the source video.
After you complete these steps, the project should compile, build, and run. However, you won't see an image on the video yet. Create an image on the video • Add the following command to the end of the TranscoderVideoDecoderNotifyExample constructor to add the logo image (logo_1.png) to the video. //create a transparent container for the bottom third of the screen. MainImage = new OverlayImage(0,srcHeight-lowerThirdHeight,srcWidth,lowerThirdHeight,100); //Create the Wowza logo image wowzaImage = new OverlayImage(basePath+graphicName,100); mainImage.addOverlayImage(wowzaImage,srcWidth-wowzaImage.GetWidth(1.0),0); mainImage is the base container for all animation. It represents a transparent lower 3rd for all other images and text.
WowzaImage is the logo that is drawn on mainImage relative to its x,y position. When viewing myStream_360p and all other streams in [install-dir]/examples/LiveVideoStreaming/FlashHTTPPlayer/player.html, the Wowza logo should be displayed in the lower-right corner. Create text on the video • Add text to the bottom of the image.
//Add Text with a drop shadow wowzaText = new OverlayImage('Wowza', 12, 'SansSerif', Font.BOLD, Color.white, 66,15,100); wowzaTextShadow = new OverlayImage('Wowza', 12, 'SansSerif', Font.BOLD, Color.darkGray, 66,15,100); mainImage.addOverlayImage(wowzaText, wowzaImage.GetxPos(1.0)+12, 54); wowzaText.addOverlayImage(wowzaTextShadow, 1, 1); This will add the text 'Wowza' to the bottom of the OverlayImage with a drop shadow. When viewing myStream_360p and all other streams in [install-dir/examples/LiveVideoStreaming/FlashHTTPPlayer/player.html, the Wowza logo and text should be displayed in the lower-right corner. Fade the image and text in and out To fade the image and text in and out, the OverlayImage class has the addFadingStep method for adding an event to fade the overlay. //Fade the Logo and text independently wowzaImage.addFadingStep(100,0,25); wowzaImage.addFadingStep(0,100,25); wowzaText.addFadingStep(0,100,25); wowzaText.addFadingStep(100,0,25); The addFadingStep method takes the parameters: (,,). The example code above takes the image opacity value from 0 to 100 in increments of 4 ((end-start)/steps) or ((100-0)/25) and then the reverse (taking the image opacity from 100 to 0). It will keep repeating these events. If the values are addFadingStep(0,100,200), the image would fade in increments of 0.5 ((100-0)/200)) and take longer.
With the above example code, the Wowza logo and text should be displayed in the lower-right corner and fade in-and-out independently of each other when viewing myStream_360p and all other streams in [install-dir]/examples/LiveVideoStreaming/FlashHTTPPlayer/player.html. //Pinch back video videoBottomPadding.addAnimationStep(0, 60, 50); videoBottomPadding.addAnimationStep(100); //unpinch the video videoBottomPadding.addAnimationStep(60, 0, 50); mainImage.addFadingStep(50); wowzaImage.addImageStep(50); wowzaText.addMovementStep(50); videoBottomPadding.addAnimationStep(100); Troubleshooting • Using overlays can put additional load on your server because the complicated image manipulation that occurs when creating image overlays can consume a lot of processing power. This can cause Transcoder to skip frames when transcoding and delay the video. It's important that your server be properly tuned for maximum resources. For more information, see. • It's recommended that you keep the dimensions of your overlay image small. If your throughput is 30 frames-per-second (fps) and it takes more than 1/30 second to render the image, then the Transcoder may start to skip frames.
• This feature supports manipulation of images and text to generate animation sequences. It does not support stream manipulation such as Picture-in-picture (PiP) or multi-stream compositing.
• Using Transcoder to place overlay images onto video-on-demand (VOD) streams isn't supported. • Static overlay images that you create by setting Overlays properties in transcoder template files for decoded and encoded streams will be overridden by the dynamic overlays that you create using this feature. • Closed captions that you create in Wowza Media Server will be displayed on top of dynamic overlays that you create using this feature. If you're having problems or want to discuss this article,.