Jump to content

Audio transcoding to Dolby doesn't work, output is just ACC although "Enable AAC Transcoding to Dolby" is set true


vdatanet

Recommended Posts

vdatanet

Hi,

 

I'm having problems transcoding Dolby Digital audio. When "Direct Playing" audio stream is dolby digital (original) and receiver can decode it. But when audio is transcoding, my receiver can't decode stream (afraik doesn't support AAC)

 

My settings are:

 

Enable Dolby Digital Playback: true

Enable DTS Playback: true

Enable AAC Transcoding to Dolby: true

 

But output is still AAC and my receiver can't decode it.

 

What I'm missing?

 

Thanks

 

 

Link to comment
Share on other sites

FrostByte

Your settings look good.   Can you please provide the information asked for in the reporting issue thread?  Model, Samsung logs, app version, etc

Link to comment
Share on other sites

vdatanet

Hi,

 

Samsung App Version: 1.0.5

Emby Server Version: 3.0.5812.0

Samsung Device: Blu ray player BD-F6500, TV UE40H5500

 

Thanks

Edited by vdatanet
Link to comment
Share on other sites

FrostByte

Could you also post a pic of the relevant area of your Samsung log from your tv?  You can get that from Settings and then scroll up to Logs.  You should be able to see where it opens inputs media file and then makes decisions to transcode or direct play based on file and settings.  Thanks

Link to comment
Share on other sites

vdatanet

Hi,

 

Here's the log.

 

Thanks

Edited by vdatanet
Link to comment
Share on other sites

Here's the relevant code...

 

 var convertAACtoDolby = (File.getTVProperty("Dolby") && File.getTVProperty("AACtoDolby") && audioCodec == "aac") ? true : false;
 audioCodec = (convertAACtoDolby) ? "ac3" : "aac";

 

So the codec is only switched from aac to ac3 if it starts off as aac. But in your screen shot, the audio codec says dca so no change would be made in this case I think.

  • Like 1
Link to comment
Share on other sites

FrostByte

True, the file in the pic contains DTS and not AAC

 

@vdatanet  can you post the information from that log above line 242 starting with the Video Analysis?  I'm looking for something that says compatibility is false.  Also, can you post a pic of the Media Info for that file from the webclient

 

@@cmcg I sent you a PM

Edited by FrostByte
Link to comment
Share on other sites

vdatanet

Hi,

 

I've limited bandwich to 4 Mbps, so video and audio is transcoded. If I limit bandwich to 20 Mbps, movie isn't transcoded, so audio output is (ac3 or dts), but if audio is transcoded, output is AAC and I would like AC3 or DTS, because my receiver doesn't support AAC. Can I only transcode video and use original audio?

 

Sorry for my bad english.

  • Like 1
Link to comment
Share on other sites

FrostByte

Thanks, that actually helps a lot.  The bandwidth limit does explain why it's being transcoded even though everything in the file seems compatible.  Hopefully cmcg can sort it out so that it transcodes to a format that is compatible with your settings

Link to comment
Share on other sites

vdatanet

Hi,


 


I think this settings hasn't effect:


 


Enable Dolby Digital Playback


Enable DTS Playback


Enable AAC Transcoding to Dolby


 


If Enable Dolby Digital Playback = false, transcoded audio should be AAC Stereo? If transcoded is required, audio always is transcoded to AAC with original numbers of channels:


 


AC3 Stereo -> AAC Stereo


AC3 5.1 -> AAC 5.1


DTS 5.1 -> AAC DTS


 


Is that true?


 


Thanks


Link to comment
Share on other sites

FrostByte

Yes, it appears the app will always transcode to AAC except in the case where the original file started with AAC and you tell it to transcode to AC3.  My guess is that the app will need to check that one setting and if you tell the app to transcode AAC inputted files then it should also transcode to something else everywhere else too.  Cmcg will need to confirm that though, just my guess based on what you've described

Link to comment
Share on other sites

There are 2 scenarios missing. The default audio codec (the codec you start with if nothing else is useful), should allow you to change to ac3/dolby. The unknown audio codec (livetv mainly) should also let you change to ac3/dolby. Shouldnt there also be an DTS->AC3 option, or do all samsung devices support both? I only say this because this is the way I cover all bases in the rokus blue neon app when users had same issues.

 

Sent from my Nexus 7 using Tapatalk

  • Like 1
Link to comment
Share on other sites

FrostByte

I think all Samsung TVs support all three (AAC, DTS, and AC3 --- along with other codecs) but some of the added sound bars and third party receivers we are finding do not support everything the tv itself does so that's why the additional user options are there.   Not sure about all devices, but it almost seems that every receiver and sound bar at least supports AC3.  It's AAC and DTS that it seems not all devices support in my experience.  Maybe make the default AC3, or a user option to choose which of the two you want your default audio codec to be if it needs to transcode (DTS is probably out as a default for obvious reasons)

Link to comment
Share on other sites

CBers

If you don't trancsode AAC, does your TV allow you to change the Sound to Dolby still ??

 

I've found that when I Direct Stream a video with Dolby in an AAC container, then the TV doesn't detect it unless I manually change it.

Link to comment
Share on other sites

FrostByte

If I'm understanding it, the OP's problem was that their files transcode a lot because user settings for bandwidth are set very low at 4 Mbps and the app is always transcoding the files to AAC and their receiver won't play AAC files

  • Like 1
Link to comment
Share on other sites

No, I don't think that's quite it. OP set the bandwidth low to force it to transcode because that's the only time the "Enable AAC Transcoding to Dolby" settings is working for him. See the code I previously posted...

 

Here's the relevant code...

 

 var convertAACtoDolby = (File.getTVProperty("Dolby") && File.getTVProperty("AACtoDolby") && audioCodec == "aac") ? true : false;
 audioCodec = (convertAACtoDolby) ? "ac3" : "aac";

 

@@vdatanet 's screenshot shows that his audio codec is reported as dca (line 245). So the result of the first line above will set convertAACtoDolby false because all three conditions need to be true, but audioCodec == "aac" is not true.

Therefore the second line above sets audioCodec to aac.

That's why the screenshot says it has a dca codec one minute (line 245) but then requests the stream from the server with audioCodec=aac (line 249). 

 

It seem slightly perverse that if you have aac it is correctly converted to ac3 but if you have anything else it gets converted to aac.

 

I need to understand more before making any change.

  • Like 2
Link to comment
Share on other sites

chessdragon136

I knew this setting would come and bite me in the arse. I'll have to go through my notes but I think the original request for this setting was one thing and then the expectation was another. 

 

Ok I think my mistake is the third line in this block (53) which would make all codecs either ac3 or aac and completely ignore what the original codec was, and as this happened after the video & audio compatibility checks it no doubt caused some messes!!! 

 

Original

var audioCodec = this.MediaSource.MediaStreams[this.audioIndex].Codec.toLowerCase();

var convertAACtoDolby = (File.getTVProperty("Dolby") && File.getTVProperty("AACtoDolby") && audioCodec == "aac") ? true : false;
	
audioCodec = (convertAACtoDolby) ? "ac3" : "aac";

Corrected? (Not complete but the gist of it - @@cmcg if you can make a dev branch for me i can implement properly as this may need some other changes - You were essentially correct :))

