Anamorphic video converted without re-encoding has wrong aspect ratio #1203

Open
opened 2025-12-21 18:14:33 +01:00 by backuprepo · 11 comments
Owner

Originally created by @Ken-g6 on GitHub (Jan 13, 2020).

When playing back an anamorphic video with "video playback that requires conversion without re-encoding" (see #1161), the video is not displayed with the correct aspect ratio on a Fire TV Stick 4K. I had to set my TV to stretch horizontally to display the video correctly. This has happened with several videos, but here's a good example:

Server System (please complete the following information):

  • OS: Linux SerialPeacemaker 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
  • Jellyfin Version: 10.4.3
  • Hardware settings & device: No acceleration on Intel i7 6700 (not K)
  • Reverse proxy: no
  • Other hardware notes: Media mounted through soft links

Client System (please complete the following information):

  • Device: Fire TV Stick 4K
  • OS: Fire TV OS (Android-based)
  • Client: app "AndroidTV" "0.10.2a" (from the Amazon app store)

Media Info of the file

General
Complete name                            : Adventures of Superman - s01e25 - The Unknown People (1).m4v
Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42 (isom/iso2/avc1/mp41)
File size                                : 113 MiB
Duration                                 : 23 min 0 s
Overall bit rate                         : 690 kb/s
Collection                               : Adventures of Superman
Season                                   : 1
Part                                     : 25
Track name                               : The Unknown People (1)
Encoded date                             : UTC 2020-01-01 07:27:04
Tagged date                              : UTC 2020-01-01 17:41:11
Writing application                      : HandBrake

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3
Format settings                          : CABAC / 5 Ref Frames
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 5 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 23 min 0 s
Bit rate                                 : 523 kb/s
Width                                    : 534 pixels
Height                                   : 478 pixels
Display aspect ratio                     : 4:3
Frame rate mode                          : Variable
Frame rate                               : 23.632 FPS
Minimum frame rate                       : 13.321 FPS
Maximum frame rate                       : 23.981 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.087
Stream size                              : 86.1 MiB (76%)
Writing library                          : x264 core 152 r2854 e9a5903
Encoding settings                        : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / psy_rd=1.00:0.20 / mixed_ref=1 / me_range=48 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=120 / rc=crf / mbtree=1 / crf=21.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Encoded date                             : UTC 2020-01-01 07:27:04
Tagged date                              : UTC 2020-01-01 07:27:04
Color range                              : Limited
Color primaries                          : BT.601 NTSC
Transfer characteristics                 : BT.601
Matrix coefficients                      : BT.601

Audio
ID                                       : 2
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : mp4a-40-2

Logs

MediaBrowser.Common.Extensions.ResourceNotFoundException: Adventures of Superman does not have an image of type Logo
   at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName)
   at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:25.191 -07:00] [ERR] Error processing request
MediaBrowser.Common.Extensions.ResourceNotFoundException: Jack Narz does not have an image of type Primary
   at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName)
   at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:25.218 -07:00] [ERR] Error processing request
MediaBrowser.Common.Extensions.ResourceNotFoundException: Johnny Roventini does not have an image of type Primary
   at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName)
   at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:25.221 -07:00] [ERR] Error processing request
MediaBrowser.Common.Extensions.ResourceNotFoundException: Walter Reed does not have an image of type Primary
   at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName)
   at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:25.808 -07:00] [WRN] HTTP Response 200 to "192.168.0.147". Time (slow): 0:00:00.6158396. "http://192.168.0.2:8096/jellyfin/Items/38b3dad128589a831d7a3413fd97befe/Images/Primary?MaxHeight=260&EnableImageEnhancers=true&Tag=97a230f245a910d5d286fd6ed29bbcc9"
