English | 简体中文
IP Video Streaming Transcoding Conference Surveillance Solution At Low Cost

Introduction

IP Video Transcoding Streaming Infrastructure
IP Video Transcoding Live! Screen Shot
Screen Shot
(Click to view full size)

IP Video Transcoding Live! (Abbreviation IPVTL) is a professional multi-channel live transcoding software designed for live media streaming over the internet, like cable and satellite TV digital video broadcasting, video surveillance and event webcasting.

IPVTL provides high density transcoding capability with lowest latency. Running on high performanced Intel Xeon processors with NVIDIA Quadro / Tesla video card acceleration, IPVTL is able to transcode up to 64 channels HDTV for internet audience on 1 single server. It has full support of common media encodings today, such as G.7xx, MP2/3, AMR, AAC, AC3, H.263(+), H.264(AVC), H.265(HEVC), MPEG-1, MPEG-2 and MPEG-4, also including the HTML5 video - VP8 VP9.

IPVTL accepts all kinds of media materials as transcoding input, including pre-recorded media files, TV tuner cards and network streams such as HTTP, MMS, RTSP, RTMP (flash video), RTP and MPEG-TS (DVB-S). It works well with familiar media streaming servers including Windows Media Service, RealNetworks® Helix Server, Adobe® Media Server, Wowza Streaming Engine, Nginx and other popular DVB-S devices in the market like Dreambox®.

Windows Media Server Adobe Flash Media Server Apple Quick Time RealNetworks Real Server DVB

IPVTL provides on-demand media file streaming as well. It can stream from any pre-recorded movie clips on your local disk, with transcoding on the fly. Any media file type with any codec is supported. What's more, you can schedule stream play list via streaming from folder (available on Windows currently).

For output, IPVTL supports the most popular streaming protocols today - Apple HLS and Flash RTMP pushing to Nginx-rtmp, Adobe Media Server, Wowza Streaming Engine or Red5 Media Server. MPEG-TS output in constant bit rate (CBR) is available for best compatibility with most IPTV STB and other devices.

IPVTL gives you full control of video and audio encoding profiles customized to your system requirements. Video resolution, quality, frame rate and bit rate, you can reshape your video stream fast and simple. IPVTL also provides professional video post process functions such as logo/delogo, watermarking and subtitle overlay.

For native RTP streams, the input and output media attributes can be easily imported or exported through SDP files (RFC 2327), which can then be fed to other collaborating applications in the whole scenario.

Main Features
  • Input from HTTP/RTSP/MMS/RTMP URLs
  • Input from Local Media Files & Folders
  • Input from BlackMagic DeckLink and other DirectShow Compatible Capture Cards
  • Live TV Streaming with Time Shifting
  • Adobe HTTP Dynamic Streaming (Multi-bitrate RTMP Stream Delivery)
  • Apple HLS Adaptive Bitrate Streaming new
  • Video Deinterlace / Crop / Pad / Sharpen / Blur / Overlay / Delogo
  • Intel Quick Sync Video Accelerated H.264 & HEVC Encoding new
  • NVIDIA NVENC Accelerated H.264 & HEVC Encoding new
  • 24/7 Unattended Streaming with Auto Failure Recovery

Product Specification

Input Formats Supported Output Formats Supported Codecs Supported
  • G.7xx
  • MP2/MP3
  • MP4A/AAC
  • AMR
  • AC3
  • Real Audio
  • Windows Media Audio
  • H.263
  • H.263+/++ (aka H.263-1998/2000)
  • H.264/AVC (Baseline/Main/High/High 10/High 4:2:2/High 4:4:4)
  • H.265/HEVC
  • JPEG/MJPEG
  • MPEG-1 Video
  • MPEG-2 Video
  • MPEG-4/Visual
  • Real Video
  • Windows Media Video
  • On2 VP6
  • Webm VP8
  • Webm VP9
  • dvb/dvd subtitle
  • srt/subrip subtitle
  • webvtt subtitle
  • movtext subtitle
