ATV3 - Buffer/Stutter problems

Dear forum guys,

Since a couple of weeks I'm using PlexConnect on my Apple TV 3. Unfortunately not all video files are played back correctly on my ATV. I searched through the forums but haven't found a solution yet. Hopefully one of you guys can help me.

 

My setup:

 

Your ATV model: 3

The DNS server set on the ATV: 192.168.001.131

The local IP address of the device that PlexConnect is installed on: 192.168.001.131

The device and operating system that PlexConnect is installed on: Windows 8.1 Pro, Intel Core i7-2600 3,40GHz, 8GB 1600MHz RAM. (Asus GTX560 graphics card)

The device and operating system that Plex media server is installed on: Windows 8.1 Pro, Intel Core i7-2600 3,40GHz, 8GB 1600MHz RAM. (Asus GTX560 graphics card)

Plex media server version: 0.9.9.7.429-f80a8d6

The local IP adress of the device that the Plex media server is installed on: 192.168.001.131

Plexconnect version number: Installed last week

The contents of your 'Settings.cfg' file

#!/usr/bin/env python

import sys
from os import sep
import ConfigParser
import re

from Debug import * # dprint()

“”"
Global Settings…
syntax: ‘setting’: (‘default’, ‘regex to validate’)

PMS: plexgdm, ip_pms, port_pms
DNS: ip_dnsmaster - IP of Router, ISP’s DNS, … [dflt: google public DNS]
IP_self: enable_plexconnect_autodetect, ip_plexconnect - manual override for VPN usage
Intercept: Trailers-trailers.apple.com, WSJ-secure.marketwatch.com, iMovie-www.icloud.com
HTTP: port_webserver - override when using webserver + forwarding to PlexConnect
HTTPS: port_ssl, certfile, enable_webserver_ssl - configure SSL portion or webserver
“”"
g_settings = [
(‘enable_plexgdm’ , (‘True’, ‘((True)|(False))’)),
(‘ip_pms’ , (‘192.168.178.10’, ‘([0-9]{1,3}.){3}[0-9]{1,3}’)),
(‘port_pms’ , (‘32400’, ‘[0-9]{1,5}’)),

(‘enable_dnsserver’, (‘True’, ‘((True)|(False))’)),
(‘port_dnsserver’ , (‘53’, ‘[0-9]{1,5}’)),
(‘ip_dnsmaster’ , (‘8.8.8.8’, ‘([0-9]{1,3}.){3}[0-9]{1,3}’)),
(‘prevent_atv_update’ , (‘True’, ‘((True)|(False))’)),

(‘enable_plexconnect_autodetect’, (‘True’, ‘((True)|(False))’)),
(‘ip_plexconnect’ , (‘0.0.0.0’, ‘([0-9]{1,3}.){3}[0-9]{1,3}’)),
(‘hosttointercept’ , (‘trailers.apple.com’, ‘[a-zA-Z0-9_.]+’)),

(‘port_webserver’ , (‘80’, ‘[0-9]{1,5}’)),
(‘enable_webserver_ssl’ , (‘True’, ‘((True)|(False))’)),
(‘port_ssl’ , (‘443’, ‘[0-9]{1,5}’)),
(‘certfile’ , (’./assets/certificates/trailers.pem’, ‘.+.pem’)),

(‘loglevel’ , (‘Normal’, ‘((Off)|(Normal)|(High))’)),
(‘logpath’ , (’.’, ‘.+’)),
]

class CSettings():
def init(self):
dprint(name, 1, “init class CSettings”)
self.cfg = ConfigParser.SafeConfigParser()
self.section = ‘PlexConnect’

    # set option for fixed ordering
    self.cfg.add_section(self.section)
    for (opt, (dflt, vldt)) in g_settings:
        self.cfg.set(self.section, opt, '\0')
    
    self.loadSettings()
    self.checkSection()



# load/save config
def loadSettings(self):
    dprint(__name__, 1, "load settings")
    self.cfg.read(self.getSettingsFile())

def saveSettings(self):
    dprint(__name__, 1, "save settings")
    f = open(self.getSettingsFile(), 'wb')
    self.cfg.write(f)
    f.close()

def getSettingsFile(self):
    return sys.path[0] + sep + "Settings.cfg"