[2020-01-01 19:40:25.895 -07:00] [WRN] HTTP Response 200 to "192.168.0.147". Time (slow): 0:00:00.6774848. "http://192.168.0.2:8096/jellyfin/Items/8a269d4af3b0534367641ef7946e73b0/Images/Primary?MaxHeight=260&EnableImageEnhancers=true&Tag=2528db66e4f356a8ae186199d72ef6aa"
[2020-01-01 19:40:28.178 -07:00] [INF] User policy for "Guest". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False
[2020-01-01 19:40:28.178 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:28.178 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v"
[2020-01-01 19:40:28.178 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:28.178 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v"
[2020-01-01 19:40:28.178 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:28.178 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v"
[2020-01-01 19:40:28.263 -07:00] [INF] User policy for "Guest". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False
[2020-01-01 19:40:28.263 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:28.263 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:28.263 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:28.401 -07:00] [ERR] Error processing request
System.ArgumentException: Invalid type
Parameter name: type
   at MediaBrowser.Api.BaseApiService.GetItemByName(String name, String type, ILibraryManager libraryManager, DtoOptions dtoOptions)
   at MediaBrowser.Api.Images.ImageService.Get(GetItemByNameImage request)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName)
   at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:28.402 -07:00] [ERR] Error processing request
MediaBrowser.Common.Extensions.ResourceNotFoundException: Adventures of Superman does not have an image of type Logo
   at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest)
   at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName)
   at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:28.410 -07:00] [ERR] Error processing request