Hardware Acceleration Output Video Resolution System Requirements

Pricing

We offer very competitive price against other live transcoding solutions, starting from $120. Once you buy our software, you get lifetime license and don't have to pay annually to keep it working. As an example please see pricing comparison with Wowza Transcoder Addon below:

Number of Channels Wowza Transcoder Addon Pricing IP Video Transcoding Live Pricing
1 $240 / Year $120
4 $960 / Year $240
16 $2,256 / Year $480
64 $11,232 / Year $960

Also we have discount for volume channel/license purchase. For more pricing details about IPVTL, please send email to sales#ipvideotrans.com.

Download

IP Video Transcoding Live! v5
16 Channel Evaluation
30 Day Free Trial
IPVTL windows trial download
Windows Executable Installer
For Windows XP/Vista/7/8/10,
Windows Server 2003/2008/2012
32-bit and 64-bit
IPVTL linux trial download
Linux x64 Bzip2 Package
For CentOS, Debian, Ubuntu 64 bit
Linux x86 Bzip2 Package
For CentOS, Debian, Ubuntu 32 bit

Version Updates

v5.9.3.0
  - MPEG DASH output format support
  - Web interface to edit channel settings
  - Fix Intel Quick Sync Video acceleration issue on Linux
  - Daemon (background) running mode under Linux

v5.8.3.0
  - RTSP output format support
  - Web interface for live channel status management

v5.7.2.8
  - CPU affinity management for multiple processor system on Windows
  - Enhanced streaming failure recovery

v5.6.2.8
  - Optimized software H.264 encoding performance on multiprocessor system
  - Presets for NVIDIA NVENC accelerated encodings
  - Intel QSV acceleration bugfix on Linux
  - Blackmagic Decklink video card input & output support on Linux

v5.5.2.8
  - Intel Quick Sync Video accelerated HEVC encoding supported (requires Intel 6th generation Skylake Core processors)

v5.5.2.7
  - Intel Quick Sync Video accelerated H.264 encoding supported. See list of supported Intel processors with HD Graphics on Intel website

v5.5.2.6
  - NVIDIA NVENC (GPU accelerated) H.264/HEVC encoding supported. See list of supported NVIDIA Quadro, Tesla, and GRID GPUs on NVIDIA website
  - Smarter detection of dead streaming

v5.4.2.6
  - H.265/HEVC encoding support
  - DXVA2 accelerated decoding

v5.3.2.5
  - MPEG-DASH segmenting muxer
  - Potential memory leak fix in folder streaming

v5.2.2.2
  - HTTPS input support
  - MPEG-TS over RTP input support
  - HLS multi-bitrate streaming
  - Optimized time shifted streaming with break no more
  - Animated logo overlay support (through GIF)

v5.1.1.2
  - m3u8 playlist (HTTP Live Streaming) output support
  - RTMP multi-bitrate streaming
  - Improved streaming performance

v5.0.1.2
  - MPEG-TS over HTTP output support
  - H.264 encoder upgrade, new profiles introduced
  - New UI for Source Stream Selection (with MPEG-TS program selection)
  - RTMP tunnelling support
  - Source & Target custom parameters
  - Memo for each channel

v4.9.11.2
  - MPEG-TS DVB subtitle stream pass thru
  - Live stream time shifting on Linux

v4.8.11.2
  - RTSP over TCP support

v4.8.11.1
  - DirectShow capture source support
  - CBR mode for MPEG-TS output

v4.7.8.11
  - RTMP SWF verification support

v4.5.10.0
  - Live stream time shifting on Windows
  - New UI for advanced format settings

Getting Started

1. Installation

For Windows user, just download and run executable installer to install IPVTL to your computer. Start IPVTL from Windows Program Menu or desktop as you like.

For Linux user, first download and extract the tarball to local folder, /opt/ipvtl for example. Then open Linux console and go to that folder, start IPVTL by entering command like ./ipvtl_16ch_trial.

