IPTV Live Video Encoding & Streaming FAQ

What hardware spec do I need for 16/32/64 channel SD/HD/4K encoding? Shall I choose CPU or GPU encoding?

IPVTL utilizes both CPU and GPU decoding/encoding technique. The transcoding capacity is decided by both the CPU/GPU performance and the video profile you demand. For high density transcoding, we recommend private server with Intel processsor or NVIDIA Quadro/GRID/Tesla graphics card installed, as they have better parallel computing performance. Intel Core i5/i7/i9 processors with UHD Graphics are also recommended for lower density usage at low cost. Use calculator below to get rough idea of choosing hardware.

H.264 Transcoding Hardware Spec Recommendation
Output Video ProfileChannels Minimum CPU/GPU Requirement
i7 8core (with UHD) / 8G RAM

Note: # of channels above are evaluated with PURE video transcoding. Video resizing, overlay and other video processings will eat more cpu and gpu resources.

Remember to have a look at CPU load indicator at the bottom of IPVTL main window or web console during transcoding. It tells current CPU usage per core so you will get the idea whether the system performance is sufficient for streaming right now.
CPU Load

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

HEVC/H.265/AV1 encoding involves much more calculation than H.264/AVC does. Generally, HEVC/H.265 encoding eats 50-100% more computing resources than H.264. And AV1 encoding is even a lot slower than HEVC. For these cases, it is recommended to replace CPU encoding with GPU, like NVIDIA Quadro/Tesla card with Maxwell/Pascal GPUs, or Intel Core 8th gen processor or above (Coffee lake) with UHD Graphics. For HEVC enabled NVIDIA video card specs, visit NVIDIA Video Encode and Decode GPU Support Matrix.

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

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

See How to setup IPVTL with Nginx.

Can I run IPVTL single license on multiple computers?

Absolutely not. IPVTL software license is bound to per server instance. If you want to run it on more than 1 server instances, please consider purchasing multiple licenses.

How to stream my screen (screencast)?

You can screencast using IPVTL on Windows. To do that, select "file" as channel source format and enter "desktop" as source name. Then go to advanced format settings -> Custom Param, and enter "-f gdigrab -framerate 5" in Source Parameters box.

How to secure IPVTL web interface and HTTP streams without firewall?

By default, IPVTL web UI binds all network interfaces on the localhost and login password is empty. We STRONGLY recommend setting up password in Global Settings IMMEDIATELY after installation, to secure web UI from malicious access. Remember your channel configuration details could be completely exposed to the internet with login password empty.

You can also secure web login from unknown IP addresses through ACL rules in Global Settings. The ACL syntax supports both blacklist and whitelist, which is very like in nginx:

deny all
allow all

How to run IPVTL in the background as daemon on Linux and how to kill it?

IPVTL runs as daemon on Linux from version It is possible to start IPVTL in remote ssh login without nohup now. To stop IPVTL running, simply pgrep ipvtl_ and kill IPVTL main process, or just pkill ipvtl_. Remember NOT to kill -9 (SIGKILL) as it is not a safe way.

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

Several possible reasons:

  1. Input stream stability. Validate source stream using tools like vlc player. If you are transcoding from UDP/RTP stream, make sure the local udp port 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.)
  2. Hardware performance. As video transcoding is very CPU-intensive process, it is always recommended to monitor CPU/GPU usage and make sure system working healthy while running IPVTL. Stop some channels if CPU load is too high.
  3. Network bandwidth to destination address. If bandwidth is not sufficient, try setting bitrate limit in encoding settings. If the output format is rtmp, make sure the rtmp server is running properly and the rtmp url is valid.

If there is still problem, 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 full channel log file, please enable Debug Log in IPVTL Global Settings and restart 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 encoding 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 channel log file back to us (support[at]ipvideotrans.com) to diagnose.

Where can I find IPVTL log files?

IPVTL log files are named ipvt_###.log and located in:

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 / VPX / AV1 encodings, try changing Encoding Preset in Advanced Video Settings (see instructions). Setting video Quality in the main gui is NOT recommended and it should be kept as default.

For other video encodings like mpeg4 or mpeg2 video, setting video Quality and video Bitrate can both impact the output quality. Make sure the video bitrate is not set too low. If you don't understand about bitrate, just leave it default.

How can I stream with subtitle?

Following subtitles are supported by IPVTL:

  1. DVB/DVD subtitle, DVD teletext, CC (EIA 608/708 closed caption) pass through in MPEG-TS over UDP format
  2. SRT/Webvtt subtitle pass through in HLS segments

Closed caption is passed through automatically during transcoding. Nothing required on user side.

To pass through dvb subtitle or dvb teletext in MPEG TS UDP output format, open channel format settings and enter "-c:s copy" in Custom Param -> Target Parameters box. If you want to select some particular subtitle stream to output, please guide Source Stream Selection sector. Make sure to select the proper subtitle pid you prefer.

If you are streaming to other kind of formats than UDP, say rtmp, you may want to hardcode dvb subtitle over video, rather than passing it through. This is possible via IPVTL advanced options. Open channel format settings -> Custom Param and in Target Parameters box, enter "-filter_complex '[0:v][0:s]overlay[v]' -map [v]".

I have 2 or more network interfaces on my computer. How to specify the right one for multicasting?

You can specify network interface to bind for receiving or sending udp stream. To do that, append option "localaddr=<IP_ADDR>" to the stream url. For example, udp:// means to use network interface with IP for udp multicast.

I see a lot of PCR accuacy / interval errors outputting MPEG TS over UDP. How to fix it?

You need to enable Mux Bitrate. See how to enable CBR encoding.

Folder streaming breaks every time file changes?

That is true, unfortunately. It is not big problem if you are streaming to udp format. However, it would be annoying when streaming to other kind of formats, like rtmp.

To get over with it, we need to utilize another channel. In that channel, set output to MPEG TS over UDP format and specify a local address, like udp:// Then in the original channel, set input to udp:// and leave output encodings to Original to save CPU resources. That will do the trick.

Audio is choppy / glitches a lot in audio-only streaming.

For audio-only streaming, we suggest extra parameter "-re" in IPVTL advanced format settings -> Custom Param -> Source Param box. That usually makes audio output smoother.

How to create MPTS (multi-program ts) output?

To create MPTS output, you need to set up several channels. Please follow instructions here.

There is long time pre-buffering on video play begins. How to improve?

It could be due to long key frame interval in output video. By default IPVTL produces video at 5 seconds key frame interval for better video quality. To shorten the prebuffer time you may try setting Key Frame Interval to a smaller value. See how to in Advanced Settings.

Video encoding bitrate 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 bitrate. To control video encoding bitrate effectively, revert Quality Level to Original first. Then tune Bandwidth value to make video bitrate at your level. Remember: Low encoding bitrate 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 parameter "-tune zerolatency" in Custom Target Parameters box.