TNT Sports are low framerate and blurry

I'm not sure if this is a hardware acceleration thing or not, but all the NHL on TNT broadcasts are being played back under 60fps and the picture isn't very crisp. I primarily watch on a Nvidia Shield but it's the same when watching in the browser. I assumed it was just a TNT thing in general but streams of questionable means look way better. This is with FiOS credentials.

I've had this issue across both servers I've used, one being a NUC with onboard Intel graphics and one being a custom PC with an Intel Arc card which I'm currently using. Hardware transcoding debug info is below if it's related. This is on version 2025.02.19.1823 in the latest Docker image.

h264_amf

fork/exec /channels-dvr/2025.02.19.1823/ffmpeg-dl: no such file or directory

h264_nvenc

fork/exec /channels-dvr/2025.02.19.1823/ffmpeg-dl: no such file or directory

h264_nvenc+deint

fork/exec /channels-dvr/2025.02.19.1823/ffmpeg-dl: no such file or directory

h264_nvenc+scaler

fork/exec /channels-dvr/2025.02.19.1823/ffmpeg-dl: no such file or directory

h264_nvenc+tonemap

fork/exec /channels-dvr/2025.02.19.1823/ffmpeg-dl: no such file or directory

h264_vaapi@/dev/dri/card0

[AVHWDeviceContext @ 0x1c555d40] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x1c555d40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x1c555d40] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x1c555d40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.4.2 (b813073).
[AVHWDeviceContext @ 0x1c555d40] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_testsrc_0 @ 0x1c624c80] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x1c627ac0] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0x1c625940] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0x1c628bc0] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0x1c626400] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0x1c627ac0] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0x1c628bc0] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x1ca64400] w:1280 h:720 pixfmt:yuv420p tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x1ca67140] w:iw h:ih flags:'' interl:0
[trim_in_0_0 @ 0x1ca64c40] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scale_0 @ 0x1ca67140] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[h264_vaapi @ 0x1ca5f940] Using input frames context (format vaapi) with h264_vaapi encoder.
[h264_vaapi @ 0x1ca5f940] Input surface format is nv12.
[h264_vaapi @ 0x1ca5f940] Using VAAPI profile VAProfileH264High (7).
[h264_vaapi @ 0x1ca5f940] Using VAAPI entrypoint VAEntrypointEncSliceLP (8).
[h264_vaapi @ 0x1ca5f940] Using VAAPI render target format YUV420 (0x1).
[h264_vaapi @ 0x1ca5f940] RC mode: VBR.
[h264_vaapi @ 0x1ca5f940] RC target: 66% of 6000000 bps over 1000 ms.
[h264_vaapi @ 0x1ca5f940] RC buffer: 6000000 bits, initial fullness 4500000 bits.
[h264_vaapi @ 0x1ca5f940] RC framerate: 60/1 (60.00 fps).
[h264_vaapi @ 0x1ca5f940] Driver does not report any additional prediction constraints.
[h264_vaapi @ 0x1ca5f940] Using intra, P- and B-frames (supported references: 3 / 1).
[h264_vaapi @ 0x1ca5f940] All wanted packed headers available (wanted 0xd, found 0x1f).
Output #0, null, to '/dev/null':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: h264 (High), 1 reference frame, vaapi(tv, bt2020nc/bt2020/smpte2084, progressive), 1280x720 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 4000 kb/s, 60 fps, 60 tbn
    Metadata:
      encoder         : Lavc59.37.100 h264_vaapi
No more output streams to write to, finishing.
frame=   60 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.98 bitrate=N/A speed=3.23x    
[AVIOContext @ 0x1c55e540] Statistics: 347 bytes written, 0 seeks, 2 writeouts
video:45kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0):
  Input stream #0:0 (video): 61 packets read (84326400 bytes); 61 frames decoded; 
  Total: 61 packets (84326400 bytes) demuxed
Output file #0 (/dev/null):
  Output stream #0:0 (video): 60 frames encoded; 60 packets muxed (45974 bytes); 
  Total: 60 packets (45974 bytes) muxed
[LIBVA]:CRITICAL - DdiMedia_SyncBuffer:4286: Invalid buffer

success in 342ms

h264_vaapi@/dev/dri/card0+deint

