IPTV Live Video Encoding & Streaming FAQ

What are the hardware specifications required for 16/32/64 channel SD/HD/4K encoding? Should I choose CPU or GPU encoding?

IPVTL utilizes both CPU and GPU decoding and encoding techniques. The transcoding capacity is determined by both CPU and GPU performance, as well as the video profile requirements. For high-density transcoding, we recommend a dedicated server with Intel or AMD processors or NVIDIA GTX/RTX graphics cards, as they offer better parallel computing performance.

H.264 Transcoding Hardware Spec Recommendation
Channels Video Size S/W Encoding H/W Encoding RAM
4 SDTV (576p/576i) Intel Core i3-12100 NVIDIA GTX 1650 8GB
HD720p
HD1080p Intel Core i5-12400 NVIDIA GTX 1660
16 SDTV (576p/576i) AMD Ryzen 7 7700X NVIDIA RTX 3060 8GB
HD720p AMD Ryzen 9 7900 NVIDIA RTX 3060
HD1080p AMD Ryzen 9 7900X NVIDIA RTX A4000
32 SDTV (576p/576i) AMD Ryzen 9 7900X NVIDIA RTX A4000 16GB
HD720p AMD Ryzen 9 7950X NVIDIA RTX A4000
HD1080p AMD Ryzen Threadripper 7960X NVIDIA RTX A6000
64 SDTV (576p/576i) AMD Ryzen Threadripper 7960X NVIDIA RTX A6000 32GB
HD720p AMD EPYC 7313 x2 NVIDIA RTX A4000 x2
HD1080p AMD EPYC 7413 x2 NVIDIA RTX A6000 x2

Note: Evaluated with PURE video transcoding. Video resizing, overlay or other video processing is not involved.

Remember to take a look at CPU load indicator at the bottom of IPVTL main window or web admin 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 and AV1 encoding require significantly more computation than H.264/AVC. Generally, HEVC/H.265 encoding requires 50-100% more computing resources than H.264. AV1 encoding is even significantly slower. For these scenarios, we recommend replacing CPU encoding with GPU acceleration, such as NVIDIA Quadro/Tesla cards with Maxwell/Pascal GPUs, or Intel Core 8th generation processors or above (Coffee Lake) with UHD Graphics. For HEVC-enabled NVIDIA video card specifications, visit NVIDIA Video Encode and Decode GPU Support Matrix.

Can IPVTL stream directly to end users? How can I deliver video content to internet audiences?

IPVTL is designed for live media transcoding only. Although IPVTL can output MPEG-TS over HTTP format, it is not designed to provide media stream distribution to large-scale audiences across the internet. You will need third-party media streaming server software to accomplish this, such as 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. Each IPVTL software license is bound to a specific server instance. If you need to run it on multiple server instances, please consider purchasing multiple licenses.

How can I stream my screen (screencast)?

You can stream your screen on Windows using IPVTL. To do this, select file as the source format and enter "desktop" as the source name. Then navigate to Advanced Format Settings in the channel configuration, click Custom Options, and enter "-f gdigrab -framerate 5" in the Source Options field.

How can I secure IPVTL without a firewall?

By default, IPVTL web administration binds to all network interfaces on localhost and the login password is empty. We strongly recommend setting a password in Global Settings immediately after installation to secure the web administration interface from unauthorized access. Remember that your channel configuration details could be completely exposed to the internet if the login password remains 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 127.0.0.1/8
or
allow all
deny 1.2.3.4

Why does transcoding stop immediately after starting?

The status light may switch from green to red quickly. Several possible causes include:

  1. Input stream stability. Validate the source stream using tools such as VLC media player. If you are transcoding from a UDP/RTP stream, ensure the local UDP port is not in use by other processes on the system. (On Windows, open the Command Prompt and run netstat -anop udp/tcp to view all open UDP and TCP ports on your computer.)
  2. Hardware performance. Since video transcoding is a CPU-intensive process, it is important to monitor CPU and GPU usage to ensure the system remains stable while running IPVTL. Reduce the number of active channels if CPU usage becomes too high.
  3. Network bandwidth to the destination. If insufficient bandwidth is available, try adjusting the bitrate limit in encoding settings. If the output format is RTMP, ensure the RTMP server is running properly and the RTMP URL is correct.

If problems persist, please contact support[at]ipvideotrans.com and provide detailed information about your transcoding configuration, including relevant channel log files. To generate full channel logs, enable Debug Log in IPVTL Global Settings and restart the channel.

I can stream successfully. However, I cannot see video output in VLC.

Verify the integrity of the transcoding source and ensure IPVTL is receiving the input stream using the tools mentioned previously. Make sure VLC is running on the correct IPVTL output address and is receiving the stream from IPVTL. Open the message log in VLC (Tools > Messages) and set the log level to maximum to see detailed logs. Note that VLC does not support H.263 RTP streams (only H.263+).

If there is still no video output, enable Debug Log in IPVTL Global Settings, restart the channel, and please send the channel log file to us at support[at]ipvideotrans.com for diagnosis.

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 Options -> Target Options 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 Options and in Target Options 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://224.0.0.1:1234?localaddr=192.168.0.1 means to use network interface with IP 192.168.0.1 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.

Why does folder streaming break every time a file changes?

Unfortunately, this is true. This is not a major issue if you are streaming to UDP format. However, it can be problematic when streaming to other formats, such as RTMP.

To work around this issue, you can use an additional channel. In that channel, configure the output to MPEG-TS over UDP and specify a local address, such as udp://127.0.0.1:1234. Then in the original channel, configure the input to udp://0.0.0.0:1234 and set the output encoding to Original to conserve CPU resources. This will resolve the issue.

Why is audio choppy or has frequent glitches in audio-only streaming?

For audio-only streaming, we recommend adding the extra parameter "-re" in the Advanced Format Settings > Custom Parameters > Source Parameters field. This typically makes audio output smoother.

How do I create MPTS (multi-program TS) output?

To create MPTS output, you will need to configure multiple channels. Please refer to the instructions here.

Why is there a long pre-buffering delay when video playback begins? How can I reduce it?

This could be caused by a long key frame interval in the output video. By default, IPVTL generates video with a 5-second key frame interval for optimal video quality. To shorten the pre-buffering time, you can try adjusting the Key Frame Interval to a smaller value. See the Advanced Settings for instructions.

Is my video encoding bitrate too high? How can I reduce it?

First, if the output frame size and frame rate are not critical, you can reduce them to significantly reduce bandwidth consumption. For example, reduce the frame size from CIF to QCIF, or decrease the frame rate from 30 to 15 fps.

Second, both the Quality Level and Bandwidth settings affect the output video encoding bitrate. To effectively control video encoding bitrate, reset the Quality Level to Original first. Then adjust the Bandwidth setting to achieve your target bitrate. Remember: lower encoding bitrates always result in lower video quality.

If bandwidth is severely constrained, you can also consider increasing the Key Frame Interval (to 120 seconds or longer via the configuration file) and changing Global Header from InBand to OutOfBand.

Why is HEVC encoding so slow?

This is because HEVC has significantly greater complexity in its encoding algorithm than H.264. There is always a trade-off between quality and speed. You can try using HEVC with a more powerful processor, or switch to GPU-accelerated HEVC encoding instead.