Jump to content

Videos stuttering on AppleTV


foobar234
 Share

Recommended Posts

foobar234

Hi,

 

I recently bought an Apple TV 4k (2021) and installed Emby on it.

A lot of my content plays just fine, but some videos stutter so hard, they are not really watchable.

The problem is: I cannot figure out why they stutter.

I have transcoding enabled, and it works, but the stuttering videos are not even transcoded.

As an example, this file does not sutter when I play it on Apple TV:

ffprobe -v quiet -print_format json -show_format -show_streams not_stuttering.mkv
{
    "streams": [
        {
            "index": 0,
            "codec_name": "hevc",
            "codec_long_name": "H.265 / HEVC (High Efficiency Video Coding)",
            "profile": "Main",
            "codec_type": "video",
            "codec_time_base": "1/24",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "width": 1920,
            "height": 1080,
            "coded_width": 1920,
            "coded_height": 1088,
            "has_b_frames": 1,
            "sample_aspect_ratio": "1:1",
            "display_aspect_ratio": "16:9",
            "pix_fmt": "yuv420p",
            "level": 120,
            "color_range": "tv",
            "chroma_location": "left",
            "refs": 1,
            "r_frame_rate": "24/1",
            "avg_frame_rate": "24/1",
            "time_base": "1/1000",
            "start_pts": 0,
            "start_time": "0.000000",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "ENCODER": "Lavc58.91.100 hevc_vaapi",
                "DURATION": "00:18:22.834000000"
            }
        },
        {
            "index": 1,
            "codec_name": "aac",
            "codec_long_name": "AAC (Advanced Audio Coding)",
            "profile": "LC",
            "codec_type": "audio",
            "codec_time_base": "1/48000",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "sample_fmt": "fltp",
            "sample_rate": "48000",
            "channels": 2,
            "channel_layout": "stereo",
            "bits_per_sample": 0,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/1000",
            "start_pts": 0,
            "start_time": "0.000000",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "title": "\"2.0 \"",
                "ENCODER": "Lavc58.91.100 aac",
                "DURATION": "00:18:22.805000000"
            }
        },
        {
            "index": 2,
            "codec_name": "eac3",
            "codec_long_name": "ATSC A/52B (AC-3, E-AC-3)",
            "codec_type": "audio",
            "codec_time_base": "1/48000",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "sample_fmt": "fltp",
            "sample_rate": "48000",
            "channels": 6,
            "bits_per_sample": 0,
            "dmix_mode": "-1",
            "ltrt_cmixlev": "-1.000000",
            "ltrt_surmixlev": "-1.000000",
            "loro_cmixlev": "-1.000000",
            "loro_surmixlev": "-1.000000",
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/1000",
            "start_pts": 21,
            "start_time": "0.021000",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "DURATION": "00:18:22.805000000"
            }
        },
        {
            "index": 3,
            "codec_name": "subrip",
            "codec_long_name": "SubRip subtitle",
            "codec_type": "subtitle",
            "codec_time_base": "0/1",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/1000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 1102834,
            "duration": "1102.834000",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "title": "English",
                "DURATION": "00:17:53.093000000"
            }
        }
    ],
    "format": {
        "filename": "not_stuttering.mkv",
        "nb_streams": 4,
        "nb_programs": 0,
        "format_name": "matroska,webm",
        "format_long_name": "Matroska / WebM",
        "start_time": "0.000000",
        "duration": "1102.834000",
        "size": "614979370",
        "bit_rate": "4461083",
        "probe_score": 100,
        "tags": {
            "ENCODER": "Lavf58.45.100"
        }
    }
}

In contrast, this file stutters:

ffprobe -v quiet -print_format json -show_format -show_streams stuttering.mkv 
{
    "streams": [
        {
            "index": 0,
            "codec_name": "hevc",
            "codec_long_name": "H.265 / HEVC (High Efficiency Video Coding)",
            "profile": "Main",
            "codec_type": "video",
            "codec_time_base": "1/25",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "width": 1920,
            "height": 1080,
            "coded_width": 1920,
            "coded_height": 1088,
            "has_b_frames": 0,
            "sample_aspect_ratio": "1:1",
            "display_aspect_ratio": "16:9",
            "pix_fmt": "yuv420p",
            "level": 120,
            "color_range": "tv",
            "chroma_location": "left",
            "refs": 1,
            "r_frame_rate": "25/1",
            "avg_frame_rate": "25/1",
            "time_base": "1/1000",
            "start_pts": 0,
            "start_time": "0.000000",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "BPS": "8830581",
                "NUMBER_OF_FRAMES": "62803",
                "NUMBER_OF_BYTES": "2772935005",
                "_STATISTICS_WRITING_APP": "mkvmerge v64.0.0 ('Willows') 64-bit",
                "_STATISTICS_TAGS": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES",
                "ENCODER": "Lavc58.42.102 hevc_nvenc",
                "DURATION": "00:41:52.360000000"
            }
        },
        {
            "index": 1,
            "codec_name": "aac",
            "codec_long_name": "AAC (Advanced Audio Coding)",
            "profile": "LC",
            "codec_type": "audio",
            "codec_time_base": "1/48000",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "sample_fmt": "fltp",
            "sample_rate": "48000",
            "channels": 2,
            "channel_layout": "stereo",
            "bits_per_sample": 0,
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/1000",
            "start_pts": 0,
            "start_time": "0.000000",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "title": "\"2.0 \"",
                "BPS": "640000",
                "NUMBER_OF_FRAMES": "78504",
                "NUMBER_OF_BYTES": "200970240",
                "_STATISTICS_WRITING_APP": "mkvmerge v64.0.0 ('Willows') 64-bit",
                "_STATISTICS_TAGS": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES",
                "ENCODER": "Lavc58.91.100 aac",
                "DURATION": "00:41:52.149000000"
            }
        },
        {
            "index": 2,
            "codec_name": "subrip",
            "codec_long_name": "SubRip subtitle",
            "codec_type": "subtitle",
            "codec_time_base": "0/1",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/1000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 2512360,
            "duration": "2512.360000",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "title": "English (SDH)",
                "BPS": "54",
                "NUMBER_OF_FRAMES": "589",
                "NUMBER_OF_BYTES": "16974",
                "_STATISTICS_WRITING_APP": "mkvmerge v64.0.0 ('Willows') 64-bit",
                "_STATISTICS_TAGS": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES",
                "DURATION": "00:41:18.660000000"
            }
        },
        {
            "index": 3,
            "codec_name": "eac3",
            "codec_long_name": "ATSC A/52B (AC-3, E-AC-3)",
            "codec_type": "audio",
            "codec_time_base": "1/48000",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "sample_fmt": "fltp",
            "sample_rate": "48000",
            "channels": 6,
            "bits_per_sample": 0,
            "dmix_mode": "-1",
            "ltrt_cmixlev": "-1.000000",
            "ltrt_surmixlev": "-1.000000",
            "loro_cmixlev": "-1.000000",
            "loro_surmixlev": "-1.000000",
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/1000",
            "start_pts": 21,
            "start_time": "0.021000",
            "disposition": {
                "default": 0,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "BPS": "640000",
                "NUMBER_OF_FRAMES": "78504",
                "NUMBER_OF_BYTES": "200970240",
                "_STATISTICS_WRITING_APP": "mkvmerge v64.0.0 ('Willows') 64-bit",
                "_STATISTICS_TAGS": "BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES",
                "DURATION": "00:41:52.149000000"
            }
        }
    ],
    "format": {
        "filename": "stuttering.mkv",
        "nb_streams": 4,
        "nb_programs": 0,
        "format_name": "matroska,webm",
        "format_long_name": "Matroska / WebM",
        "start_time": "0.000000",
        "duration": "2512.360000",
        "size": "1706710994",
        "bit_rate": "5434606",
        "probe_score": 100,
        "tags": {
            "ENCODER": "Lavf58.24.101"
        }
    }
}

From my point of view they are not that different.

I also tried to play the stuttering file via Infuse, but it is the same. (Note: I used the Emby integration in Infuse, not a network share)

 

All the content I play is in h265 (not tagged hcv1, but that does not seem to matter) , has at least AAC as one audio stream and is in a mkv container.

Where else could I look to get rid of the stuttering?

Is there maybe a way to just force the transcoding, as that works fine on other devices?

Any help is much appreciated.

Link to comment
Share on other sites

Hi there, please attach the emby server and ffmpeg log files from an example: 

Thanks.

Link to comment
Share on other sites

foobar234

Hi Luke,

thanks for answering and sorry for not adhering to the linked post right away.

I attached the log of emby that was generated while playing the stuttering file mentioned in my initial post.

A ffmpeg log was not generated.

embylog

 

Link to comment
Share on other sites

foobar234

Hi,

I think I tried this already and it did not work, but I will try it again when I am at home again in a few days. 

Link to comment
Share on other sites

8 hours ago, foobar234 said:

Hi,

I think I tried this already and it did not work, but I will try it again when I am at home again in a few days. 

Let us know how you get on. Thanks.

Link to comment
Share on other sites

foobar234

Hi,

so I turned off the subtitles and sadly the video still stuttered.

Maybe to add a little detail: the stuttering is like when you play a video game and the fps drop for just a second. But this happens maybe every six seconds.

Anyways, I attached the logfile of the test with subtitles turned off.

server.log

Thanks for the help :)

Link to comment
Share on other sites

foobar234

Hi,

I may have fixed this on my own.

Yesterday I was playing around with Emby on the AppleTV again and went to the video settings of the device.

There is a menu called "Match content"  where you can set two things:

Quote
  • Match Dynamic Range: Turn on to have Apple TV 4K match its output to the original dynamic range of content that you’re watching.
  • Match Frame Rate: Turn on to have Apple TV 4K or Apple TV HD match its refresh rate to the original frame rate of content. This applies to content that's mastered at different frame rates — for example, 24fps film-based content or other international content.*

Quote from here: https://support.apple.com/en-us/HT208288

 

It was turned off from my initial troubleshooting.

I turned it back on and so far it seems like the stuttering is gone now.

I will update this thread, if I was wrong, but it seems fine.

 

Thanks again for the help.

Link to comment
Share on other sites

  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...