[AVHWDeviceContext @ 0x2553fd40] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x2553fd40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x2553fd40] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x2553fd40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.4.2 (b813073).
[AVHWDeviceContext @ 0x2553fd40] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_testsrc_0 @ 0x2560ec80] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x25611ac0] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0x2560f940] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0x25612bc0] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0x25610400] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0x25611ac0] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0x25612bc0] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x25a4ed00] w:1280 h:720 pixfmt:yuv420p tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x25a520c0] w:iw h:ih flags:'' interl:0
[trim_in_0_0 @ 0x25a4f800] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scale_0 @ 0x25a520c0] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[Parsed_deinterlace_vaapi_2 @ 0x25a4e580] Picking 4 (MotionCompensated) as default deinterlacing mode.
[h264_vaapi @ 0x25a49940] Using input frames context (format vaapi) with h264_vaapi encoder.
[h264_vaapi @ 0x25a49940] Input surface format is nv12.
[h264_vaapi @ 0x25a49940] Using VAAPI profile VAProfileH264High (7).
[h264_vaapi @ 0x25a49940] Using VAAPI entrypoint VAEntrypointEncSliceLP (8).
[h264_vaapi @ 0x25a49940] Using VAAPI render target format YUV420 (0x1).
[h264_vaapi @ 0x25a49940] RC mode: VBR.
[h264_vaapi @ 0x25a49940] RC target: 66% of 6000000 bps over 1000 ms.
[h264_vaapi @ 0x25a49940] RC buffer: 6000000 bits, initial fullness 4500000 bits.
[h264_vaapi @ 0x25a49940] RC framerate: 60/1 (60.00 fps).
[h264_vaapi @ 0x25a49940] Driver does not report any additional prediction constraints.
[h264_vaapi @ 0x25a49940] Using intra, P- and B-frames (supported references: 3 / 1).
[h264_vaapi @ 0x25a49940] All wanted packed headers available (wanted 0xd, found 0x1f).
Output #0, null, to '/dev/null':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: h264 (High), 1 reference frame, vaapi(tv, bt2020nc/bt2020/smpte2084, progressive), 1280x720 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 4000 kb/s, 60 fps, 60 tbn
    Metadata:
      encoder         : Lavc59.37.100 h264_vaapi
No more output streams to write to, finishing.
frame=   59 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.98 bitrate=N/A speed=2.41x    
[AVIOContext @ 0x25548540] Statistics: 349 bytes written, 0 seeks, 2 writeouts
video:47kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0):
  Input stream #0:0 (video): 61 packets read (84326400 bytes); 61 frames decoded; 
  Total: 61 packets (84326400 bytes) demuxed
Output file #0 (/dev/null):
  Output stream #0:0 (video): 59 frames encoded; 59 packets muxed (48027 bytes); 
  Total: 59 packets (48027 bytes) muxed
[LIBVA]:CRITICAL - DdiMedia_SyncBuffer:4286: Invalid buffer

success in 448ms

h264_vaapi@/dev/dri/renderD128

[AVHWDeviceContext @ 0x29819d40] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x29819d40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x29819d40] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x29819d40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.4.2 (b813073).
[AVHWDeviceContext @ 0x29819d40] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_testsrc_0 @ 0x298e8c80] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x298ebac0] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0x298e9940] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0x298ecbc0] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0x298ea400] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0x298ebac0] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0x298ecbc0] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x29d28400] w:1280 h:720 pixfmt:yuv420p tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x29d2b140] w:iw h:ih flags:'' interl:0
[trim_in_0_0 @ 0x29d28c40] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scale_0 @ 0x29d2b140] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[h264_vaapi @ 0x29d23940] Using input frames context (format vaapi) with h264_vaapi encoder.
[h264_vaapi @ 0x29d23940] Input surface format is nv12.
[h264_vaapi @ 0x29d23940] Using VAAPI profile VAProfileH264High (7).
[h264_vaapi @ 0x29d23940] Using VAAPI entrypoint VAEntrypointEncSliceLP (8).
[h264_vaapi @ 0x29d23940] Using VAAPI render target format YUV420 (0x1).
[h264_vaapi @ 0x29d23940] RC mode: VBR.
[h264_vaapi @ 0x29d23940] RC target: 66% of 6000000 bps over 1000 ms.
[h264_vaapi @ 0x29d23940] RC buffer: 6000000 bits, initial fullness 4500000 bits.
[h264_vaapi @ 0x29d23940] RC framerate: 60/1 (60.00 fps).
[h264_vaapi @ 0x29d23940] Driver does not report any additional prediction constraints.
[h264_vaapi @ 0x29d23940] Using intra, P- and B-frames (supported references: 3 / 1).
[h264_vaapi @ 0x29d23940] All wanted packed headers available (wanted 0xd, found 0x1f).
Output #0, null, to '/dev/null':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: h264 (High), 1 reference frame, vaapi(tv, bt2020nc/bt2020/smpte2084, progressive), 1280x720 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 4000 kb/s, 60 fps, 60 tbn
    Metadata:
      encoder         : Lavc59.37.100 h264_vaapi
No more output streams to write to, finishing.
frame=   60 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.98 bitrate=N/A speed= 3.2x    
[AVIOContext @ 0x29822540] Statistics: 349 bytes written, 0 seeks, 2 writeouts
video:45kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0):
  Input stream #0:0 (video): 61 packets read (84326400 bytes); 61 frames decoded; 
  Total: 61 packets (84326400 bytes) demuxed
Output file #0 (/dev/null):
  Output stream #0:0 (video): 60 frames encoded; 60 packets muxed (45974 bytes); 
  Total: 60 packets (45974 bytes) muxed
[LIBVA]:CRITICAL - DdiMedia_SyncBuffer:4286: Invalid buffer

success in 351ms

h264_vaapi@/dev/dri/renderD128+deint

