IP Video Solution At Low Cost Streaming, Transcoding, Conferencing, Surveillance...
IP Video Broadcasting Live!
IP Video Transcoding Live!
IP Video Conferencing Live!
IP Video Surveillance Live!

IP Video Transcoding Live! (abbreviation IPVTL) is a real time IP media stream transcoding server program that can can be run on both Win32 and Linux platforms with high performance. It has a powerful transcoding capability between bulk of audio and video encodings, including G.711(PCM), MP2/3, AMR-NB, AAC, H.263(+), H.264 and MPEG-4. Stream encapsulation of RTP (IETF standards RFC 2190, RFC 2429, RFC 3984, etc), MPEG-2 PS (program stream) and TS (transport stream) formats are well supported.

Specification

Input/Output Stream Encapsulation
  • RTP (Real-Time Transport Protocol RFC 3550)
  • MPEG-2 PS (Program Stream)
  • MPEG-2 TS (Transport Stream)
Codecs Supported Output Video Resolution
  • SQCIF (128x96)
  • QCIF (176x144)
  • CIF (352x288)
  • 4CIF (704x576)
  • QVGA (320x240)
  • VGA (640x480)
  • Custom/User-specified (H.263+/H.264/MPEG-4)
System Requirements
  • Processor: 2GHz or higher (The higher the better. Multi-core CPU recommended)
  • RAM: 1GB or above
  • Ethernet NIC
  • OS: Microsoft Windows® 2000/XP/Vista/2003 Server or Linux on kernel 2.4/2.6

Getting Started

To setup a transcoding task in IPVTL, only a few steps are needed to go. First, click Create Channel. This will create a new transcoding channel with default settings. Next, change transcoding settings of the input stream (Source Settings panel) and output stream (Target Settings panel) respectively according to your application, such as streaming format (RTP/MPEG-TS/MPEG-PS), streaming address, stream encoding, etc. Notes:

  • Multicast IP address (Class D IP address) is valid for both source and target addresses.
  • Audio address is NOT used for MPEG-TS or PS streams even with audio. Only video address is.
  • Input Codec type is not needed to be configured if source stream is MPEG-TS/PS.
  • RTP Payload Type is needed to be configured only if transcoding in RTP format.

For output stream, there are more configurable items than input stream, including video frame resolution, frame rate, quality level, encoding bitrate, audio sample rate, etc. These settings give you precise controlling of characteristics to the output stream.

For RTP formats, you may import and export stream attributes in SDP formatted (See IETF RFC 2327) files by clicking Import SDP and Export SDP buttons. That makes configuration much easier. SDP is a universal method to describe media streams in RTP format. It is widely used together with other multimedia transporting protocols such as SIP and RTSP. Many network stream media players like VLC and QuickTime support SDP file playback.

Once you've finished with the settings, click Apply button to save and validate your configuration. Or you can click Cancel to abort modifying this time. You can always change the transcoding settings by clicking Edit button at a later time. But remember doing this when the transcoding channel IS NOT running.

After a new transcoding channel is created, an entry with the task briefing will be displayed in the transcoding task list. The red light in the last column () indicates the channel is not started yet. Click Start button to start transcoding. If everything is OK, the status light will switch to green (), which means the channel is running good now.

Validating

