Jump to content

Emby for Android requests


heula

Recommended Posts

heula

For now I'm at Emby for Android version 3.3.01 and I would like to see and use the following parts of the app.

Photos

- On Emby for Android (Shield TV) there is no option for the screensaver, I could not find it. It would be nice to have a screensaver that shows photos from my photo collection with tag/label or optional other info displayed in them.

 

Audio

- If two audio streams are available in a video, I don't see an option to set the desired stream as default. I mean when the audio options are 2.0 or 5.1. My recorded TV video files usually contain these two audio streams and 2.0 is the one that will play. I couldn't find a setting that allows me to set 5.1 or multichannel as the default.

 

Subtitles

- I see there is only one language to select when searching for subtitles. It would be nice to have the option to select two languages like in Kodi, I can select English and Dutch and search will look for both languages.

- When searching for subtitles, pause the playing video ( optional yes/no)

- When a remote is programmed with the keymap for subtitles and I use the button the subtitle changes but I do not see what subtitle is selected. A little pop-up with the selected language would be more than welcome.

 

Keymap for programming remote control buttons

- A keymap option for subtitle search would also be nice. I use Flirc USB to program multiple buttons on my remote for all kind of things but I miss the option for subtitle search and delete (watched) episodes or movies.

I tried the delete button on my keyboard and that worked but after programming it to my remote I need to press the button twice to get the popup to delete the episode or movie.

- A good working delete (last episode or played movie) keymap

- A keymap option for syncing subtitles -/+ (offset)

- A keymap option for syncing audio -/+ (offset)

 

Theme options (Horizontal or Vertical)

- It would be nice if we can have some more adjustable options where we can set all the available tiles in a theme? Like in Kodi I could create all kind of things and set the tiles where ever I wanted them with the option skin settings.

 

Thanks

Edited by heula
Link to comment
Share on other sites

Quote

Audio

- If two audio streams are available in a video, I don't see an option to set the desired stream as default. I mean when the audio options are 2.0 or 5.1. My recorded TV video files usually contain these two audio streams and 2.0 is the one that will play. I couldn't find a setting that allows me to set 5.1 or multichannel as the default.

Hi, I would try setting your preferred audio language in emby user settings.

Link to comment
Share on other sites

heula
14 hours ago, Luke said:

Hi, I would try setting your preferred audio language in emby user settings.

Hi @Lukeit's not the prefered language but the available audio streams.

Like this example I have two options. Dutch 2.0 and Dutch 5.1. By default 2.0 is selected where I would like 5.1 to be default. That is not a setting I can find.

 

2023-05-03 22.18.24.jpg

Link to comment
Share on other sites

rbjtech
1 hour ago, heula said:

Hi @Lukeit's not the prefered language but the available audio streams.

Like this example I have two options. Dutch 2.0 and Dutch 5.1. By default 2.0 is selected where I would like 5.1 to be default. That is not a setting I can find.

 

2023-05-03 22.18.24.jpg

Bacsuse both languages are the same, the Default will be set in the source file (use MediaInfo to check) but this can be overwritten and saved with the 'user' next time they play it.

If you always want the default to be the other track, then you'll need to edit the source file and set the 'Default' flag to the other track.  You use freely available tools on the internet (such as mkvtoolnix if it's an MKV file) to do this.

 

 

  • Agree 1
Link to comment
Share on other sites

heula
16 minutes ago, rbjtech said:

Bacsuse both languages are the same, the Default will be set in the source file (use MediaInfo to check) but this can be overwritten and saved with the 'user' next time they play it.

If you always want the default to be the other track, then you'll need to edit the source file and set the 'Default' flag to the other track.  You use freely available tools on the internet (such as mkvtoolnix if it's an MKV file) to do this.

 

 

It is a pity that there is no other option than to have to adjust everything in the source. That is not an option for me. I know how that works, but I'm not going to start all that. I do switch audio tracks with the programmed button on my remote control.

Link to comment
Share on other sites

Spaceboy
4 hours ago, heula said:

It is a pity that there is no other option than to have to adjust everything in the source. That is not an option for me. I know how that works, but I'm not going to start all that. I do switch audio tracks with the programmed button on my remote control.

you may be able to use tdarr to do that automatically. at work so i can't check my instance but its worth looking at

  • Like 1
Link to comment
Share on other sites

rbjtech

I personally think this is a 'per device' setting - not a 'per user or preference' setting.

If the TV only has two speakers - then you are actually adding complications into the playback by now potentially swapping to a multi-channel track.  For example it may be unplayable if an AAC 5.1 or AAC 7.1 for example.

If the 'device' is set to overwrite the 'Default' (whatever it may be) then it's up to the Admin user to make sure they are compatible and work before setting them.  Browser 'devices'  probably can't have this preference set.

This setting/preference is then applied for all users on that device - ie all users then get the best sound possible without having to select anything.

Link to comment
Share on other sites

heula
1 hour ago, Spaceboy said:

you may be able to use tdarr to do that automatically. at work so i can't check my instance but its worth looking at

I will take a look at it. 

Thanks

Link to comment
Share on other sites

jaycedk

If you want to use Tdarr.