def checkSection(self):
    modify = False
    # check for existing section
    if not self.cfg.has_section(self.section):
        modify = True
        self.cfg.add_section(self.section)
        dprint(__name__, 0, "add section {0}", self.section)
    
    for (opt, (dflt, vldt)) in g_settings:
        setting = self.cfg.get(self.section, opt)
        if setting=='\0':
            # check settings - add if new
            modify = True
            self.cfg.set(self.section, opt, dflt)
            dprint(__name__, 0, "add setting {0}={1}", opt, dflt)
        
        elif not re.search('\A'+vldt+'\Z', setting):
            # check settings - default if unknown
            modify = True
            self.cfg.set(self.section, opt, dflt)
            dprint(__name__, 0, "bad setting {0}={1} - set default {2}", opt, setting, dflt)
    
    # save if changed
    if modify:
        self.saveSettings()



# access/modify PlexConnect settings
def getSetting(self, option):
    dprint(__name__, 1, "getsetting {0}={1}", option, self.cfg.get(self.section, option))
    return self.cfg.get(self.section, option)

if name==“main”:
Settings = CSettings()

option = 'enable_plexgdm'
print Settings.getSetting(option)

option = 'enable_dnsserver'
print Settings.getSetting(option)

del Settings

Detail on the media file: 

Media:

Video Resolution 1080p
Duration 2:02:20
Bitrate 14413 kbps
Width 1920
Height 800
Aspect Ratio 2.35
Container MKV
Video Frame Rate 24p 

Part:

Duration 2:02:20
File Rush (2013).mkv
Size 12.32 GB
Container MKV 

Video:

Codec H264
Bitrate 12909 kbps
Bit Depth 8
CABAC 1
Chroma Subsampling 4:2:0
Color Space yuv
Duration 2:02:20
Frame Rate 23.976 fps
Frame Rate Mode cfr
Has Scaling Matrix 0
Height 800
Level 4.1
Profile high
Ref Frames 5
Scan Type progressive
Width 1920 

Audio:

Codec DCA
Channels 5.1
Bitrate 1509 kbps
Language English
Bit Depth 24
Bitrate Mode CBR
Duration 2:02:20
Sampling Rate 48000 Hz 

Plexconnect logfile:

http://pastebin.com/r1TWx2Nq

 

 

This video file played without any problems:

Media

Video Resolution 720p
Duration 1:01:34
Bitrate 3378 kbps
Width 1280
Height 720
Aspect Ratio 1.78
Container MKV
Video Frame Rate PAL

Part

Duration 1:01:34
File S21E05 - M135i vs. GTI.mkv
Size 1.45 GB
Container MKV
Video

Codec H264
Bitrate 3118 kbps
Language English
Bit Depth 8
CABAC 1
Chroma Subsampling 4:2:0
Color Space yuv
Duration 1:01:34
Frame Rate 25.000 fps
Frame Rate Mode cfr
Has Scaling Matrix 0
Height 720
Level 4.1
Profile high
Ref Frames 5
Scan Type progressive
Width 1280

Audio

Codec AC3
Channels Stereo
Bitrate 192 kbps
Bit Depth 16
Bitrate Mode CBR
Dialog Norm -23 dB
Duration 1:01:34
Sampling Rate 48000 Hz 

I'm streaming over WiFi via the following router: Linksys E4200 running: DD-WRT v24-sp2 mega

Hopefully you guys can understand what the problem is because I'm out of ideas.

 

Best regards,

 

JoooostB

  

 

 

 

 

 

 

Weak WIFI?
The bad file is 1080, about 14000kbps, the good one 720, about 3500kbps - roughly a factor 4 in data rate...

I actually don't think my WiFi is the problem. My AppleTV is just not buffering the videofile :(. Even if I let it on pause for 10 minutes, it will still stutter after some minutes of playing. Both my server as my AppleTV got really good signal.

I have the same problem, maybe apple tv can not handle this high bitrate files. I tried it over wlan and lan, both the same problem. Only solution for me at the moment change the setting to transcode all video to 720p with 4mbs. After that i had no more stutter on the same movie i had before.

But i would like to use the hight quality the movie has with apple tv because it can 1080p.

As you can see on the following pictures, it looks like my movie is fully buffered, but its not. Every 1 second play time, gives 1 second loading time.

IMG_20140517_151626_1.jpg

Thanks for taking time to help me.

Best regards,

JoooostB

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.