Saremgm 0 Posted May 19 Posted May 19 Look at the picture below of my TV when playing a movie on Emby for Apple TV. Do you see the "Chapter 1" OSD? That annoys me a lot and I don't know how to suppress this OSD chapter progress message in the Emby clients. Here I took a screenshot of our AppleTV, but the same is true for Emby for i(Pad)OS. I guess for movies that don't have subtitles (or cultures that don't use them much), the chapter progress OSD is not a problem. To be able to read the subtitles (subtitles here are burned in), I have to shrink the movie a bit. When I play the same movie with the same Emby user account in the Emby Webclient, I don't see a chapter progress OSD. Unfortunately, in the Emby client for AppleTV and i(Pad)OS, the chapter progress OSD remains on screen. How can I convince the Emby development team to consider a feature in Emby clients to turn on/off the chapter progress OSD? Thank you. Sare
Luke 42530 Posted May 19 Posted May 19 Hi, you're saying this comes up on every chapter? This is not an emby feature, something else is doing this.
Saremgm 0 Posted May 20 Author Posted May 20 Hi Luke, Yes indeed. This comes up at every chapter. I Moved from Plex to Emby last year and since then, we only watch our media with Emby. Most content was captured (long ago) from TV and encoded to .mp4 or .m4v files by Elgato H.264 Turbo. Just to test, Emby is the only app loaded on Apple TV. No other apps are active in memory. No accessibility features are enabled. We use Emby version 2.0.06 (3) for AppleTV. I refreshed the metadata of my movies and series many times and searched the Emby forum to no avail. As it turns out -- and with the help of Claude.ai -- I think I found the root cause: when a movie or episode has embedded chapter information, Emby shows the chapter progress OSD. I only came to realize this when Claude.ai mentioned me that Emby can generate chapters on a per library base, but -- according to Claude.ai -- that does nothing when a movie of episode has chapter information embedded. The chapter generation feature is turned off for this library, so I verified if the episode mentioned here contained embedded chapter information with this command: ```ffprobe -v quiet -print_format json -show_chapters \ "/Volumes/PXA/Emby/Series/Dicte/Season 1/Dicte - S01E09 - Vold Og Magt - del 1.m4v"``` And, it did. It showed chapter metadata. Just as an experiment, I removed the chapter information of the episode mentioned here with this code below: ```ffmpeg -nostdin -v quiet -i \ "/Volumes/PXA/Emby/Series/Dicte/Season 1/Dicte - S01E09 - Vold Og Magt - del 1.m4v" \ -map_chapters -1 -c copy \ "/Volumes/PXA/Emby/Series/Dicte/Season 1/Dicte - S01E09 - Vold Og Magt - del 1_tmp.m4v" \ -y && \ mv "/Volumes/PXA/Emby/Series/Dicte/Season 1/Dicte - S01E09 - Vold Og Magt - del 1_tmp.m4v" \ "/Volumes/PXA/Emby/Series/Dicte/Season 1/Dicte - S01E09 - Vold Og Magt - del 1.m4v"``` I then played the episode again in Emby and ... the chapter progress OSD was (finally) gone! So, I guess it would help if Emby clients provide a preference setting to turn on/off chapter OSD whether that chapter information is generated by Emby or is embedded in a movie file. Does this insight help you further Luke? Sare.
Saremgm 0 Posted May 22 Author Posted May 22 Luke, I wanted to let your comment (that what I see is not Emby related) to sink in. Looking at the AVKit documentation (https://developer.apple.com/documentation/AVKit), I guess apps that stream content to tvOS and i(Pad)OS make use of the AVKit framework. I read that AVKit is used to create user interfaces for playback and chapter navigation among other things. if Emby uses this AVKit, then your statement might be partially right and could explain why I see the chapter OSD on both tvOS and iPadOS when playing movies via the Emby client. I was wondering why I never saw the chapter info in the Plex Client for tvOS, so I wanted to research this a bit more. I found this documentation on Apple Developer (https://developer.apple.com/documentation/avkit/avplayerviewcontroller/contentoverlayview) that there is an i(tv/Pad)OS based OSD. On this AVPalyerViewController page (https://developer.apple.com/documentation/AVKit/AVPlayerViewController) Apple writes: Quote "AVKit for tvOS extends the features of AVPlayerViewController and AVPlayerItem to provide additional ways to navigate and present content. Features unique to the tvOS player user interface include: Navigation Marker Groups. A group of navigation markers that allow a viewer to jump between significant events in the media timeline. The most common type of navigation marker group is a chapter list, but you can also create additional or alternative means of navigation — for example, to allow the user to quickly jump between key moments in a recorded sporting event. The player view controller lets the user choose between multiple marker groups for navigating through the media timeline." A subclass of AVPalyerItem (https://developer.apple.com/documentation/AVFoundation/AVPlayerItem) is Navigation Marker Groups (https://developer.apple.com/documentation/avfoundation/avplayeritem/navigationmarkergroups) that is about: "providing a set of time markers for navigating playback. The most common form of navigation marker group is a chapter list." According to this document https://developer.apple.com/documentation/avkit/avplayerviewcontroller, AVPlayerViewController: Quote "A view controller that displays content from a player and presents a native user interface to control playback." Correct me if I a wrong, but isn't this like two different processes are looking at the same video stream: the Emby client and tvOS via AVKit? Is there a way for the Emby client to NOT pass (as in suppress) this chapter information to this AVPlayerViewController of AVKit so the Emby client stays in complete control of chapter information and when to show it? I am a telecoms engineer, not a software engineer, so I am not sure if I am right. Sare
Luke 42530 Posted May 25 Posted May 25 Are you sure it's not coming from subtitles? That seems most likely to me.
ebr 16432 Posted May 26 Posted May 26 There are subs on the screen in his pic and the style is different so I doubt it is that. My guess is it is the Apple player itself.
crusher11 1204 Posted May 26 Posted May 26 5 hours ago, ebr said: There are subs on the screen in his pic and the style is different so I doubt it is that. They look burned-in. The chapter alert seems to be much higher quality than the subs, which match the lo-fi look of the video itself.
Luke 42530 Posted May 26 Posted May 26 Right it's definitely one of these three: Coming from subtitles The apple player Pre-burned into the video
ebr 16432 Posted May 27 Posted May 27 18 hours ago, crusher11 said: They look burned-in Ah yes. If the actual subtitles are burned in then Luke could very well be right and there is an external or additional sub track with the chapter announcements.
speechles 2086 Posted May 27 Posted May 27 That chapter bit has an effect behind it. An rounded edge box. It is also below the edge of the frame. Usually subtitles aren't supposed to display in that area. Subtitles should display on the frame of video. This makes me think it is the Apple player doing it. Since it has that rounded opaque box behind there. Its the super bright 100% opacity text like Apple loves to do. If I were a betting man, which I am, my money is on the Apple player itself doing this.
Saremgm 0 Posted May 29 Author Posted May 29 Luke et al, I am really sure it does not come from subtitles. In this case, the subtitles are burned in. In this case, the episode was captured in an analog way, as it was broadcasted, including subtitles. I then encoded it to an h.264 stream in an .mp4 container. Due to my script that I ran, all chapter info form my episodes and movies is removed. The only app that is loaded on my Apple TV when playing episodes in Emby. No other app. Only Emby. The "Chapter 1' looks like it is floating on top of the Emby screen, hence I mentioned it as an OSD. I had movies without any Chapter info (Checked it with Subler for mac). Those movies don't show the chapter OSD. Those who had chapter info embedded did and the result is the same in Emby for Apple TV and Emby for iPadOS. Sare
ebr 16432 Posted May 30 Posted May 30 Then that points again to the Apple player. What if you play the same item in the web app? Still see it?
Saremgm 0 Posted May 31 Author Posted May 31 Luke et al, I found the issue. A long thread can mean two things 1) it's complicated, 2) the other party can't repeat the issue. I opted for option 2. I made a copy of the cleaned version (without chapters) and put a copy back from a backup (with chapters), and tried to play them in Emby and start looking for a setting that I use and you seemingly don't. See the picture below of the SAME episode LEFT is with chapters, RIGHT is without chapters What LEFT has more than RIGHT is: chapters (3) and Dutch dummy subtitles (4). Back in the days when I was using Plex, and in order to make Plex aware that a movie or episode has (burned in) subtitles, I added this Dutch dummy subtitle track (in .srt) to a .mp4 container. The content of this .srt file is shown below: 1 00:00:01,000 --> 00:00:03,000 Burned in Dutch subtitle dummy 2 00:00:03,000 --> 00:00:03,500 Pretty stupid and simple with the only purpose to signal Plex this movie or episode has Dutch subtitles (be it burned in). It worked for many years. Now here is the catch: Our Emby by default is set to prefer any spoken language but Dutch subtitles of a movie or episode. When I want to play an episode and configure the Emby client before playing the episode to use Dutch subtitles, the chapter OSD is shown. If I repeat this but now I turn off Dutch subtitles, the chapter OSD is not shown. When the Emby client is asked to show (embedded) subtitles, it also shows the chapter OSD. To me this sounds like an Emby client issue, at least for i(Pad)OS. I have the files for you to test Luke, but it is a hefty zip of 2GB in size (and I don't use Dropbox or any other cloud drive). Sare
ebr 16432 Posted May 31 Posted May 31 34 minutes ago, Saremgm said: When I want to play an episode and configure the Emby client before playing the episode to use Dutch subtitles, the chapter OSD is shown. If I repeat this but now I turn off Dutch subtitles, the chapter OSD is not shown. When the Emby client is asked to show (embedded) subtitles, it also shows the chapter OSD. To me this sounds like an Emby client issue, at least for i(Pad)OS. That sounds to me like the subtitle track is the chapter display you are seeing...
Luke 42530 Posted May 31 Posted May 31 Yup, it's probably either in that subtitle track, or that text track.
Saremgm 0 Posted 56 minutes ago Author Posted 56 minutes ago Luke et al, Can I have your thoughts on my findings please. I really think something funny is going on the the Emby client since my movies played without any issue in Plex and do not in Emby. My summary so far in a few words. Issue: The Emby client for i(Pad)OS/tvOS shows subtitles and chapter information as expected depends on the type of the chapter track. Check it yourself: For an .mp4 container containing audio, video, subtitle(s), and chapter tracks: (WRONG) When the chapter track in an .mp4 container is of type 'Tx3g', the chapter track is considered to be a chapter track AND subtitle track ignoring subtitle language including any other subtitle tracks (but chapter information shows correctly when tapping on 'chapter' in the OSD menu). (CORRECT) If that same chapter track in the same .mp4 container is of type 'Text', the chapter track is considered to be a chapter track (and chapter information shows correctly when tapping on 'chapter' in the OSD menu), and also the subtitle track is considered a subtitle track with respect to the assigned subtitle language. Described behavior is the same for Emby for Apple TV and i(Pad)OS. This .mp4 movie played without any issues in Plex. Subtitle and chapter data did show correctly also in Plex. --- What I did to discover Tx3g/Text chapter track issue I use Subler v1.9.1 from https://subler.org/ to look into an .mp4 container and import/export tracks. I just picked a random movie from my movie archive. The one I picked is one hour and 19 minutes long (original filename and extension: 'Jane Doe - Yes, I Remember It Well (2006) {imdb-tt0472269}.mp4'). It has Dutch subtitles burned in (the movie was recorded long ago from Public TV and converted from VHS cassette to an .mp4 movie). For the sake of simplicity during this test, I renamed it to test.mp4 Below a screenshot of how this movie is presented in Emby for iPadOS. ## The chapter track and Dummy subtitle track To signal Plex and Emby (Dutch) subtitles are already present, I created a very simple file 'Burned-in Dutch Subtitle Dummy.nl.srt' that I import with Subler into the .mp4 container. After imported, this track is called 'Subtitle Track', is assigned 'Dutch' in Subler and Subler shows this imported track as format 'Tx3g'.The contents of the 'Burned-in Dutch Subtitle Dummy.nl.srt' is just text and shown below between "": "1 00:00:01,000 --> 00:00:03,000 Burned in Dutch subtitle dummy 2 00:00:03,000 --> 00:00:03,500 " The chapter track was automatically created when digitizing this movie by Elgato Turbo h.264 USB hardware encoding dongle. To convert the chapter data from Tx3g to Text, I did this: Export the chapter track in Subler by selecting the chapter track via File > Export to file test.3.und.txt, Delete the existing chapter track, Import the exported chapter track into the .mp4 container in Subler, Save the .mp4 file. The contents of the exported chapter file 'test.3.und.txt' is shown below between "". "CHAPTER00=00:00:00.000 CHAPTER00NAME=Chapter 1 CHAPTER01=00:22:55.151 CHAPTER01NAME=Chapter 2 CHAPTER02=00:41:18.504 CHAPTER02NAME=Chapter 3 CHAPTER03=00:58:36.457 CHAPTER03NAME=Chapter 4 CHAPTER04=01:19:28.649 CHAPTER04NAME=Chapter 5 " Just to make things less complex, I saved the modified movie file and renamed it back to the original name 'Jane Doe - Yes, I Remember It Well (2006) {imdb-tt0472269}.mp4' before copying it to the Emby movie directory. But I noticed that Subler is dong some magic on its own. I installed MP4Box via brew install gpac. When I export the chapter track info via MP4Box -dump-chap 'path/to/movie/moviename.mp4' I get two different .ttxt files The chapter data contents extracted from the original movie with Tx3g chapter data "<?xml version="1.0" encoding="UTF-8" ?> <!-- GPAC 3GPP Text Stream --> <TextStream version="1.1"> <TextStreamHeader width="0" height="0" layer="0" translation_x="0" translation_y="0"> <TextSampleDescription horizontalJustification="left" verticalJustification="bottom" backColor="0 0 0 ff" verticalText="no" fillTextRegion="no" continuousKaraoke="no" scroll="None"> <FontTable> <FontTableEntry fontName="Helvetica" fontID="1"/> </FontTable> <TextBox top="0" left="0" bottom="0" right="0"/> <Style styles="Normal" fontID="1" fontSize="13" color="ff ff ff ff"/> </TextSampleDescription> </TextStreamHeader> <TextSample sampleTime="00:00:00.000" sampleDescriptionIndex="1" xml:space="preserve">Chapter 1</TextSample> <TextSample sampleTime="00:22:55.151" sampleDescriptionIndex="1" xml:space="preserve">Chapter 2</TextSample> <TextSample sampleTime="00:41:18.505" sampleDescriptionIndex="1" xml:space="preserve">Chapter 3</TextSample> <TextSample sampleTime="00:58:36.459" sampleDescriptionIndex="1" xml:space="preserve">Chapter 4</TextSample> <TextSample sampleTime="01:19:28.651" sampleDescriptionIndex="1" xml:space="preserve">Chapter 5</TextSample> </TextStream> " The chapter data contents extracted from the modified movie with Text chapter data "<?xml version="1.0" encoding="UTF-8" ?> <!-- GPAC 3GPP Text Stream --> <TextStream version="1.1"> <TextStreamHeader width="0" height="0" layer="0" translation_x="0" translation_y="0"> <TextSampleDescription horizontalJustification="center" backColor="0 0 0" scroll="None"> <TextBox top="0" left="0" bottom="0" right="0"/> </TextSampleDescription> </TextStreamHeader> <TextSample sampleTime="00:00:00.000" sampleDescriptionIndex="1" xml:space="preserve">Chapter 1</TextSample> <TextSample sampleTime="00:22:55.151" sampleDescriptionIndex="1" xml:space="preserve">Chapter 2</TextSample> <TextSample sampleTime="00:41:18.504" sampleDescriptionIndex="1" xml:space="preserve">Chapter 3</TextSample> <TextSample sampleTime="00:58:36.457" sampleDescriptionIndex="1" xml:space="preserve">Chapter 4</TextSample> <TextSample sampleTime="01:19:28.649" sampleDescriptionIndex="1" xml:space="preserve">Chapter 5</TextSample> </TextStream> " The modified version differs form the original version in that the <TextStreamHeader> is smaller. It does not contain <FontTable> and <Style> sections. ## The screenshots ALL Screenshots below are shown in pairs: - Left side: the original .mp4 with Tx3g chapter data. - Right side: the modified .mp4 with Text chapter data. Screenshot of both .mp4 in Subler before and after modification. During my tests, I also tried to set the language of the chapter track, for instance to Japanese in the hope it would not show. Unfortunately, that did not have any impact. The time sensitive chapter data kept showing up as a subtitle. Below a sreenshot when the movie starts playing from the beginning. Expected behavior: Subtitle track shows "Burned in Dutch subtitle dummy" at the first 3 seconds at the beginning of the movie. Time sensitive content of chapter ("Chapter 1") track is NOT shown. Left side: WRONG, Right side (GOOD) Screenshot of the chapter info when playing the movie. Left side (WRONG): chapter data has format Tx3g Emby client considers chapter track both as chapter AND subtitle track, regardless of what subtitle languages is set as preference while ignoring displaying the real subtitle track. Right side (GOOD): chapter data has format Text When the chapter data has format Text Emby client recognizes the chapter track as chapter track and contents of the separate Dutch subtitle track is shown as expected. No matter the type of the chapter track, the Emby client shows correctly the different chapters via the OSD menu Can you figure out what is causing this issue in the source code of the Emby client (and please fix it)? Thanks Sare
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now