In IPVTL versions before 5.8.3.1, Linux users have to edit config file manually to set up transcoding channels, which makes it a big step to start. From version 5.8.3.1, IPVTL has web interface built inside, making it possible to set up channels and do runtime channel management in a web browser. The web interface can be accessed at http://<Host_IP>:<HTTP_Port>, where Host_IP is the network address of computer running IPVTL, and HTTP_Port is HTTP service port as configured in Global Settings, for example http://127.0.0.1:8888/. Both Windows and Linux users may find it easy to use, either setting up transcoding channels or manipulating channel status, locally or remotely.

To set up transcoding channel in IPVTL, only a few following steps are required.

2. Select Your Media Source

media source
Select Media Source

Be sure to make clear your media source type before starting. Click New Channel button to create a new transcoding channel with default settings. In the channel list panel, select appropriate streaming protocol and enter the URL of the media source.

3. Setup Output Stream

GUI
Transcoding Panel

First, select target stream format you demand appropriately, among RTMP, MPEG-TS over UDP/RTP/HTTP, m3u8 Playlist (HLS), MPEG DASH, Decklink playback card and Native RTP. Then enter target address and modify encoding details if necessary. You can change video resolution, frame rate, quality level, encoding bit rate and audio sample rate, etc.

Once you've finished with the settings, click Apply button to validate and save your configuration. You can always change transcoding settings by clicking Edit button at a later time. But remember setting changes won't make effect to a live channel, until the channel is restarted.

4. Start Streaming!

After a new transcoding channel is set up, you may enter some memo about the channel in the list to keep it simple to identify. The red light in the last column (stop) indicates the channel is not started yet. Click Start button to start transcoding. If everything is OK, the status light will switch to green (start), which means the channel is running good now. If there is any problem unfortunately, please go to Troubleshooting section below, or send feedback to support#ipvideotrans.com with your transcoding settings and channel log file attached.