You can use this plugin to reorder your streams.

Tdarr_Plugin_00td_action_re_order_all_streams_v2

It will reorder your streams like you want them.

image.thumb.png.ba50d3072efe4880367a56a29ae0df14.png

  • Like 1
Link to comment
Share on other sites

rbjtech

Does this remux the streams or just edit the headers do you know ?

  • Like 1
Link to comment
Share on other sites

rbjtech
11 hours ago, Spaceboy said:

from the mouth of the horse

image.thumb.png.af5eb9a8a8f6c733a3297dd9d43308e0.png

ok thanks - so that's good if it's a case of inserting/deleting streams (as you can't just change the 'order' in this scenario) but for changing the 'Default' on existing streams, then this is way overkill.  For MKV, then mkvpropedit can just change the headers without needing to Remux.   Not sure about MP4, but possibly something MP4Box could do.

  • Agree 1
Link to comment
Share on other sites

Spaceboy
11 hours ago, rbjtech said:

ok thanks - so that's good if it's a case of inserting/deleting streams (as you can't just change the 'order' in this scenario) but for changing the 'Default' on existing streams, then this is way overkill.  For MKV, then mkvpropedit can just change the headers without needing to Remux.   Not sure about MP4, but possibly something MP4Box could do.

its overkill in terms of time taken, but i'd still do it because its set and forget and i don't have time or inclination for this sort of stuff :) . depends what your personal drivers are

  • Agree 1
Link to comment
Share on other sites

  • 5 weeks later...
MRobi
On 04/05/2023 at 13:34, jaycedk said:

image.thumb.png.ba50d3072efe4880367a56a29ae0df14.png

I've found that just by re-ordering the streams it didn't work. You also need to tag the surround track as default. I use these 2 to re-order the streams from 7.1 down to 2 and then set the channel of your choice as default for audio (6 = 5.1).

image.thumb.png.07e0e8f412af518130c95297484fd868.png

The Migz Order Streams Reverse isn't in the plugins library. A local plugin needed to be created for this.

function details() {
    return {
        id: "Tdarr_Plugin_MC93_Migz6OrderStreamsReverse",
        Stage: "Pre-processing",
        Name: "Migz-Order Streams Reverse",
        Type: "Streams",
        Operation: "Order",
        Description: `Orders streams into Video first, then Audio (8ch, 6ch, 2ch) and finally Subtitles. \n\n`,
        Version: "1.1",
        Link: "https://github.com/HaveAGitGat/Tdarr_Plugins/blob/master/Community/Tdarr_Plugin_MC93_Migz6OrderStreams.js",
        Tags: 'pre-processing,ffmpeg,'
    }
}

function plugin(file) {
    var response = {
        processFile: false,
        preset: '',
        container: '.' + file.container,
        handBrakeMode: false,
        FFmpegMode: true,
        infoLog: '',
    }

    // Set up required variables.
    var ffmpegCommandInsert = ''
    var videoIdx = 0
    var audioIdx = 0
    var audio2Idx = 0
    var audio6Idx = 0
    var audio8Idx = 0
    var subtitleIdx = 0
    var convert = false

    // Go through each stream in the file.
    for (var i = 0; i < file.ffProbeData.streams.length; i++) {
        try {
			// Check if stream is video.
            if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "video") {
				// Check if audioIdx or subtitleIdx do NOT equal 0, if they do then it means a audio or subtitle track has already appeared before the video track so file needs to be organized.
                if (audioIdx != "0" || subtitleIdx != "0") {
                    convert = true
                    response.infoLog += "☒ Video not first. \n"
                }
				// Increment videoIdx.
                videoIdx++
            }

            // Check if stream is audio.
            if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "audio") {
				// Check if subtitleIdx does NOT equal 0, if it does then it means a subtitle track has already appeared before an audio track so file needs to be organized.
                if (subtitleIdx != "0") {
                    convert = true
                    response.infoLog += "☒ Audio not second. \n"
                }
				// Increment audioIdx.
                audioIdx++
				
				// Check if audio track is 8 channel.
                if (file.ffProbeData.streams[i].channels == "8") {
					// Check if audio6Idx or audio2Idx do NOT equal 0, if they do then it means a 6 channel or 2 channel audio track has already appeared before the 8 channel audio track so file needs to be organized.
                    if (audio6Idx != "0" || audio2Idx != "0") {
                        convert = true
                        response.infoLog += "☒ Audio 8ch not first. \n"
                    }
					// Increment audio8Idx.
                    audio8Idx++
                }
				// Check if audio track is 6 channel.
                if (file.ffProbeData.streams[i].channels == "6") {
					// Check if audio2Idx does NOT equal 0, if it does then it means a 2 channel audio track has already appeared before the 6 channel audio track so file needs to be organized.
                    if (audio2Idx != "0") {
                        convert = true
                        response.infoLog += "☒ Audio 6ch not second. \n"
                    }
					// Increment audio6Idx.
                    audio6Idx++
                }
				
				// Check if audio track is 2 channel.
                if (file.ffProbeData.streams[i].channels == "2") {
					// Increment audio2Idx.
                    audio2Idx++
                }
            }

            // Check if stream is subtitle.
            if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "subtitle") {
				// Increment subtitleIdx
                subtitleIdx++
            }
        } catch (err) {}
    }

    // Go through each stream in the file.
    for (var i = 0; i < file.ffProbeData.streams.length; i++) {
        try {
			// Check if stream is video AND is not a mjpeg.
            if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "video" && file.ffProbeData.streams[i].codec_name.toLowerCase() != "mjpeg") {
                ffmpegCommandInsert += `-map 0:${i} `
            }
        } catch (err) {}
    }

    // Go through each stream in the file.
    for (var i = 0; i < file.ffProbeData.streams.length; i++) {
        try {
			// Check if stream is audio AND 8 channel.
            if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "audio" && file.ffProbeData.streams[i].channels == "8") {
                ffmpegCommandInsert += `-map 0:${i} `
            }
        } catch (err) {}
    }

    // Go through each stream in the file.
    for (var i = 0; i < file.ffProbeData.streams.length; i++) {
        try {
			// Check if stream is audio AND 6 channel.
            if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "audio" && file.ffProbeData.streams[i].channels == "6") {
                ffmpegCommandInsert += `-map 0:${i} `
            }
        } catch (err) {}
    }

    // Go through each stream in the file.
    for (var i = 0; i < file.ffProbeData.streams.length; i++) {
        try {
			// Check if stream is audio AND 2 channel.
            if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "audio" && file.ffProbeData.streams[i].channels == "2") {
                ffmpegCommandInsert += `-map 0:${i} `
            }
        } catch (err) {}
    }

    // Go through each stream in the file.
    for (var i = 0; i < file.ffProbeData.streams.length; i++) {
        try {
			// Check if stream is audio AND not 2, 6 or 8 channel.
            if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "audio" && file.ffProbeData.streams[i].channels != "2" && file.ffProbeData.streams[i].channels != "6" && file.ffProbeData.streams[i].channels != "8") {
                ffmpegCommandInsert += `-map 0:${i} `
            }
        } catch (err) {}
    }

    // Go through each stream in the file.
    for (var i = 0; i < file.ffProbeData.streams.length; i++) {
        try {
			// Check if stream is subtitle.
            if (file.ffProbeData.streams[i].codec_type.toLowerCase() == "subtitle") {
                ffmpegCommandInsert += `-map 0:${i} `
            }
        } catch (err) {}
    }

    // Convert file if convert variable is set to true.
    if (convert == true) {
        response.processFile = true;
        response.preset = `,${ffmpegCommandInsert} -c copy -max_muxing_queue_size 4096`
        response.reQueueAfter = true;
        response.infoLog += "☒ Streams are out of order, reorganizing streams. Video, Audio, Subtitles. \n"
    } else {
        response.infoLog += "☑ Streams are in expected order. \n "
        response.processFile = false;
    }
    return response

}
module.exports.details = details;
module.exports.plugin = plugin;

