Jump to content

Unable to play MP4 files that have "Menu" streams


michaelh

Recommended Posts

michaelh

Hi all,

 

I've been having trouble play an increasing number of files through Emby on my LG TV (OLED55B7T). I believe I have found the common "problem" with these files and it's that they have a "Menu" (aka "Chapters" or "Text") stream, in addition to the usual Video/Audio/Subtitle streams.

 

When I try to play such a file the screen immediately goes completely back - there is no bottom menu/time bar, and I cannot get the bottom menu appear by pressing arrow keys, etc. Hitting the back button also does not stop playback. The Emby App appears totally frozen and I either have to restart the TV or forcibly close the App.

 

The MediaInfo for a typical problem file is:

General
Complete name                            : J:\TV Shows\T\Team, The\Season 2\The Team 2x01 - Episode 1.mp4
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 664 MiB
Duration                                 : 56 min 47 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 1 634 kb/s
Movie name                               : The Team S2 Ep1
Performer                                : SBSC
Description                              : Seven people are murdered during a brutal shootout at a B&B in Denmark's marshland. The only survivor of the massacre is the young Syrian woman Malu Barkiri (Sarah Perles), who escapes into the vast marshland area. A new group of investigators, Danish detective Nelly Winther (Marie Bach Hansen), Germany’s Gregor Weiss (Jürgen Vogel) and Belgium’s Paula Liekens (Lynn van Royen), join forces to solve the multiple homicide. The prime suspect is Bob Kellner (Sascha Alexander Geršak), the B&B's German owner, who vanished without a trace after the bloodbath.
Recorded date                            : 20181225
Writing application                      : Lavf57.76.100
Cover                                    : Yes
Comment                                  : Seven people are murdered during a brutal shootout at a B&B in Denmark's marshland. The only survivor of the massacre is the young Syrian woman Malu Barkiri (Sarah Perles), who escapes into the vast marshland area. A new group of investigators, Danish detective Nelly Winther (Marie Bach Hansen), Germany’s Gregor Weiss (Jürgen Vogel) and Belgium’s Paula Liekens (Lynn van Royen), join forces to solve the multiple homicide. The prime suspect is Bob Kellner (Sascha Alexander Geršak), the B&B's German owner, who vanished without a trace after the bloodbath.

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L3.1
Format settings                          : CABAC / 5 Ref Frames
Format settings, CABAC                   : Yes
Format settings, RefFrames               : 5 frames
Format settings, GOP                     : M=4, N=50
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 56 min 47 s
Bit rate mode                            : Constant
Bit rate                                 : 1 500 kb/s
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 25.000 FPS
Standard                                 : Component
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.065
Stream size                              : 609 MiB (92%)
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709
Menus                                    : 4
Codec configuration box                  : avcC

Audio
ID                                       : 2
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 56 min 46 s
Bit rate mode                            : Constant
Bit rate                                 : 126 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 44.1 kHz
Frame rate                               : 43.066 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 51.0 MiB (8%)
Default                                  : Yes
Alternate group                          : 1
Menus                                    : 4

Text
ID                                       : 3
Format                                   : Timed Text
Muxing mode                              : sbtl
Codec ID                                 : tx3g
Duration                                 : 55 min 26 s
Bit rate mode                            : Variable
Bit rate                                 : 9 b/s
Stream size                              : 3.81 KiB (0%)
Language                                 : English
Default                                  : Yes
Forced                                   : No
Alternate group                          : 3
Menus                                    : 4

Menu #1
ID                                       : 4
Codec ID                                 : text
Duration                                 : 56 min 47 s
Language                                 : English
Bit rate mode                            : CBR
Menu For                                 : 1,2,3

Menu #2

MP4BOX -info produces gives this info:

* Movie Info *
        Timescale 1000 - Duration 00:56:47.000
        Fragmented File no - 4 track(s)
        File Brand isom - version 512
        Created: UNKNOWN DATE
File has no MPEG4 IOD/OD