//If audiocheck failed convert to AAC OR AC3 depending on setting
//If audiocheck ok convert to AAC or dont convert & leave as original codec

var audioCodec = "aac"; //Catch all, supported by all tv's (?)
var convertAACtoDolby = (File.getTVProperty("Dolby") && File.getTVProperty("AACtoDolby") && audioCodec == "aac") ? true : false;
if (this.isAudio == false) {
   audioCodec = (File.getTVProperty("Dolby") && File.getTVProperty("AACtoDolby") && audioCodec == "aac") ? "ac3" : "aac";
} else {
   audioCodec = (File.getTVProperty("Dolby") && File.getTVProperty("AACtoDolby") && audioCodec == "aac") ? "ac3" : this.MediaSource.MediaStreams[this.audioIndex].Codec.toLowerCase();
}
Edited by chessdragon136
  • Like 1
Link to comment
Share on other sites

chessdragon136

If I'm understanding it, the OP's problem was that their files transcode a lot because user settings for bandwidth are set very low at 4 Mbps and the app is always transcoding the files to AAC and their receiver won't play AAC files

 

+10 points

  • Like 1
Link to comment
Share on other sites

chessdragon136

Should add that we probably need a AAC to DTS function where only one or the other is true at any point and thus convert to which is true (ac3 or DTS) in the above

Link to comment
Share on other sites

FrostByte

Can you encode anything to DTS without purchasing an encoder?  I have Surcode, but wasn't aware you could encode to DTS for free.

Link to comment
Share on other sites

chessdragon136

No idea what the server capabilities are and how the licencing works. AC3 is now a paid codec too hence the lack of decent apple app devices that support dolby anymore - maybe you cant! 

Link to comment
Share on other sites

FrostByte

Hmm, well hopefully you can do at least AC3 still.  Otherwise you might as well just leave the code as is :)

Link to comment
Share on other sites

chessdragon136

Yeah I think the licence is for playback not conversion / creation come to think of it - No doubt Samsung pay Dolby and co for it all and the server can transcode to those formats

Link to comment
Share on other sites

FrostByte

Emby is still transcoding my DTS audio to AC3 in the Win10 app, and thought it was mentioned the Roku app also transcodes to AC3

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...