While this solution does work, and is automated, it may be out of the reach of many users. It took around a month to process my entire library with 5 workers running at once. And this was just processing audio since video was already done on the first pass. 

  • Like 1
Link to comment
Share on other sites

  • 1 month later...
heula

Never had any answers or reactions to these reother request besides the audio.

 

Photos

- On Emby for Android (Shield TV) there is no option for the screensaver, I could not find it. It would be nice to have a screensaver that shows photos from my photo collection with tag/label or optional other info (like date taken, location) displayed in them.

 

Subtitles

- I see there is only one language to select when searching for subtitles. It would be nice to have the option to select two languages like in Kodi, I can select English and Dutch and search will look for both languages.

- When searching for subtitles, pause the playing video ( optional yes/no)

- When a remote is programmed with the keymap for subtitles and I use the button the subtitle changes but I do not see what subtitle is selected. A little pop-up with the selected language would be more than welcome.

 

Keymap for programming remote control buttons

- A keymap option for subtitle search would also be nice. I use Flirc USB to program multiple buttons on my remote for all kind of things but I miss the option for subtitle search and delete (watched) episodes or movies.

I tried the delete button on my keyboard and that worked but after programming it to my remote I need to press the button twice to get the popup to delete the episode or movie.

- A good working delete (last episode or played movie) keymap - this  is working correctly now but everytime I delete the last played file I end up to a prevoius screen and not in the screen where I can go on with the next episode. This should only be the case when the last episode existing was deleted

- A keymap option for syncing subtitles -/+ (offset) (in a small bar on top of thye screen and not in the middle of the screen)

- A keymap option for syncing audio -/+ (offset)

 

Theme options (Horizontal or Vertical)

- It would be nice if we can have some more adjustable options where we can set all the available tiles in a theme? Like in Kodi I could create all kind of things and set the tiles where ever I wanted them with the option skin settings.

 

Thanks

Link to comment
Share on other sites

9 hours ago, heula said:

Never had any answers or reactions to these reother request besides the audio.

Hi.  It becomes impossible to track interest in feature requests that pile several different things into them so we ask that you create individual requests for individual features.  However, some of your requests also already exist so you can contribute to those:

 

  • Thanks 1
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...