View Full Version : Tutorial: How to reduce excessive stuttering or buffering when streaming videos

11-20-2013, 10:50 AM
If you are streaming videos to your devices in your home and they are stuttering, buffering or stopping, then use this guide to help solve the problem.

Your home network

Your home network must be fast enough to allow Mezzmo to transmit the video data from your computer to your device(s) - otherwise you will see stuttering, buffering or stopping on your device.

For best streaming performance, it is recommended to use Ethernet cables where possible. If you are using a wireless network, then make sure it is wireless-N with full signal strength.
If you are using a wireless network and have a dual band router, then try using the 5GHz band rather than the 2.4GHz band. The 5GHz band may provide better streaming performance and have less interference from other devices in your home. Many Mezzmo users have reported better wireless streaming performance when using the 5GHz band. Consult your router's and devices' documentation for the recommended 5GHz configuration.
When streaming a video, make sure your home network is not congested with other traffic - for example, copying files from one computer to another computer.
Routers can sometimes slow down or get themselves in an unstable state where it affects streaming performance. Try turning off your router for a minute and then turning it on again to correct these issues.

Your Mezzmo settings

Listed below are the settings in Mezzmo that you should ensure are correct for optimal streaming.

Go to the Media Devices dialog and edit your device. Make sure you have the right device profile selected. If you are unsure, then ask Conceiva support staff and we will recommend the correct choice.
Go to the Media Devices dialog and edit your device. On the Device Settings dialog, set the Connection type to match how your computer and device are connected on your home network. Mezzmo uses this setting when transcoding videos so that the video bitrate does not exceed the capabilities of your home network connection.

Transcoding performance

FFmpeg is used in a separate process to transcode the video, if FFmpeg is using too much CPU time then the Mezzmo server may not have enough CPU time to stream the file to the device. You can change the CPU priority in Transcoding Settings in Mezzmo to LOW so that the FFmpeg will use less CPU time (this may slow down transcoding so if the transcoding is already too slow it will not help).

When your videos are playing on your device but they are stuttering or buffering, then go to Mezzmo and look at the Transcoding pane. If you see your video file listed there, then it is being transcoded on-the-fly. If it is marked in red, then the transcoding speed is not fast enough for real time playback and this is one of the causes of the stuttering.

To improve transcoding performance, you can upgrade your computer's CPU and memory. In general, the more cores and powerful your computer's CPU, the better transcoding performance will be obtained.

An alternative solution is to pre-transcode your video before streaming it - thus eliminating slow transcoding as being the reason for stuttering. To pre-transcode your videos, see this FAQ - http://forum.conceiva.com/showthread.php/6025-Tutorial-Pre-transcoding-Files

Your video files

If your video files have high video bitrates, then this can be a cause of excessive stuttering or buffering.

If your video files' format is supported by your device but have a high video bitrate, then your device may not be able to decode and play them in real time. This will be a limitation of the device's firmware. As an example, some devices can stutter when trying to play Blu-ray rips that have video bitrates of 10Mb/sec or higher. In this case, trying lowering the video bitrate when encoding/ripping your videos. As a test, you can try to pre-transcode the video to another format and see if that plays:

In Mezzmo, right-click on the video and click Pre-transcode Files.
On the Pre-transcode Files dialog, select your device and click Choose Formats.
On the Pre-transcode Formats dialog, select the bolded format and click the Force full transcode checkbox. Click OK.
Select the Pre-transcode files even if they match the device's supported formats checkbox.
Click OK to start transcoding. Once transcoding has completed, try streaming the video again.

If Mezzmo is transcoding the video but the video bitrate is too high, then you can reduce the video bitrate that Mezzmo encodes in the transcoded video. Follow these steps:

In Mezzmo, go to the Media Devices dialog and edit your device.
On the Device Settings dialog, go to the Performance tab and move the Video bitrate slider halfway.
On the Device Settings dialog, go to the Transcoding tab and delete your transcoded files.
Try streaming the video now and see if the stuttering is no longer there or reduced.
Repeat these steps whilst adjusting the Video bitrate slider to get the optimal setting.

Advanced Mezzmo settings

Mezzmo server streams video to your devices in discrete data packets. The default size of these data packets is typically 64KB. Adjusting the size of the packets can sometimes provide improved streaming performance for devices on home network configurations. Here's how to adjust the data packet size:

Stop your Mezzmo server and exit Mezzmo.
Using Windows Explorer, go to the DeviceProfiles folder (see http://forum.conceiva.com/showthread.php/467-FAQ-Where-are-device-profiles-located).
Edit the device profile (.PRF) file associated with your device in a text editor such as Notepad.
In the <device> ... </device> section, add:

(where 8000 is the data packet size in bytes; recommended range 4000 - 4096000)
Save your changes to the .PRF file.
Run Mezzmo and start your Mezzmo server. Try streaming and check streaming performance.
Repeat the above steps with different data packet sizes to find the optimal value for your home network.