System.InvalidOperationException: Response Content-Length mismatch: too many bytes written (131072 of 100).
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowTooManyBytesWritten(Int32 count)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.VerifyAndUpdateWrite(Int32 count)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.InitializeResponseAsync(Int32 firstWriteByteCount)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.WriteAsync(ReadOnlyMemory`1 data, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.ResponseCompression.BodyWrapperStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.FileWriter.TransmitFile(Stream stream, String path, Int64 offset, Int64 count, FileShareMode fileShareMode, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.FileWriter.WriteToAsync(HttpResponse response, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:28.491 -07:00] [ERR] Error processing request
System.InvalidOperationException: Response Content-Length mismatch: too many bytes written (131072 of 100).
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowTooManyBytesWritten(Int32 count)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.VerifyAndUpdateWrite(Int32 count)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.InitializeResponseAsync(Int32 firstWriteByteCount)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.WriteAsync(ReadOnlyMemory`1 data, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.ResponseCompression.BodyWrapperStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.FileWriter.TransmitFile(Stream stream, String path, Int64 offset, Int64 count, FileShareMode fileShareMode, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.FileWriter.WriteToAsync(HttpResponse response, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:29.596 -07:00] [ERR] Error processing request
System.InvalidOperationException: Response Content-Length mismatch: too many bytes written (131072 of 100).
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowTooManyBytesWritten(Int32 count)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.VerifyAndUpdateWrite(Int32 count)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.InitializeResponseAsync(Int32 firstWriteByteCount)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.WriteAsync(ReadOnlyMemory`1 data, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.ResponseCompression.BodyWrapperStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.FileWriter.TransmitFile(Stream stream, String path, Int64 offset, Int64 count, FileShareMode fileShareMode, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.FileWriter.WriteToAsync(HttpResponse response, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:31.889 -07:00] [ERR] Error processing request
System.InvalidOperationException: Response Content-Length mismatch: too many bytes written (131072 of 100).
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowTooManyBytesWritten(Int32 count)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.VerifyAndUpdateWrite(Int32 count)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.InitializeResponseAsync(Int32 firstWriteByteCount)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.WriteAsync(ReadOnlyMemory`1 data, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at Microsoft.AspNetCore.ResponseCompression.BodyWrapperStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
   at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.FileWriter.TransmitFile(Stream stream, String path, Int64 offset, Int64 count, FileShareMode fileShareMode, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.FileWriter.WriteToAsync(HttpResponse response, CancellationToken cancellationToken)
   at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)
   at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken)
[2020-01-01 19:40:32.735 -07:00] [INF] Playback stopped reported by app "AndroidTV" "0.10.2a" playing "The Unknown People (1)". Stopped at "0" ms
[2020-01-01 19:40:32.818 -07:00] [INF] User policy for "Guest". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False
[2020-01-01 19:40:32.818 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:32.818 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v"
[2020-01-01 19:40:32.819 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:32.819 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v"
[2020-01-01 19:40:32.819 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:32.819 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v"
[2020-01-01 19:40:32.843 -07:00] [INF] User policy for "Guest". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False
[2020-01-01 19:40:32.843 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:32.844 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[2020-01-01 19:40:32.904 -07:00] [INF] /usr/lib/jellyfin-ffmpeg/ffmpeg -fflags +genpts -f mov,mp4,m4a,3gp,3g2,mj2 -i file:"/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v" -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -copyts -avoid_negative_ts disabled -start_at_zero -vsync -1 -map_metadata -1 -map_chapters -1 -threads 0 -codec:a:0 copy -y "/var/lib/jellyfin/transcoding-temp/4e28ce63681f28a8bb4f83dcd90eaf40.mkv"```
Originally created by @Ken-g6 on GitHub (Jan 13, 2020). When playing back an anamorphic video with "video playback that requires conversion without re-encoding" (see #1161), the video is not displayed with the correct aspect ratio on a Fire TV Stick 4K. I had to set my TV to stretch horizontally to display the video correctly. This has happened with several videos, but here's a good example: **Server System (please complete the following information):** - OS: `Linux SerialPeacemaker 4.15.0-74-generic #84-Ubuntu SMP Thu Dec 19 08:06:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux` - Jellyfin Version: 10.4.3 - Hardware settings & device: No acceleration on Intel i7 6700 (not K) - Reverse proxy: no - Other hardware notes: Media mounted through soft links **Client System (please complete the following information):** - Device: Fire TV Stick 4K - OS: Fire TV OS (Android-based) - Client: app "AndroidTV" "0.10.2a" (from the Amazon app store) **Media Info of the file** <!-- Use the Media Info tool (set to text format, download here: https://mediaarea.net/en/MediaInfo) or copy the info from the web ui for the file with the playback issue. --> ``` General Complete name : Adventures of Superman - s01e25 - The Unknown People (1).m4v Format : MPEG-4 Format profile : Base Media / Version 2 Codec ID : mp42 (isom/iso2/avc1/mp41) File size : 113 MiB Duration : 23 min 0 s Overall bit rate : 690 kb/s Collection : Adventures of Superman Season : 1 Part : 25 Track name : The Unknown People (1) Encoded date : UTC 2020-01-01 07:27:04 Tagged date : UTC 2020-01-01 17:41:11 Writing application : HandBrake Video ID : 1 Format : AVC Format/Info : Advanced Video Codec Format profile : High@L3 Format settings : CABAC / 5 Ref Frames Format settings, CABAC : Yes Format settings, ReFrames : 5 frames Codec ID : avc1 Codec ID/Info : Advanced Video Coding Duration : 23 min 0 s Bit rate : 523 kb/s Width : 534 pixels Height : 478 pixels Display aspect ratio : 4:3 Frame rate mode : Variable Frame rate : 23.632 FPS Minimum frame rate : 13.321 FPS Maximum frame rate : 23.981 FPS Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Scan type : Progressive Bits/(Pixel*Frame) : 0.087 Stream size : 86.1 MiB (76%) Writing library : x264 core 152 r2854 e9a5903 Encoding settings : cabac=1 / ref=5 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=10 / psy=1 / psy_rd=1.00:0.20 / mixed_ref=1 / me_range=48 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-3 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=8 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=24 / scenecut=40 / intra_refresh=0 / rc_lookahead=120 / rc=crf / mbtree=1 / crf=21.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00 Encoded date : UTC 2020-01-01 07:27:04 Tagged date : UTC 2020-01-01 07:27:04 Color range : Limited Color primaries : BT.601 NTSC Transfer characteristics : BT.601 Matrix coefficients : BT.601 Audio ID : 2 Format : AAC Format/Info : Advanced Audio Codec Format profile : LC Codec ID : mp4a-40-2 ``` **Logs** ```[2020-01-01 19:40:24.897 -07:00] [ERR] Error processing request MediaBrowser.Common.Extensions.ResourceNotFoundException: Adventures of Superman does not have an image of type Logo at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest) at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName) at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:25.191 -07:00] [ERR] Error processing request MediaBrowser.Common.Extensions.ResourceNotFoundException: Jack Narz does not have an image of type Primary at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest) at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName) at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:25.218 -07:00] [ERR] Error processing request MediaBrowser.Common.Extensions.ResourceNotFoundException: Johnny Roventini does not have an image of type Primary at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest) at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName) at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:25.221 -07:00] [ERR] Error processing request MediaBrowser.Common.Extensions.ResourceNotFoundException: Walter Reed does not have an image of type Primary at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest) at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName) at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:25.808 -07:00] [WRN] HTTP Response 200 to "192.168.0.147". Time (slow): 0:00:00.6158396. "http://192.168.0.2:8096/jellyfin/Items/38b3dad128589a831d7a3413fd97befe/Images/Primary?MaxHeight=260&EnableImageEnhancers=true&Tag=97a230f245a910d5d286fd6ed29bbcc9" [2020-01-01 19:40:25.895 -07:00] [WRN] HTTP Response 200 to "192.168.0.147". Time (slow): 0:00:00.6774848. "http://192.168.0.2:8096/jellyfin/Items/8a269d4af3b0534367641ef7946e73b0/Images/Primary?MaxHeight=260&EnableImageEnhancers=true&Tag=2528db66e4f356a8ae186199d72ef6aa" [2020-01-01 19:40:28.178 -07:00] [INF] User policy for "Guest". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False [2020-01-01 19:40:28.178 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:28.178 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v" [2020-01-01 19:40:28.178 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:28.178 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v" [2020-01-01 19:40:28.178 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:28.178 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v" [2020-01-01 19:40:28.263 -07:00] [INF] User policy for "Guest". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False [2020-01-01 19:40:28.263 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:28.263 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:28.263 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:28.401 -07:00] [ERR] Error processing request System.ArgumentException: Invalid type Parameter name: type at MediaBrowser.Api.BaseApiService.GetItemByName(String name, String type, ILibraryManager libraryManager, DtoOptions dtoOptions) at MediaBrowser.Api.Images.ImageService.Get(GetItemByNameImage request) at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName) at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:28.402 -07:00] [ERR] Error processing request MediaBrowser.Common.Extensions.ResourceNotFoundException: Adventures of Superman does not have an image of type Logo at MediaBrowser.Api.Images.ImageService.GetImage(ImageRequest request, Guid itemId, BaseItem item, Boolean isHeadRequest) at Emby.Server.Implementations.Services.ServiceExecGeneral.Execute(Type serviceType, IRequest request, Object instance, Object requestDto, String requestName) at Emby.Server.Implementations.Services.ServiceController.Execute(HttpListenerHost httpHost, Object requestDto, IRequest req) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:28.410 -07:00] [ERR] Error processing request System.InvalidOperationException: Response Content-Length mismatch: too many bytes written (131072 of 100). at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowTooManyBytesWritten(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.VerifyAndUpdateWrite(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.InitializeResponseAsync(Int32 firstWriteByteCount) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.WriteAsync(ReadOnlyMemory`1 data, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at Microsoft.AspNetCore.ResponseCompression.BodyWrapperStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.FileWriter.TransmitFile(Stream stream, String path, Int64 offset, Int64 count, FileShareMode fileShareMode, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.FileWriter.WriteToAsync(HttpResponse response, CancellationToken cancellationToken) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:28.491 -07:00] [ERR] Error processing request System.InvalidOperationException: Response Content-Length mismatch: too many bytes written (131072 of 100). at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowTooManyBytesWritten(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.VerifyAndUpdateWrite(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.InitializeResponseAsync(Int32 firstWriteByteCount) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.WriteAsync(ReadOnlyMemory`1 data, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at Microsoft.AspNetCore.ResponseCompression.BodyWrapperStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.FileWriter.TransmitFile(Stream stream, String path, Int64 offset, Int64 count, FileShareMode fileShareMode, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.FileWriter.WriteToAsync(HttpResponse response, CancellationToken cancellationToken) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:29.596 -07:00] [ERR] Error processing request System.InvalidOperationException: Response Content-Length mismatch: too many bytes written (131072 of 100). at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowTooManyBytesWritten(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.VerifyAndUpdateWrite(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.InitializeResponseAsync(Int32 firstWriteByteCount) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.WriteAsync(ReadOnlyMemory`1 data, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at Microsoft.AspNetCore.ResponseCompression.BodyWrapperStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.FileWriter.TransmitFile(Stream stream, String path, Int64 offset, Int64 count, FileShareMode fileShareMode, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.FileWriter.WriteToAsync(HttpResponse response, CancellationToken cancellationToken) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:31.889 -07:00] [ERR] Error processing request System.InvalidOperationException: Response Content-Length mismatch: too many bytes written (131072 of 100). at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ThrowTooManyBytesWritten(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.VerifyAndUpdateWrite(Int32 count) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.InitializeResponseAsync(Int32 firstWriteByteCount) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.WriteAsync(ReadOnlyMemory`1 data, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at Microsoft.AspNetCore.ResponseCompression.BodyWrapperStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.IO.Stream.CopyToAsyncInternal(Stream destination, Int32 bufferSize, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.FileWriter.TransmitFile(Stream stream, String path, Int64 offset, Int64 count, FileShareMode fileShareMode, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.FileWriter.WriteToAsync(HttpResponse response, CancellationToken cancellationToken) at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken) at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IHttpRequest httpReq, String urlString, String host, String localPath, CancellationToken cancellationToken) [2020-01-01 19:40:32.735 -07:00] [INF] Playback stopped reported by app "AndroidTV" "0.10.2a" playing "The Unknown People (1)". Stopped at "0" ms [2020-01-01 19:40:32.818 -07:00] [INF] User policy for "Guest". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False [2020-01-01 19:40:32.818 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:32.818 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v" [2020-01-01 19:40:32.819 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:32.819 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v" [2020-01-01 19:40:32.819 -07:00] [INF] Profile: "Android-VLC", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:32.819 -07:00] [INF] Profile: "VideoCodecProfile", DirectPlay=false. Reason="Android-VLC".RefFrames Condition: GreaterThanEqual. ConditionValue: "2". IsRequired: False. Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v" [2020-01-01 19:40:32.843 -07:00] [INF] User policy for "Guest". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False [2020-01-01 19:40:32.843 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:32.844 -07:00] [INF] Profile: "Android-Exo", Path: "/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v", isEligibleForDirectPlay: True, isEligibleForDirectStream: True [2020-01-01 19:40:32.904 -07:00] [INF] /usr/lib/jellyfin-ffmpeg/ffmpeg -fflags +genpts -f mov,mp4,m4a,3gp,3g2,mj2 -i file:"/var/lib/plexmediaserver/Library/TV Shows/Adventures of Superman/Season 01/Adventures of Superman - s01e25 - The Unknown People (1).m4v" -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -copyts -avoid_negative_ts disabled -start_at_zero -vsync -1 -map_metadata -1 -map_chapters -1 -threads 0 -codec:a:0 copy -y "/var/lib/jellyfin/transcoding-temp/4e28ce63681f28a8bb4f83dcd90eaf40.mkv"```
backuprepo added the
confirmed
media playback
bug
labels 2025-12-21 18:14:33 +01:00
Author
Owner

@Artiume commented on GitHub (Jan 13, 2020):

Can you post your ffmpeg remux logs. We suspect that some Anamorphic videos that have janky DAR/SAR values with the container holding the true values, but ffmpeg is not carrying over those values.

@Artiume commented on GitHub (Jan 13, 2020): Can you post your ffmpeg remux logs. We suspect that some Anamorphic videos that have janky DAR/SAR values with the container holding the true values, but ffmpeg is not carrying over those values.
Author
Owner

@Artiume commented on GitHub (Feb 7, 2020):

    Program 1 
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(progressive), 720x576 [SAR 2176:1485 DAR 544:297], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 146 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[libx264 @ 0x5583d9f19080] using SAR=2176/1485
  Program 1 
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc
    Stream #0:1[0x101](eng): Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 126 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[libx264 @ 0x55d4e997c940] using SAR=1/1

Anamorphic sources for LiveTV. SAR is Storage Aspect Ratio, FFmpeg should be using the Display Aspect Ratio.

@Artiume commented on GitHub (Feb 7, 2020): ``` Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(progressive), 720x576 [SAR 2176:1485 DAR 544:297], 25 fps, 25 tbr, 90k tbn, 50 tbc Stream #0:1[0x101]: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 146 kb/s Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help [libx264 @ 0x5583d9f19080] using SAR=2176/1485 ``` ``` Program 1 Metadata: service_name : Service01 service_provider: FFmpeg Stream #0:0[0x100]: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 59.94 fps, 59.94 tbr, 90k tbn, 119.88 tbc Stream #0:1[0x101](eng): Audio: aac (HE-AAC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 126 kb/s Stream mapping: Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264)) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help [libx264 @ 0x55d4e997c940] using SAR=1/1 ``` Anamorphic sources for LiveTV. SAR is Storage Aspect Ratio, FFmpeg should be using the Display Aspect Ratio.
Author
Owner

@rexbron commented on GitHub (Apr 17, 2020):

@Ken-g6 Your files are tagged incorrectly. If the content is 1.3x anamorphic, the Display Aspect Ratio should be tagged as 16:9.

@rexbron commented on GitHub (Apr 17, 2020): @Ken-g6 Your files are tagged incorrectly. If the content is 1.3x anamorphic, the Display Aspect Ratio should be tagged as 16:9.
Author
Owner

@Ken-g6 commented on GitHub (Apr 17, 2020):

The example log I posted is for a 4:3 video. I still have to stretch the video on my TV to get it to display in the correct aspect ratio. (Though I haven't tried it lately.)

@Ken-g6 commented on GitHub (Apr 17, 2020): The example log I posted is for a 4:3 video. I still have to stretch the video on my TV to get it to display in the correct aspect ratio. (Though I haven't tried it lately.)
Author
Owner

@rexbron commented on GitHub (Apr 17, 2020):

It's only stored as at 4:3, (IE the SAR is 4:3). If you need to stretch it at the TV to get the correct aspect, the pixels themselves are not meant to be square (hence anamorphic, usually 1.3x).

If you tag the video with a display aspect ratio of 16:9, the anamorphic pixels will be desqueezed to the correct aspect ratio by the decoder before going out to the TV.

You have a 16:9 intended display video, squeezed into a 4:3 container, that is tagged such that the decoder thinks it's just a 4:3 video.

Make sense?

@rexbron commented on GitHub (Apr 17, 2020): It's only stored as at 4:3, (IE the SAR is 4:3). If you need to stretch it at the TV to get the correct aspect, the pixels themselves are not meant to be square (hence anamorphic, usually 1.3x). If you tag the video with a display aspect ratio of 16:9, the anamorphic pixels will be desqueezed to the correct aspect ratio by the decoder before going out to the TV. You have a 16:9 intended display video, squeezed into a 4:3 container, that is tagged such that the decoder thinks it's just a 4:3 video. Make sense?
Author
Owner

@Artiume commented on GitHub (Apr 17, 2020):

His post doesn't include the SAR, but nonetheless, the issue at hand still exists. I suffer from the same issue with content, it isn't a mistag issue. The issue is ffmpeg is using the SAR instead of DAR

@Artiume commented on GitHub (Apr 17, 2020): His post doesn't include the SAR, but nonetheless, the issue at hand still exists. I suffer from the same issue with content, it isn't a mistag issue. The issue is ffmpeg is using the SAR instead of DAR
Author
Owner

@stale[bot] commented on GitHub (Aug 15, 2020):

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.
If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or nightlies, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.
This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.

@stale[bot] commented on GitHub (Aug 15, 2020): This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments. If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or nightlies, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label. This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on [Matrix or Social Media](https://docs.jellyfin.org/general/getting-help.html).
Author
Owner

@ToxicFrog commented on GitHub (Jul 11, 2023):

I think I'm hitting the same bug: I have a video here with ffprobe info h264 (High), yuv420p(progressive), 720x480, SAR 853:720 DAR 853:480, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default), i.e. a 16:9 video ripped from anamorphic DVD. When played back in jellyfin-web, it displays as a 4:3 video rather than 16:9. In VLC it displays correctly.

@ToxicFrog commented on GitHub (Jul 11, 2023): I think I'm hitting the same bug: I have a video here with ffprobe info `h264 (High), yuv420p(progressive), 720x480, SAR 853:720 DAR 853:480, 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)`, i.e. a 16:9 video ripped from anamorphic DVD. When played back in jellyfin-web, it displays as a 4:3 video rather than 16:9. In VLC it displays correctly.
Author
Owner

@fusselkater commented on GitHub (Feb 29, 2024):

The same problem seems to exist for anamorphic Live TV channels: Stream #0:3: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn

All SD Channels are shown in 4:3 aspect ratio instead of 16:9. Tested with jellyfin-web, android and FireTV App. For FireTV I found a workaround, by choosing LibVLC as player.

@fusselkater commented on GitHub (Feb 29, 2024): The same problem seems to exist for anamorphic Live TV channels: `Stream #0:3: Video: mpeg2video (Main), yuv420p(tv, progressive), 720x576 [SAR 64:45 DAR 16:9], 25 fps, 25 tbr, 90k tbn` All SD Channels are shown in 4:3 aspect ratio instead of 16:9. Tested with jellyfin-web, android and FireTV App. For FireTV I found a workaround, by choosing LibVLC as player.
Author
Owner

@pmyshakov commented on GitHub (Mar 21, 2025):

@felix920506 It seems to me that the definition of IsAnamorphic should be a little more complicated.
Even in the discussion mentioned in the comment there is an example of detecting that is very different from the code

From discussion

IsAnamorphic=
if sample_aspect_ratio=="1:1" then false
else if sample_aspact_ratio != "0:1" the true
else if display_aspect_ratio =="0:1" then false
else if display_aspect_ratio!=width:height then true
else false

In code
350983e03c/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs (L856)

@pmyshakov commented on GitHub (Mar 21, 2025): @felix920506 It seems to me that the definition of IsAnamorphic should be a little more complicated. Even [in the discussion mentioned in the comment](http://stackoverflow.com/questions/17353387/how-to-detect-anamorphic-video-with-ffprobe) there is an example of detecting that is very different from the code From discussion ``` IsAnamorphic= if sample_aspect_ratio=="1:1" then false else if sample_aspact_ratio != "0:1" the true else if display_aspect_ratio =="0:1" then false else if display_aspect_ratio!=width:height then true else false ``` In code https://github.com/jellyfin/jellyfin/blob/350983e03cc354e083cccdd156d3672cc7125685/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs#L856
Author
Owner

@lordmortis commented on GitHub (Jul 11, 2025):

I appear to be having a similar issue to what's described here: I have some episodes encoded anamophically, and if i use SwiftFin and force direct play - they work. On first play in swift fin - they're fine, but afterwards they don't appear to be fine.

They also don't play correctly inside firefox.

I'm seeing this ffmpeg command line on transcode:
/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -fflags +genpts -f matroska -canvas_size 720x576 -i file:"<REDACTED>" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/cache/transcodes/a2c80921cc8419bbb9857751791849c5%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/cache/transcodes/a2c80921cc8419bbb9857751791849c5.m3u8"

This file has MKV tags for a pixel size of 720x576 but a display size of 1047x576

@lordmortis commented on GitHub (Jul 11, 2025): I appear to be having a similar issue to what's described here: I have some episodes encoded anamophically, and if i use SwiftFin and force direct play - they work. On first play in swift fin - they're fine, but afterwards they don't appear to be fine. They also don't play correctly inside firefox. I'm seeing this ffmpeg command line on transcode: ```/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -fflags +genpts -f matroska -canvas_size 720x576 -i file:"<REDACTED>" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/cache/transcodes/a2c80921cc8419bbb9857751791849c5%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/cache/transcodes/a2c80921cc8419bbb9857751791849c5.m3u8"``` This file has MKV tags for a pixel size of 720x576 but a display size of 1047x576
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: starred/jellyfin#1203
No description provided.