You may validate the output stream by using some network traffic monitors such as Wireshark (wiresharkhttp://www.wireshark.org). More specifically, you can play the stream using network media players like VLC (vlchttp://www.videolan.org/vlc). For native RTP streams, please feed the player with the SDP file exported from IPVTL. For MPEG-TS/PS streams, just open the network address that transcoding targets. Due to network cache values set in VLC player, there could be playback latency while watching.

Advanced Settings

Configuration

As an alternative to setup transcoding channels in IPVTL GUI, you can do this by editing the configuation file manually. The file is named <ipvtl.conf>. On Linux it's located in the program installed folder while on Windows it's in %APPDATA%\IPVideoTrans\ipvtl.

Tip: The program shares a same config file format between Windows version and Linux version. So for Linux users it'd be convenient to do configuration on Windows and copy it to the Linux box.

Config Sample of 1 Channel:

# IP Video Transcoding Live Configuration File

HTTPPort 8888                      # local service port for MPEG-TS over HTTP output
Log 0                              # log level, to write log change it to 32, 0 to disable
AutoStart 0                        # automatically start with Windows
AutoRestart 1                      # automatically restart transcoding on failure

<Channel1>                         # channel settings begin
 Enable 1                          # enable this channel
 <Input>                           # input settings begin
  Format file                      # source stream format
                                   # options: file/rtp/mpeg-ts/device/decklink
  File "e:\video\sample.mp4"       # source media file path, url or device name
  SourceParam ""                   # extra source param
  VideoEnable 1                    # receive video stream (RTP input only)
  VideoCodec H264                  # source video encoding (RTP input only)
                                   # options: H263/H263+/H264/H265/MP1V/MP2V/MP4V
  VideoIP 0.0.0.0                  # network address on video receiving (RTP input only)
  VideoPort 10000                  # network port on video receiving (RTP input only)
  VideoFmtp ""                     # extra format parameters of video stream
                                   # from SDP (RTP input only)
  AudioEnable 1                    # receive audio stream (RTP input only)
  AudioCodec PCMU                  # source audio encoding (RTP input only)
                                   # options: PCMU/PCMA/MP2A/MP3/AAC/AC3
  AudioSampleRate 0                # audio sampling rate (RTP input only)
  AudioChannel 0                   # audio channels (RTP input only)
  AudioIP 0.0.0.0                  # network address on audio receiving (RTP input only)
  AudioPort 10002                  # network port on audio receiving (RTP input only)
  AudioFmtp ""                     # extra format parameters of audio stream
                                   # from SDP (RTP input only)
  </Input>                         # input settings end
  <Output>                         # output settings begin
   NumOutputs 1                    # number of output profiles (for rtmp & hls multi-bitrate stream)
   <Output1>                       # output profile begin
   Format file                     # output stream format
                                   # options: file/rtp/mpeg-ts/http/decklink
   VideoEnable 1                   # enable video output
   VideoCodec H264                 # video encoding
                                   # options: H263/H263+/H264/H265/MP1V/MP2V/MP4V/FLV/
                                   # QSV264/QSV265/NV264/NV265, or Copy for no transcoding
   VideoWidth 0                    # video frame width (0 for original)
   VideoHeight 0                   # video frame height (0 for original)
   VideoFrameRate 0                # video frame rate in FPS (0 for original)
   VideoKeyFrameInterval 0         # video key frame interval (gop)
   VideoQuality 0                  # video quality level (0 for default)
   VideoBitRate 0                  # video encoding bit rate in Kbps (0 for default)
   VideoIP 192.168.0.1             # network address on sending video stream (RTP output only)
   VideoPort 20000                 # network port on sending video stream (RTP output only)
   VideoGlobalHeader InBand        # global header of video stream (RTP output only)
                                   # values: InBand/OutOfBand
   AudioEnable 1                   # enable audio output
   AudioCodec AAC                  # audio encoding
                                   # values: PCMU/PCMA/MP2A/MP3/AAC/AC3, or Copy for no transcoding
   AudioSampleRate 0               # audio sampling rate (0 for original)
   AudioChannel 2                  # audio channels (0 for original)
   AudioIP 192.168.0.1             # network address on sending audio stream (RTP output only)
   AudioPort 20002                 # network port on sending audio stream (RTP output only)
   AudioGlobalHeader InBand        # global header of audio stream (RTP output only)
   MuxBitRate 0                    # muxing bit rate in Kbps for mpeg-ts cbr output
   RTMPFlashVer                    # flash version string (rtmp output only)
   RTMPSwfUrl                      # flash swf url (rtmp output only)
   RTMPPubUser                     # publish username (rtmp output only)
   RTMPPubPass                     # publish password (rtmp output only)
   File "rtmp://1.2.3.4/live/123"  # output string (rtmp url, udp address or device name)
  </Output1>                       # output profile end
  MapParam ""                      # source stream selection (mpeg-ts input only)
  FormatParam ""                   # advanced format param
  Filters 0                        # video post-proc settings
  TimeShift 0                      # time-shifting delay in seconds
  TimeShiftCacheFolder ""          # time-shifting cache folder
  TargetParam ""                   # extra target param
  Memo ""                          # channel memo (Windows version only)
 </Output>                         # output settings end
</Channel1>                        # channel settings end

Please do note after editing the configuration file, you have to restart IPVTL to make effect.

Troubleshooting

What hardware spec do I need for 16/32/64 channel transcoding? Shall I choose CPU or GPU transcoding?

Intel Processor Model Software H.264 Transcoding Capability
(Channels)
SD (720x576) HD720p HD1080p
Xeon e3-1230v3 uni processor 8 6 4
Xeon e5-2620v3 dual processors 16 12 8
Xeon e5-4607 quad processors 32 24 16
Xeon e7-4850 quad processors 64 48 32

IPVTL utilizes both CPU and GPU encoding technique. The transcoding capacity is basically decided by both the CPU/GPU performance and the video encoding profile you demand. For high density transcoding, we recommend Intel Xeon and NVIDIA tesla/grid processors, as they have better parallel computing performance. As a reference, please see H.264 transcoding benchmarks of different Intel Xeon processor models in the right table.

Requirements in system memory can be calculated by 100MB per channel.

If you have a serious demand in video quality, for example for digital TV broadcasting, software transcoding is strongly recommended against GPU transcoding.


Can IPVTL broadcast to end user directly? How can I broadcast my video to internet audience using IPVTL?

IPVTL is designed for live media transcoding only. Although IPVTL can output mpeg ts over http format, it does NOT provide media stream distribution for high volume audience over the internet. You will need 3rd party media streaming server to do that, like Nginx, Wowza media server, Adobe media server, etc.

See how to setup IPVTL with Nginx in instructions above.


Transcoding stops immediately on starting (Status light quickly switches from green to red). Why's that?

That usually indicates improper settings in the transcoding channel. Please first validate transcoding source using tools like vlc player. If you are transcoding from RTP or MPEG-TS, make sure that the local port specified in IPVTL is not occupied by other processes in the system. (On Windows, open a console window and type "netstat -anop udp/tcp" to see all UDP/TCP ports opened on the host.) If the output format is rtmp, make sure the rtmp server is running properly and the rtmp url is valid.

If there are still problems, please send us feedback via email to support[at]ipvideotrans.com. In your feedback, please let us know your detailed transcoding settings and attach channel log files if possible. To get channel log files, please first enable Debug Log in IPVTL Global Settings (for Windows), or change "log 0" to "log 32" in ipvtl.conf (for Linux) before starting the channel.


Transcoding starts OK. But I can't see video output in VLC.

Check transcoding source validy and ensure IPVTL is receiving input stream with tools mentioned above. Make sure VLC is running exactly on IPVTL's output address and is receiving stream out from IPVTL. Open message log in VLC (Tools->Messages) and set log level to max to see full logs. If you are transcoding video stream into H.263, remember VLC DOES NOT support H.263 RTP stream playing (only H.263+).

If still no video output, please enable Debug Log in IPVTL global settings and send the log file back to us (support[at]ipvideotrans.com) to analyze.


Why is there no gui in Linux version? How do I set it up in Linux?

Setting up IPVTL on Linux is a bit complicated than on Windows.

First you need to extract the tarball under linux, to /opt/ipvtl for example. In the directory that IPVTL was extracted, open and edit config file <ipvtl.conf> as per config directions in this manual. To make things easier, you may do the configuration in Windows version and copy the config file to Linux box. After that, start running IPVTL by entering command like "./ipvtl_16ch" under console.

Starting from version 5.8.3.1, IPVTL has built-in web interface for runtime channel status and settings management. The interface can be accessed at http://<Host_IP>:<HTTP_Port>/, where Host_IP is the network address of computer running IPVTL, and HTTP_Port is HTTP service port configured in Global Settings. For example http://127.0.0.1:8888/.


How to run IPVTL in the background as daemon on Linux?

IPVTL runs as daemon on Linux starting from version 5.9.3.0. It is easy to start IPVTL under remote ssh login now. To stop IPVTL running, simply pgrep ipvtl and kill the process.


Can I run IPVTL single license on multiple computers?

No. IPVTL software license is bound to per server instance. If you want to run it on more than 1 server instances, you need to purchase multiple licenses.


Video quality is poor. How to improve?

First please make sure the source video quality is fine using tools like vlc player. Remember there is always quality loss during transcoding. You CAN NEVER get better output quality than the source.

If you want to tune video quality for H.264 / HEVC encoding, please try different Encoding Preset in advanced video settings (see in setup instructions). Setting video Quality in the main gui is NOT recommended and it should be kept as default.

For other video encodings than H.264 and HEVC, setting video Quality and video Bitrate can both impact the output quality. Make sure the video bit rate is not set too low. If you don't understand about bit rate, just leave it default.


How do I use Intel Quick Sync Video acceleration in IPVTL?

First of all make sure your processor is capable of Intel QSV here. To enable Intel QSV acceleration in Windows version IPVTL, you need to install the latest Intel HD Graphics driver. Always make sure the driver has been updated to latest one. Outdated video driver could cause transcoding failure. If driver is installed all right, in IPVTL you can set video encoding to Intel QuickSync H.264 or Intel QuickSync HEVC to enable QSV accelerated transcoding.

To enable Intel QSV in Linux version IPVTL is a bit more complicated. First you need to install Intel Media Server Studio on your system. The package contains linux kernel module with Intel HD video driver required. Detailed install instructions can be found in Intel Media Server Studio Getting Started Guide. Make sure Intel media sdk libraries (libmfx*.so) can be found and loaded in system library path. If not, add Intel media sdk library path (e.g. /opt/intel/mediasdk/lib64) to environment variable LD_LIBRARY_PATH. If everything is ok, in IPVTL config you can set output VideoCodec to QSV264 (H.264 encoding) or QSV265 (HEVC encoding) to enable QSV accelerated transcoding.


How do I use NVIDIA NVENC acceleration in IPVTL?

First of all make sure your video card is capable of NVENC here. Then you need to install the latest NVIDIA video driver to enable NVENC acceleration. In IPVTL Windows version, set video encoding to NVIDIA NVENC H.264 or NVIDIA NVENC HEVC to enable QSV accelerated transcoding. In Linux version config file, set output VideoCodec to NV264 for h.264 encoding, or NV265 for HEVC encoding.

Note: NVIDIA GeForce GPU has a limit of 2 encode sessions per system. Quadro, Tesla and GRID don't have such limit.


How can I stream with subtitle in IPVTL?

IPVTL supports 2 kinds of subtitle:

1) dvb subtitle pass through in MPEG TS over UDP format
2) srt/webvtt subtitle pass through in HLS segments