After a transcoding channel is started, you can validate the output stream by using some network traffic monitors such as
Wireshark (http://www.wireshark.org). More directly, you can play the stream using network media players like
VLC (http://www.videolan.org/vlc) mentioned above. For RTP streams, feed the player with the SDP file exported from IPVTL. For MPEG-TS/PS streams, just open the network address that transcoding targets. If everything is OK, you should be able to watch live video in the player then. (Due to network cache values set in VLC player, there could be playback latency while watching.)

Advanced Settings

  • Enable RTCP
    Enable RTCP receiver reports (RR) and sender reports (SR) for RTP stream.

  • Quality Level
    Output video picture quality value from 1 to 100. The higher the better quality is. An "Original" string value indicates the same quality as input. A better quality also results in a higher encoding bit rate. So DO NOT set this value and Bandwidth at the same time.

  • Bandwidth
    Video encoding bit rate in Kbps. Note that low encoding bit rate also results in low video quality. So DO NOT set this value and Quality Level at the same time.

  • Global Header
    For MPEG-4 and H.264 RTP streams, changing this value to Out of Band will remove global header string in encoded frames from the stream, which can save some bandwidth. Instead, the string is exported into SDP files.

  • Threads
    Specify how many threads are to be used in transcoding. This setting can be used to adjust transcoding performance.

Configuration File

Besides being configured in GUI, IPVTL can also be configured through a config file. The config file called <ipvtl.conf> is automatically created in the program installed directory. This file can be used to configure IPVTL in Linux version that does not have a GUI. Here is a sample:
# IP Video Trans Configuration File

log 0                          # enable file logging
<Slot1>                        # transcoding channel config begin
Enable 1                       # enable this channel
<Input>                        # transcoding source settings begin
Format rtp                     # source stream format/encapsulation
                               # values: rtp/mpeg-ts/mpeg-ps
VideoEnable 1                  # receive video stream
VideoCodec H263                # source video encoding (RTP format)
                               # values: H263/H263+/H264/MP1V/MP2V/MP4V
VideoRTCP 0                    # enable RTCP for video stream (RTP format)
VideoIP 0.0.0.0                # receiving network address of video stream
                               # use 0.0.0.0 (for local network interface)
                               # or multicast addresses
VideoPort 10000                # receiving network port of video stream
VideoPayloadType 34            # RTP payload type of video stream (RTP format)
VideoFmtp ""                   # extra format parameters of video stream
                               # from SDP (RTP format)
AudioEnable 1                  # receive audio stream
AudioCodec PCMU                # source audio encoding (RTP format)
                               # values: PCMU/PCMA/MP2A/MP3/AAC/AC3
AudioSampleRate 0              # audio sampling rate (RTP format)
AudioChannel 0                 # audio channels (RTP format)
AudioRTCP 0                    # enable RTCP for audio stream (RTP format)
AudioIP 0.0.0.0                # receiving network address of audio stream (RTP format)
                               # use 0.0.0.0 (for local network interface)
                               # or multicast addresses
AudioPort 10002                # receiving network port of audio stream (RTP format)
AudioPayloadType 0             # RTP payload type of audio stream (RTP format)
AudioFmtp ""                   # extra format parameters of audio stream
                               # from SDP (RTP format)
</Input>                       # transcoding source settings end
<Output>                       # transcoding target settings begin
Format rtp                     # target stream format/encapsulation
                               # values: rtp/mpeg-ts/mpeg-ps
VideoEnable 1                  # enable video transcoding
VideoCodec H264                # target video encoding
                               # values: H263/H263+/H264/MP1V/MP2V/MP4V
VideoWidth 0                   # video frame width (0 for origin)
VideoHeight 0                  # video frame height (0 for origin)
VideoFrameRate 0               # video frame rate in FPS (0 for origin)
VideoKeyFrameInterval 0        # video key frame interval
VideoQuality 0                 # video quality level (0 for origin)
VideoBitRate 0                 # video encoding bit rate in Kbps (0 for default)
VideoRTCP 0                    # enable RTCP for video stream (RTP format)
VideoIP 192.168.0.1            # target network address of video stream
VideoPort 20000                # target network port of video stream
VideoPayloadType 96            # RTP payload type of video stream (RTP format)
VideoGlobalHeader InBand       # global header of video stream (RTP format)
                               # values: InBand/OutOfBand
AudioEnable 0                  # enable audio transcoding
AudioCodec PCMU                # target audio encoding
                               # values: PCMU/PCMA/MP2A/MP3/AAC/AC3
AudioSampleRate 8000           # audio sampling rate
AudioChannel 1                 # audio channels
AudioRTCP 0                    # enable RTCP for audio stream (RTP format)
AudioIP 192.168.0.1            # target network address of audio stream (RTP format)
AudioPort 20002                # target network port of audio stream (RTP format)
AudioPayloadType 0             # RTP payload type of audio stream (RTP format)
AudioGlobalHeader InBand       # global header of video stream (RTP format)
Threads 1                      # transcoding thread count
</Output>                      # transcoding target settings end
</Slot1>                       # transcoding channel config end
After changing the configuration file, restart IPVTL to make effect.

Troubleshooting

  • Transcoding starts and stops immediately (Status light quickly switched back to red). Why's that?
    Transcoding started failed. Please check transcoding source address and confirm that the local port specified is not occupied by other processes in the system. (On Win32, open a console window and type "netstat -anop udp<ENTER>" to see all UDP ports opened on the host.)

  • Transcoding starts OK. But I can't see video output in VLC.
    Check transcoding source to ensure the input stream is OK and is being received by IPVTL. Use Wireshark if necessary. Make sure VLC is running exactly on the transcoding target address and is receiving stream output 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 outputting, please enable file logging in IPVTL and send the log file back to us (support#ipvideotrans.com) for investigation. To enable file logging, open configuration file of IPVTL (named <ipvtl.conf> in the program directory. See Configuation File above) and add a line "log 1" into it. Then save the file and restart IPVTL to start transcoding again. The log file (named <ipvt_###.log>) will be created automatically.

  • Video quality is poor. How to improve?
    The Quality Level and Bandwidth settings both impact output video quality. Check transcoding settings to ensure they are not set mistakenly. Revert Quality Level to Original and Bandwidth to Default to check and make sure the quality of the source video is fine. You CAN NEVER get video quality out from transcoding better than the source.

  • Video encoding bit rate is 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.

© 2008 IPVideoTrans.com All rights reserved.