Chapters:
        Chapter #1 - 00:00:00.000 - ""
        Chapter #2 - 00:15:10.000 - ""
        Chapter #3 - 00:30:22.917 - ""
        Chapter #4 - 00:43:56.292 - ""

iTunes Info:
        Name: The Team S2 Ep1
        Artist: SBSC
        Comment: Seven people are murdered during a brutal shootout at a B&B in Denmark's marshland. The only survivor of the massacre is the young Syrian woman Malu Barkiri (Sarah Perles), who escapes into the vast marshland area. A new group of investiga
tors, Danish detective Nelly Winther (Marie Bach Hansen), GermanyÔÇÖs Gregor Weiss (J├╝rgen Vogel) and BelgiumÔÇÖs Paula Liekens (Lynn van Royen), join forces to solve the multiple homicide. The prime suspect is Bob Kellner (Sascha Alexander Ger┼íak), the
B&B's German owner, who vanished without a trace after the bloodbath.
        Created: 20181225
        Encoder Software: Lavf57.76.100
        Cover Art: JPEG File

Track # 1 Info - TrackID 1 - TimeScale 90000 - Duration 00:56:47.000
Media Info: Language "Undetermined" - Type "vide:avc1" - 85175 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 1280 x 720 - Profile Main @ Level 3.1
NAL Unit length bits: 32
Pixel Aspect Ratio 1:1 - Indicated track size 1280 x 720
Self-synchronized

Track # 2 Info - TrackID 2 - TimeScale 44100 - Duration 00:56:46.996
Media Info: Language "Undetermined" - Type "soun:mp4a" - 146727 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 44100
Synchronized on stream 1
Alternate Group ID 1

Track # 3 Info - TrackID 3 - TimeScale 1000000 - Duration 00:55:26.320
Media Info: Language "English" - Type "sbtl:tx3g" - 203 samples
3GPP/MPEG-4 Timed Text - Size 0 x 0 - Translation X=0 Y=0 - Layer 0
Alternate Group ID 3

Track # 4 Info - TrackID 4 - TimeScale 1000 - Duration 00:56:47.000
Track is disabled
Media Info: Language "Undetermined" - Type "text:text" - 4 samples
3GPP/MPEG-4 Timed Text - Size 0 x 0 - Translation X=0 Y=0 - Layer 0

If I use MP4Box to remove track 4 from the file (but leave the other streams all untouched), then it will play back perfectly on the TV using Emby.

 

Note that when this file fails to play on the TV the logs show no errors that I can see. Here's the appropriate slice:

2019-08-06 14:26:25.979 Info HttpServer: HTTP POST http://192.168.66.15:8096/emby/Items/142177/PlaybackInfo?UserId=9fc5f7697bf8437a95a4516c0cb3dd8a&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&AudioStreamIndex=1&SubtitleStreamIndex=2&MediaSourceId=84cd3a4615745ccc46d97761b9fd9f2b&MaxStreamingBitrate=140000000. UserAgent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager
2019-08-06 14:26:25.980 Debug App: GetPostedPlaybackInfo request: {"Id":"142177","UserId":"9fc5f7697bf8437a95a4516c0cb3dd8a","MaxStreamingBitrate":140000000,"StartTimeTicks":0,"AudioStreamIndex":1,"SubtitleStreamIndex":2,"MediaSourceId":"84cd3a4615745ccc46d97761b9fd9f2b","DeviceProfile":{"EnableAlbumArtInDidl":false,"EnableSingleAlbumArtLimit":false,"EnableSingleSubtitleLimit":false,"SupportedMediaTypes":"Audio,Photo,Video","MaxAlbumArtWidth":0,"MaxAlbumArtHeight":0,"MaxStreamingBitrate":120000000,"MaxStaticBitrate":100000000,"MusicStreamingTranscodingBitrate":192000,"TimelineOffsetSeconds":0,"RequiresPlainVideoItems":false,"RequiresPlainFolders":false,"IgnoreTranscodeByteRangeRequests":false,"XmlRootAttributes":[],"DirectPlayProfiles":[{"Container":"mp4,m4v","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264,h265,hevc,mpeg2video,vc1,vp8,vp9","Type":"Video"},{"Container":"mkv","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264,h265,hevc,mpeg2video,vc1,vp8,vp9","Type":"Video"},{"Container":"m2ts","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264,vc1,mpeg2video","Type":"Video"},{"Container":"wmv","AudioCodec":"","VideoCodec":"","Type":"Video"},{"Container":"ts,mpegts","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264,h265,hevc,vc1,mpeg2video","Type":"Video"},{"Container":"asf","AudioCodec":"","VideoCodec":"","Type":"Video"},{"Container":"avi","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"","Type":"Video"},{"Container":"mpg","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"","Type":"Video"},{"Container":"mpeg","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"","Type":"Video"},{"Container":"3gp","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"","Type":"Video"},{"Container":"mov","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264","Type":"Video"},{"Container":"mp3","AudioCodec":"mp3","Type":"Audio"},{"Container":"aac","AudioCodec":"aac","Type":"Audio"},{"Container":"m4a","AudioCodec":"aac","Type":"Audio"},{"Container":"mp4","AudioCodec":"aac","Type":"Audio"},{"Container":"flac","Type":"Audio"},{"Container":"webma,webm","Type":"Audio"},{"Container":"wav","Type":"Audio"},{"Container":"ogg","Type":"Audio"},{"Container":"webm","AudioCodec":"vorbis","VideoCodec":"VP8","Type":"Video"},{"Container":"webm","AudioCodec":"vorbis","VideoCodec":"VP9","Type":"Video"}],"TranscodingProfiles":[{"Container":"aac","Type":"Audio","AudioCodec":"aac","Protocol":"hls","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":1,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"aac","Type":"Audio","AudioCodec":"aac","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"mp3","Type":"Audio","AudioCodec":"mp3","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"wav","Type":"Audio","AudioCodec":"wav","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"mp3","Type":"Audio","AudioCodec":"mp3","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Static","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"aac","Type":"Audio","AudioCodec":"aac","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Static","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"wav","Type":"Audio","AudioCodec":"wav","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Static","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"mkv","Type":"Video","VideoCodec":"h264,h265,hevc,mpeg2video,vc1,vp8,vp9","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":true,"Context":"Static","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"ts","Type":"Video","VideoCodec":"h264,h265,hevc","AudioCodec":"ac3,eac3,aac,mp3","Protocol":"hls","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":1,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"webm","Type":"Video","VideoCodec":"vpx","AudioCodec":"vorbis","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"mp4","Type":"Video","VideoCodec":"h264","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Static","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false}],"ContainerProfiles":[],"CodecProfiles":[{"Type":"Video","Conditions":[{"Condition":"EqualsAny","Property":"VideoProfile","Value":"high|main|baseline|constrained baseline","IsRequired":false},{"Condition":"LessThanEqual","Property":"VideoLevel","Value":"51","IsRequired":false}],"ApplyConditions":[],"Codec":"h264"}],"ResponseProfiles":[{"Container":"m4v","Type":"Video","MimeType":"video/mp4","Conditions":[]}],"SubtitleProfiles":[{"Format":"vtt","Method":"External"},{"Format":"ass","Method":"External"},{"Format":"ssa","Method":"External"}]},"EnableDirectPlay":true,"EnableDirectStream":true,"EnableTranscoding":true,"AllowVideoStreamCopy":true,"AllowAudioStreamCopy":true,"IsPlayback":true,"AutoOpenLiveStream":true,"DirectPlayProtocols":["Http"]}
2019-08-06 14:26:25.982 Info App: User policy for Family. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
2019-08-06 14:26:25.983 Info HttpServer: HTTP Response 200 to 192.168.66.214. Time: 4ms. http://192.168.66.15:8096/emby/Items/142177/PlaybackInfo?UserId=9fc5f7697bf8437a95a4516c0cb3dd8a&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&AudioStreamIndex=1&SubtitleStreamIndex=2&MediaSourceId=84cd3a4615745ccc46d97761b9fd9f2b&MaxStreamingBitrate=140000000
2019-08-06 14:26:26.295 Info HttpServer: HTTP GET http://192.168.66.15:8096/emby/Videos/142177/84cd3a4615745ccc46d97761b9fd9f2b/Subtitles/2/0/Stream.vtt. Host=192.168.66.15:8096, Connection=keep-alive, User-Agent=Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager, Origin=file://, Accept=*/*, Accept-Encoding=gzip,deflate, Accept-Language=en-us,en
2019-08-06 14:26:26.298 Info HttpServer: HTTP Response 200 to 192.168.66.214. Time: 2ms. http://192.168.66.15:8096/emby/Videos/142177/84cd3a4615745ccc46d97761b9fd9f2b/Subtitles/2/0/Stream.vtt
2019-08-06 14:26:26.332 Info HttpServer: HTTP POST http://192.168.66.15:8096/emby/Sessions/Playing. UserAgent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager
2019-08-06 14:26:26.334 Info SessionManager: Playback start reported by app Emby Theater 1.0.17 playing Episode 1. Started at 0 ms
2019-08-06 14:26:26.356 Info PlaybackReporting - EventMonitorEntryPoint: _sessionManager_PlaybackStart : Entered
2019-08-06 14:26:26.356 Info PlaybackReporting - EventMonitorEntryPoint: Adding PlaybackInfo to playback_trackers : 9a452a31c6d024ebb80776c9df2c655165f97dc9-9fc5f7697bf8437a95a4516c0cb3dd8a-142177
2019-08-06 14:26:26.356 Info PlaybackReporting - EventMonitorEntryPoint: Saving PlaybackInfo to DB
2019-08-06 14:26:26.356 Info HttpServer: HTTP Response 204 to 192.168.66.214. Time: 24ms. http://192.168.66.15:8096/emby/Sessions/Playing
2019-08-06 14:26:26.417 Info HttpServer: HTTP POST http://192.168.66.15:8096/emby/Items/142177/PlaybackInfo?UserId=9fc5f7697bf8437a95a4516c0cb3dd8a&StartTimeTicks=0&IsPlayback=false&AutoOpenLiveStream=false&MaxStreamingBitrate=140000000. UserAgent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager
2019-08-06 14:26:26.419 Debug App: GetPostedPlaybackInfo request: {"Id":"142177","UserId":"9fc5f7697bf8437a95a4516c0cb3dd8a","MaxStreamingBitrate":140000000,"StartTimeTicks":0,"DeviceProfile":{"EnableAlbumArtInDidl":false,"EnableSingleAlbumArtLimit":false,"EnableSingleSubtitleLimit":false,"SupportedMediaTypes":"Audio,Photo,Video","MaxAlbumArtWidth":0,"MaxAlbumArtHeight":0,"MaxStreamingBitrate":120000000,"MaxStaticBitrate":100000000,"MusicStreamingTranscodingBitrate":192000,"TimelineOffsetSeconds":0,"RequiresPlainVideoItems":false,"RequiresPlainFolders":false,"IgnoreTranscodeByteRangeRequests":false,"XmlRootAttributes":[],"DirectPlayProfiles":[{"Container":"mp4,m4v","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264,h265,hevc,mpeg2video,vc1,vp8,vp9","Type":"Video"},{"Container":"mkv","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264,h265,hevc,mpeg2video,vc1,vp8,vp9","Type":"Video"},{"Container":"m2ts","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264,vc1,mpeg2video","Type":"Video"},{"Container":"wmv","AudioCodec":"","VideoCodec":"","Type":"Video"},{"Container":"ts,mpegts","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264,h265,hevc,vc1,mpeg2video","Type":"Video"},{"Container":"asf","AudioCodec":"","VideoCodec":"","Type":"Video"},{"Container":"avi","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"","Type":"Video"},{"Container":"mpg","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"","Type":"Video"},{"Container":"mpeg","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"","Type":"Video"},{"Container":"3gp","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"","Type":"Video"},{"Container":"mov","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","VideoCodec":"h264","Type":"Video"},{"Container":"mp3","AudioCodec":"mp3","Type":"Audio"},{"Container":"aac","AudioCodec":"aac","Type":"Audio"},{"Container":"m4a","AudioCodec":"aac","Type":"Audio"},{"Container":"mp4","AudioCodec":"aac","Type":"Audio"},{"Container":"flac","Type":"Audio"},{"Container":"webma,webm","Type":"Audio"},{"Container":"wav","Type":"Audio"},{"Container":"ogg","Type":"Audio"},{"Container":"webm","AudioCodec":"vorbis","VideoCodec":"VP8","Type":"Video"},{"Container":"webm","AudioCodec":"vorbis","VideoCodec":"VP9","Type":"Video"}],"TranscodingProfiles":[{"Container":"aac","Type":"Audio","AudioCodec":"aac","Protocol":"hls","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":1,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"aac","Type":"Audio","AudioCodec":"aac","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"mp3","Type":"Audio","AudioCodec":"mp3","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"wav","Type":"Audio","AudioCodec":"wav","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"mp3","Type":"Audio","AudioCodec":"mp3","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Static","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"aac","Type":"Audio","AudioCodec":"aac","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Static","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"wav","Type":"Audio","AudioCodec":"wav","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Static","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"mkv","Type":"Video","VideoCodec":"h264,h265,hevc,mpeg2video,vc1,vp8,vp9","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":true,"Context":"Static","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"ts","Type":"Video","VideoCodec":"h264,h265,hevc","AudioCodec":"ac3,eac3,aac,mp3","Protocol":"hls","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":1,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"webm","Type":"Video","VideoCodec":"vpx","AudioCodec":"vorbis","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Streaming","MaxAudioChannels":"6","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false},{"Container":"mp4","Type":"Video","VideoCodec":"h264","AudioCodec":"ac3,eac3,mp3,aac,mp2,dca,dts,pcm_s16le,pcm_s24le,flac,vorbis","Protocol":"http","EstimateContentLength":false,"EnableMpegtsM2TsMode":false,"TranscodeSeekInfo":"Auto","CopyTimestamps":false,"Context":"Static","MinSegments":0,"SegmentLength":0,"BreakOnNonKeyFrames":false}],"ContainerProfiles":[],"CodecProfiles":[{"Type":"Video","Conditions":[{"Condition":"EqualsAny","Property":"VideoProfile","Value":"high|main|baseline|constrained baseline","IsRequired":false},{"Condition":"LessThanEqual","Property":"VideoLevel","Value":"51","IsRequired":false}],"ApplyConditions":[],"Codec":"h264"}],"ResponseProfiles":[{"Container":"m4v","Type":"Video","MimeType":"video/mp4","Conditions":[]}],"SubtitleProfiles":[{"Format":"vtt","Method":"External"},{"Format":"ass","Method":"External"},{"Format":"ssa","Method":"External"}]},"EnableDirectPlay":true,"EnableDirectStream":true,"EnableTranscoding":true,"AllowVideoStreamCopy":true,"AllowAudioStreamCopy":true,"IsPlayback":false,"AutoOpenLiveStream":false,"DirectPlayProtocols":["Http"]}
2019-08-06 14:26:26.420 Info App: User policy for Family. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
2019-08-06 14:26:26.421 Info HttpServer: HTTP Response 200 to 192.168.66.214. Time: 3ms. http://192.168.66.15:8096/emby/Items/142177/PlaybackInfo?UserId=9fc5f7697bf8437a95a4516c0cb3dd8a&StartTimeTicks=0&IsPlayback=false&AutoOpenLiveStream=false&MaxStreamingBitrate=140000000
2019-08-06 14:26:26.786 Info HttpServer: HTTP GET http://192.168.66.15:8096/emby/Videos/142177/stream.mp4?Static=true&mediaSourceId=84cd3a4615745ccc46d97761b9fd9f2b&deviceId=9a452a31c6d024ebb80776c9df2c655165f97dc9. Host=192.168.66.15:8096, Connection=close, icy-metadata=1, Range=bytes=0-, User-Agent=Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager
2019-08-06 14:26:36.365 Info HttpServer: HTTP POST http://192.168.66.15:8096/emby/Sessions/Playing/Progress. UserAgent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager
2019-08-06 14:26:36.368 Info HttpServer: HTTP Response 204 to 192.168.66.214. Time: 2ms. http://192.168.66.15:8096/emby/Sessions/Playing/Progress
2019-08-06 14:26:47.475 Info HttpServer: HTTP POST http://192.168.66.15:8096/emby/Sessions/Playing/Stopped. UserAgent: Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 WebAppManager
2019-08-06 14:26:47.476 Debug App: ReportPlaybackStopped PlaySessionId:
2019-08-06 14:26:47.476 Info SessionManager: Playback stopped reported by app Emby Theater 1.0.17 playing Episode 1. Stopped at 0 ms
2019-08-06 14:26:47.481 Info PlaybackReporting - EventMonitorEntryPoint: _sessionManager_PlaybackStop : Entered
2019-08-06 14:26:47.481 Info PlaybackReporting - EventMonitorEntryPoint: Saving final duration for Item : 9a452a31c6d024ebb80776c9df2c655165f97dc9-9fc5f7697bf8437a95a4516c0cb3dd8a-142177
2019-08-06 14:26:47.481 Info HttpServer: HTTP Response 204 to 192.168.66.214. Time: 7ms. http://192.168.66.15:8096/emby/Sessions/Playing/Stopped
2019-08-06 14:26:47.519 Info PlaybackReporting - EventMonitorEntryPoint: Removing Old Key from playback_trackers : 9a452a31c6d024ebb80776c9df2c655165f97dc9-9fc5f7697bf8437a95a4516c0cb3dd8a-142177
2019-08-06 14:26:47.552 Debug SessionManager: Removing active session LG Smart TV (OLED55B7T-T) 9a452a31c6d024ebb80776c9df2c655165f97dc9
2019-08-06 14:26:47.552 Debug SessionManager: Disposing session controller WebSocketController
2019-08-06 14:26:48.113 Info HttpServer: SocketException: http://192.168.66.15:8096/emby/Videos/142177/stream.mp4?Static=true&mediaSourceId=84cd3a4615745ccc46d97761b9fd9f2b&deviceId=9a452a31c6d024ebb80776c9df2c655165f97dc9&api_key=2d87df81d2654487b194cd0a7e7f74a9
2019-08-06 14:26:48.113 Info HttpServer: HTTP Response 206 to 192.168.66.214. Time: 21329ms. http://192.168.66.15:8096/emby/Videos/142177/stream.mp4?Static=true&mediaSourceId=84cd3a4615745ccc46d97761b9fd9f2b&deviceId=9a452a31c6d024ebb80776c9df2c655165f97dc9
2019-08-06 14:26:49.048 Debug SessionManager: Disposing session controller PlayToController

You can see the logs saying it's starting to play the file, then around 10 seconds later I abort (by forcibly closing the app) and the link is shut down, the system recording that zero seconds were played.

 

Where can we go from here? Because this is all being done through Direct Play I presume it's really the LG TV/WebOS which is at fault. (These same files play OK through the Emby Web app on a PC, and through the same LG TV but using Emby for Chromecast.)

 

Can Emby strip such a stream on the fly, a bit like it mucks around with subtitles? Or be forced to do a full transcode? It's not the end of the world to lose the menus/chapter info from the files, but it's a pain to have to check every file for the problem, then fix it, and often you don't notice the problem until you try to play the file.

 

Cheers,

 

Michael

Link to comment
Share on other sites

SamES

I've seen this a few times on MP4 files, but I have at least one that does not have any menus and it still occurs, but it's a good observation if you can prove it is always the case.

 

I'm pretty sure if you put this (original) file on a USB and try to play it directly on the TV it will also fail.  The issue is that when played via the emby player it doesn't actually fail or through an error we can detect, it just hangs on a black screen.

 

Can you please try just removing the timed text (track3 ) instead of track 4?

Link to comment
Share on other sites

michaelh

I'll do some more tests and get back to you, but I will say it's very consistent about crashing out on these files. i.e. it won't just crash on one, it will crash for every file in the season. And I have got some which crash and have a slightly different structure. For example, the file I used above had:

 

Track 1: AVC/H264 Video (vide:avc1)

Track 2: MPEG-4 Audio AAC (soun:mp4a)

Track 3: 3GPP/MPEG-4 Timed Text (sbtl:tx3g)

Track 4: 3GPP/MPEG-4 Timed Text (text:text)

 

I also have another file that crashed that has:

 

Track 1: AVC/H264 Video (vide:avc1)

Track 2: MPEG-4 Audio AAC (soun:mp4a)

Track 3: NeroDigital Subpicture Stream (subp:mp4s)

Track 4: 3GPP/MPEG-4 Timed Text (text:text)

 

That is, there a different type of subtitle track (picture vs. text). It's also worth noting that these two files have definitely been encoded by very different people using very different software, etc. (Lavf57.76.100 vs DVDFab 10.2.1.5)

 

Still, I'll try these from USB as well (from memory they did also fail), and I will try removing the subtitle tracks to see if that makes a difference and get back to you.

 

Here's the full MediaInfo and MP4Box diagnostics from my second example:

General
Complete name                            : J:\TV Shows\G\Goodies, The\Season 1\The Goodies 1x01 - Beefeaters AKA Tower of London.mp4
Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42 (mp42/isom/avc1)
File size                                : 320 MiB
Duration                                 : 29 min 56 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 1 495 kb/s
Movie name                               : 1. Beefeaters.
Album                                    : GOODIES_D1
Encoded date                             : UTC 2018-10-01 19:15:35
Tagged date                              : UTC 2018-10-01 19:21:38
Writing application                      : DVDFab 10.2.1.5
covr                                     : Unknown kind of value!

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L3
Format settings                          : CABAC / 1 Ref Frames
Format settings, CABAC                   : Yes
Format settings, RefFrames               : 1 frame
Format settings, GOP                     : M=1, N=25
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 29 min 56 s
Bit rate mode                            : Constant
Bit rate                                 : 1 291 kb/s
Width                                    : 720 pixels
Height                                   : 556 pixels
Display aspect ratio                     : 1.295
Frame rate mode                          : Constant
Frame rate                               : 25.000 FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.129
Stream size                              : 276 MiB (86%)
Encoded date                             : UTC 2018-10-01 19:15:35
Tagged date                              : UTC 2018-10-01 19:21:38
Color range                              : Limited
Color primaries                          : BT.601 NTSC
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.601
colour_primaries_Original                : BT.709
transfer_characteristics_Original        : BT.709
matrix_coefficients_Original             : BT.709
Menus                                    : 4
Codec configuration box                  : avcC

Audio
ID                                       : 2
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : mp4a-40-2
Duration                                 : 29 min 55 s
Bit rate mode                            : Constant
Bit rate                                 : 192 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 41.1 MiB (13%)
Title                                    : English (aac 2.0)
Language                                 : English
Default                                  : Yes
Alternate group                          : 1
Encoded date                             : UTC 2018-10-01 19:15:35
Tagged date                              : UTC 2018-10-01 19:21:37

Text
ID                                       : 3
Format                                   : VobSub
Codec ID                                 : mp4s-E0
Codec ID/Info                            : The same subtitle format used on DVDs
Duration                                 : 29 min 53 s
Bit rate mode                            : Variable
Bit rate                                 : 4 171 b/s
Maximum bit rate                         : 4 166 Mb/s
Stream size                              : 913 KiB (0%)
Language                                 : English
Default                                  : Yes
Forced                                   : No
Alternate group                          : 2
Encoded date                             : UTC 2018-10-01 19:15:35
Tagged date                              : UTC 2018-10-01 19:21:36

Menu
ID                                       : 4
Codec ID                                 : text
Duration                                 : 29 min 55 s
Encoded date                             : UTC 2018-10-01 19:15:35
Tagged date                              : UTC 2018-10-01 19:21:37
Bit rate mode                            : CBR
Menu For                                 : 1
Duration_FirstFrame                      : 419240
00:00:00.000                             : Chapter 1
00:18:27.440                             : Chapter 2
* Movie Info *
        Timescale 90000 - Duration 00:29:56.080
        Fragmented File no - 4 track(s)
        File Brand mp42 - version 0
        Created: GMT Mon Oct 01 19:15:35 2018

File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: ISO Reserved Profile (0x7f)
Audio PL: High Quality Audio Profile @ Level 2 (0x0f)
No streams included in root OD

iTunes Info:
        Name: 1. Beefeaters.
        Album: GOODIES_D1
        Encoder Software: DVDFab 10.2.1.5
        Cover Art: JPEG File

Track # 1 Info - TrackID 1 - TimeScale 25000 - Duration 00:29:56.080
Media Info: Language "Undetermined" - Type "vide:avc1" - 44902 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 720 x 556 - Profile Main @ Level 3
NAL Unit length bits: 32
Pixel Aspect Ratio 1:1 - Indicated track size 720 x 556
Self-synchronized

Track # 2 Info - TrackID 2 - TimeScale 48000 - Duration 00:29:55.562
Media Info: Language "English" - Type "soun:mp4a" - 84167 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
Synchronized on stream 1
Alternate Group ID 1

Track # 3 Info - TrackID 3 - TimeScale 90000 - Duration 00:29:53.988
Media Info: Language "English" - Type "subp:mp4s" - 966 samples
MPEG-4 Config: NeroDigital Subpicture Stream - ObjectTypeIndication 0xe0
Synchronized on stream 1
Alternate Group ID 2

Track # 4 Info - TrackID 4 - TimeScale 25000 - Duration 00:29:55.640
Track is disabled
Media Info: Language "Undetermined" - Type "text:text" - 2 samples
3GPP/MPEG-4 Timed Text - Size 0 x 0 - Translation X=0 Y=0 - Layer 0

Cheers,

 

Michael

Link to comment
Share on other sites

michaelh

Well, things are probably only getting muddier I'm afraid.

 

I rewrote my first test file in several different ways:

 

1) Removing Chapters track

2) Removing Subtitle track

3) Removing both

4) Removing just the metadata