To pass through dvb subtitle, you need to use Source Stream Selection settings (see above). Make sure to select the proper video/audio streams with subtitle stream you want to output.


I have more than 1 network interfaces on my computer. How to specify the right one for streaming?

You can specify network interface for udp input or output stream. To do that, please append option "localaddr=<IP_ADDR>" to the stream url. For example, udp://224.0.0.1:1234?localaddr=192.168.0.1 means to use network interface with IP 192.168.0.1 for udp multicast.


There is a long time prebuffer on video play begins. How to improve?

It could be due to long key frame interval in output video. By default IPVTL generates video at 4-5 seconds key frame interval for better video quality. To shorten the prebuffer time you may try setting Key Frame Distance to a smaller value according to frame rate. Please see in Advanced Settings above.


Video encoding bit rate too high. Can it be lower?

First, if the result Frame Size and Frame Rate does not matter much, you can lower them to save bandwidth dramatically. For example, switch frame size from CIF to QCIF, or reduce frame rate from 30 to 15 fps.

Second, the Quality Level and Bandwidth settings both impact output video encoding bit rate. To control video encoding bit rate effectively, revert Quality Level to Original first. Then tune Bandwidth value to make video bit rate at your level. Remember: Low encoding bit rate always leads to low video quality.

If you've got a critical bandwidth limit, you can also try increasing video Key Frame Interval (to 120 or larger, through configuration file mentioned above) and switching Global Header from InBand to OutOfBand.


Why is HEVC encoding so slow?

Yes it is because HEVC has very much more complexity in encoding algorithm than H.264. There is always trade-off between performance and speed. You may try HEVC on a much faster processor, or switch to GPU accelerated HEVC encoding instead.


What about H.264 transcoding delay in IPVTL and how to decrease it?

IPVTL default H.264 encoding settings will indroduce about 50ms delay. If you have a strict demand of transcoding delay, please try advanced option "-tune zerolatency" in Custom Target Param.

© 2009-2016 IPVideoTrans.com All rights reserved.