[AVHWDeviceContext @ 0x32654d40] libva: VA-API version 1.22.0
[AVHWDeviceContext @ 0x32654d40] libva: va_openDriver() returns 0
[AVHWDeviceContext @ 0x32654d40] Initialised VAAPI connection: version 1.22
[AVHWDeviceContext @ 0x32654d40] VAAPI driver: Intel iHD driver for Intel(R) Gen Graphics - 24.4.2 (b813073).
[AVHWDeviceContext @ 0x32654d40] Driver not found in known nonstandard list, using standard behaviour.
[Parsed_testsrc_0 @ 0x32723c80] size:1280x720 rate:60/1 duration:-1.000000 sar:1/1
[auto_scale_0 @ 0x32726ac0] w:iw h:ih flags:'' interl:0
[Parsed_format_1 @ 0x32724940] auto-inserting filter 'auto_scale_0' between the filter 'Parsed_testsrc_0' and the filter 'Parsed_format_1'
[auto_scale_1 @ 0x32727bc0] w:iw h:ih flags:'' interl:0
[Parsed_colorspace_2 @ 0x32725400] auto-inserting filter 'auto_scale_1' between the filter 'Parsed_format_1' and the filter 'Parsed_colorspace_2'
[auto_scale_0 @ 0x32726ac0] w:1280 h:720 fmt:rgb24 sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[auto_scale_1 @ 0x32727bc0] w:1280 h:720 fmt:nv12 sar:1/1 -> w:1280 h:720 fmt:yuv420p sar:1/1 flags:0x0
    Last message repeated 3 times
Input #0, lavfi, from 'testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0':
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: rawvideo, 1 reference frame (I420 / 0x30323449), yuv420p(bt2020nc/bt2020/smpte2084), 1280x720 [SAR 1:1 DAR 16:9], 60 tbr, 60 tbn
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo (native) -> h264 (h264_vaapi))
Press [q] to stop, [?] for help
[graph 0 input from stream 0:0 @ 0x32b63d00] w:1280 h:720 pixfmt:yuv420p tb:1/60 fr:60/1 sar:1/1
[auto_scale_0 @ 0x32b670c0] w:iw h:ih flags:'' interl:0
[trim_in_0_0 @ 0x32b64800] auto-inserting filter 'auto_scale_0' between the filter 'graph 0 input from stream 0:0' and the filter 'trim_in_0_0'
[auto_scale_0 @ 0x32b670c0] w:1280 h:720 fmt:yuv420p sar:1/1 -> w:1280 h:720 fmt:nv12 sar:1/1 flags:0x0
[Parsed_deinterlace_vaapi_2 @ 0x32b63580] Picking 4 (MotionCompensated) as default deinterlacing mode.
[h264_vaapi @ 0x32b5e940] Using input frames context (format vaapi) with h264_vaapi encoder.
[h264_vaapi @ 0x32b5e940] Input surface format is nv12.
[h264_vaapi @ 0x32b5e940] Using VAAPI profile VAProfileH264High (7).
[h264_vaapi @ 0x32b5e940] Using VAAPI entrypoint VAEntrypointEncSliceLP (8).
[h264_vaapi @ 0x32b5e940] Using VAAPI render target format YUV420 (0x1).
[h264_vaapi @ 0x32b5e940] RC mode: VBR.
[h264_vaapi @ 0x32b5e940] RC target: 66% of 6000000 bps over 1000 ms.
[h264_vaapi @ 0x32b5e940] RC buffer: 6000000 bits, initial fullness 4500000 bits.
[h264_vaapi @ 0x32b5e940] RC framerate: 60/1 (60.00 fps).
[h264_vaapi @ 0x32b5e940] Driver does not report any additional prediction constraints.
[h264_vaapi @ 0x32b5e940] Using intra, P- and B-frames (supported references: 3 / 1).
[h264_vaapi @ 0x32b5e940] All wanted packed headers available (wanted 0xd, found 0x1f).
Output #0, null, to '/dev/null':
  Metadata:
    encoder         : Lavf59.27.100
  Stream #0:0: Video: h264 (High), 1 reference frame, vaapi(tv, bt2020nc/bt2020/smpte2084, progressive), 1280x720 (0x0) [SAR 1:1 DAR 16:9], q=2-31, 4000 kb/s, 60 fps, 60 tbn
    Metadata:
      encoder         : Lavc59.37.100 h264_vaapi
No more output streams to write to, finishing.
frame=   59 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.98 bitrate=N/A speed=2.41x    
[AVIOContext @ 0x3265d540] Statistics: 349 bytes written, 0 seeks, 2 writeouts
video:47kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (testsrc=size=1280x720:rate=60,format=nv12,colorspace=all=bt2020:iall=bt2020:fast=0):
  Input stream #0:0 (video): 61 packets read (84326400 bytes); 61 frames decoded; 
  Total: 61 packets (84326400 bytes) demuxed
Output file #0 (/dev/null):
  Output stream #0:0 (video): 59 frames encoded; 59 packets muxed (48027 bytes); 
  Total: 59 packets (48027 bytes) muxed
[LIBVA]:CRITICAL - DdiMedia_SyncBuffer:4286: Invalid buffer

success in 446ms

h264_vaapi@/dev/dri/renderD129

no such file or directory

h264_vaapi@/dev/renderD128

no such file or directory