5) Using the "-no-sys" option in MP4BOX ["removes all MPEG-4 Systems info except IOD (profiles)"
6) Using the "-no-iod" option in MP4BOX ["removes InitialObjectDescriptor from file"]

 

5 & 6 are perhaps the most interesting; 6 in particular as according to MP4BOX the original file *didn't have an IOD*, so rewriting the file without it should pretty much do nothing.

 

The end result? EMBY COULD PLAY EVERYTHING. So basically it didn't matter what was in the file, just the act of rewriting it using MP4BOX has fixed something.

 

What is really strange is I check all these files being played direct from USB, and again, all of them played, BUT SO DID THE ORIGINAL. Yes, the file that Emby could not play *could* be played from USB.

 

Not really sure where this leaves us. Basically it looks like I have a bunch of "slightly corrupt" MP4s that crash Emby and nothing else, but I can get around this by rewriting the files with MP4BOX, which basically remuxes it, reinterleaves it, and rewrites all the "container" bits that results in a significantly different file, but ultimately unchanged video/audio/sub tracks, and that's probably what matters.

 

*IF* there was some way for Emby to detect the problem files then I guess it could do a "Clayton's" transcode on the fly (i.e. don't actually re-encode anything, just send out the streams "fresh"), but as we know, there does appear to be any way to do that (detect which files are "bad" beforehand, that is.)

 

Sorry I got excited about the Chapter/Menu stream being at fault. Was too good to be true.

 

Cheers,

 

Michael

Link to comment
Share on other sites

SamES

Thanks for spending the time on this.  I have several mp4's from users with the same problem and could not find any specific parameters or configuration that was common.  Feel free to PM me a link to one or two files and I'll compare them with my samples, maybe it's enough to find the common thread.

Link to comment
Share on other sites

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
×
×
  • Create New...