Jump to content

Amazon Fire TV (Beta or official) Playback problem - defaults to Direct/V


Teknologist

Recommended Posts

Teknologist

Android Fire TV (Not stick)

 

ATV version: 1.3.28a Registered (Both Beta and release versions do this)

Server version: 3.2.7.0 on Windows Server 2012 R2

 

I'm not sure if its the format of my Videos all of which are the same type, MP4, aac. I can provide more of the encoding specs if required.

 

However if I select the Tools icon while during playback and select Playback correction it switches to Direct/I and plays perfectly.

 

This is true of EVERY video in my collection.

 

Is there a way to change the default to Direct/I instead of V?

 

What is the difference between the two modes?

 

Can it be made to autodetect the correct playback mode?

Let me know what additional information or logs needed.

 

One of the previous beta versions did not have this issue.

 

My wife has given up on using this. I can't continue to support if she isn't happy.

 

Link to comment
Share on other sites

maegibbons

Hi

 

Direct/V means it is trying to use the "V"LC libraries.

 

Direct/I means that it is trying to use the "I"nternal Player

 

In terms of the choice logic that is down to @@ebr, the developer, based on the media.

 

Whilst not ideal, you may be able to get it to Transcode by rediucing the Quality setting (bitrate) within the app.

 

To get @@ebr to look further at this you will need to give details of the media as displayed in the web app and provide logs from the Fire/ATV app and server.

 

There are instructions for how to do this here -> https://emby.media/community/index.php?/topic/739-how-to-report-a-problem/&do=findComment&comment=22408

 

Krs

 

Mark

Edited by maegibbons
Link to comment
Share on other sites

Teknologist

Thank you for that info.

I don't want it to transcode, Direct/I (Internal) playback works perfectly. Bandwidth is not the issue here.

 

What I want is for it to not default to Direct/V which doesn't work at all for me.

 

I don't have an external player selected, why is it trying to use VLC?

 

I even uninstalled the VLC app although I shouldn't have to.

 

I just want it to always use Direct/I. Or work as expected...

 

I used the app to send the logs. Only one user and one media file was accessed. Should be easy enough to get from the logs.

I saved the current server log separately so it is available if he needs it. I will need to parse and clean it prior to uploading it unless I can send it directly to him.

 

I took in the log myself and see a number of exceptions, not sure if they are related though: They do appear to only show in the log from when I tried to view a video.

2017-03-24 17:48:34.2283 Info HttpServer: HTTP GET http://emby.mydomain.com:8096/emby/Users/71a70f15dde6435ba918d691297d26b6/Items/fd79a56d91990cbb2c15ae653ab1979a?format=json. UserAgent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; AFTS Build/LVY48F)
2017-03-24 17:48:34.2439 Info HttpServer: HTTP Response 200 to 192.168.0.150. Time: 16ms. http://emby.mydomain.com:8096/emby/Users/71a70f15dde6435ba918d691297d26b6/Items/fd79a56d91990cbb2c15ae653ab1979a?format=json
2017-03-24 17:48:35.0564 Error HttpServer: Error processing request
 *** Error Report ***
 Version: 3.2.7.0
 Command line: C:\Users\administrator\AppData\Roaming\Emby-Server\System\MediaBrowser.ServerApplication.exe
 Operating system: Microsoft Windows NT 6.2.9200.0
 64-Bit OS: True
 64-Bit Process: True
 Processor count: 4
 Program data path: C:\Users\administrator\AppData\Roaming\Emby-Server
 Application directory: C:\Users\administrator\AppData\Roaming\Emby-Server\System
 System.IO.IOException: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
    at System.Net.Sockets.Socket.EndSend(IAsyncResult asyncResult)
    at System.Net.Sockets.NetworkStream.EndWrite(IAsyncResult asyncResult)
    --- End of inner exception stack trace ---
    at System.Net.Sockets.NetworkStream.EndWrite(IAsyncResult asyncResult)
    at System.IO.Stream.<>c.<BeginEndWriteAsync>b__53_1(Stream stream, IAsyncResult asyncResult)
    at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization)
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at SocketHttpListener.Net.ResponseStream.<WriteAsync>d__25.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at System.IO.Stream.<CopyToAsyncInternal>d__27.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.HttpServer.RangeRequestWriter.<WriteToAsync>d__47.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.Services.ResponseHelper.<WriteToOutputStream>d__0.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.Services.ResponseHelper.<WriteToResponseInternal>d__2.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.Services.ServiceHandler.<ProcessRequestAsync>d__15.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.HttpServer.HttpListenerHost.<RequestHandler>d__74.MoveNext()
 System.IO.IOException
    at System.Net.Sockets.NetworkStream.EndWrite(IAsyncResult asyncResult)
    at System.IO.Stream.<>c.<BeginEndWriteAsync>b__53_1(Stream stream, IAsyncResult asyncResult)
    at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization)
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at SocketHttpListener.Net.ResponseStream.<WriteAsync>d__25.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at System.IO.Stream.<CopyToAsyncInternal>d__27.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.HttpServer.RangeRequestWriter.<WriteToAsync>d__47.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.Services.ResponseHelper.<WriteToOutputStream>d__0.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.Services.ResponseHelper.<WriteToResponseInternal>d__2.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.Services.ServiceHandler.<ProcessRequestAsync>d__15.MoveNext()
 --- End of stack trace from previous location where exception was thrown ---
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
    at Emby.Server.Implementations.HttpServer.HttpListenerHost.<RequestHandler>d__74.MoveNext()
 InnerException: System.Net.Sockets.SocketException
 System.Net.Sockets.SocketException (0x80004005): An existing connection was forcibly closed by the remote host
    at System.Net.Sockets.Socket.EndSend(IAsyncResult asyncResult)
    at System.Net.Sockets.NetworkStream.EndWrite(IAsyncResult asyncResult)
    at System.Net.Sockets.Socket.EndSend(IAsyncResult asyncResult)
    at System.Net.Sockets.NetworkStream.EndWrite(IAsyncResult asyncResult)
  

Full unedited log available upon request.

 

Link to comment
Share on other sites

maegibbons

Hi

 

VLC is a library that the app can choose to use - whilst related it is nothing to do with the VLC app that may or may not be installed seperately.

 

It is good to have choices.  The VLC library actually plays most things very well and in some cases will play media that the internal player will not.

 

Conversly the opposite is true which is what you are running in to here. Internal works but vlc does not - which is why we have the "magic" button!

 

Try not to get your hackles up - these issues are quite common and can usually be resolved when the issue is understood on a per "media issue" basis.

 

I would PM the full server log direct to @@ebr so that he has everything needed to investigate when he has time. A screen shot of the media info from the web app would also be helpful I would suggest.

 

You could also PM him a link to a sample copy of the media you are having issues with or post a link here for others to review.

 

Krs

 

Mark

Edited by maegibbons
Link to comment
Share on other sites

Teknologist

I just realized Debug logging is not enabled on the server.

I can enable it if needed but I suspect this is a client issue not server.

 

Ok, I just tried it on my Samsung Galaxy S7 Edge over Wi-Fi, and I have the exact same issue.

I have to force transcoding if I want it to play smoothly. It constantly Pauses and then continues.  I can watch anything streamed at HD resolution on any other app. I have tons of bandwidth. I just transferred it to my device for local playback, the transfer took... Well I can't tell because there is no progress info..  It just says, "Ready to Transfer". In the past it took no more than 5 to 10 minutes. If I copy it locally it takes less than 2 minutes. Average transfer rate is about 9 - 10 MB/s

 

Also note the Fire TV is connected via Ethernet, NOT Wi-Fi.

The video resolution is only 720p.

Link to comment
Share on other sites

Teknologist

Hi.  You didn't say what the actual problem was when trying to play with VLC...

You are correct. I didn't mention it. Sorry about that... 

However, I did mention that I don't want the Direct/V playback mode by default as it doesn't work for any of the videos in my collection.

 

To clarify: Playback starts and runs for about two or three seconds, then stops for a few seconds. This repeats for as long as I leave it in playback mode.

 

Honestly, I was looking for an easy way to just select the Direct/I mode only. :)

 

Do you need more log info and a screenshot? Feel free to ask me for what exactly what you need. get specific.

Link to comment
Share on other sites

Okay, can you please give me this information from when you sent the log from the app?

 

 

 

  • Exactly what you were doing and what happened.  Include the name of whatever you played if it is a playback problem
  • The time you sent the log
  • The name of the Emby user on the local server that was logged in at the time
Link to comment
Share on other sites

Teknologist
  • Play a movie or video, this issue occurs with any movie or video in my collection. The movie starts in Direct/V mode and plays for a few seconds and then stops as is if was buffering, but as far as I can tell it isn't buffering, There is tons of bandwidth available. I see no network traffic during this pause. Then it plays for a few seconds, then stops again, it repeats this until I stop playback. Only one movie was attempted at that time. It was attempted more than once. The ID of the movie is listed above in my previous comment. The title is: Passengers (2016).mp4. If while playing I press the little tools icon and select playback correction, and press yes, playback switches to Direct/I Mode which works perfectly and I can watch the entire movie without pause or interruption. Manually pausing works fine as well as rewind or fast forward.
  • The log was sent just prior to the post above where I specified that I sent the log via the app: 2017-03-24 at about 6:05 PM EST. I can easily duplicate the issue and send you another log anytime. The server log is also available if needed.
  • The name of the user is Mike. The only user logged in at that time.

Hope this helps :)

 

Thanks!

Link to comment
Share on other sites

Hi.  Would it be possible for you to dropbox me an example media file that exhibits this issue for you?

Link to comment
Share on other sites

Thanks for the sample.

 

VLC hates this video for some reason.  It doesn't throw any errors but it simply cannot play it smoothly.  What is its origin?  How was it encoded?

 

In my first attempt at playback it chose VLC as the player because of the graphic subs that were marked as default. The internal player cannot play these subs but VLC can. Are you trying to display subs?

Link to comment
Share on other sites

If you are not trying to display subs then 1.3.29 should fix this issue for you.

 

However, it is entirely possible that fixing this for you creates problems for others so we will have to watch closely for feedback.

 

Thanks.

Link to comment
Share on other sites

Teknologist

I don't normally use the Subtitles. I'm assuming this is what you meant.  

This was encoded using DVDFab 10's Surface Tablet profile. It's basically the same as the iPad format.

But this happens using any video I have tried in MP4 format. Even older ones that are not using that template.

 

What happens if I try to play the Subs?

Link to comment
Share on other sites

What happens if I try to play the Subs?

 

It is going to try and play it in VLC because, according to the information we have about the video, it should play direct and be able to display your subs.  However, something about these videos makes them unusable with VLC so then you would have to use manual playback correction to force it into the other player.  That, will then cause a transcode in order to burn in the subs.

 

You might try stripping some things out of the container (like the bmp and other metadata that is in there) just to see if that makes a difference.

Link to comment
Share on other sites

Teknologist

It is going to try and play it in VLC because, according to the information we have about the video, it should play direct and be able to display your subs.  However, something about these videos makes them unusable with VLC so then you would have to use manual playback correction to force it into the other player.  That, will then cause a transcode in order to burn in the subs.

 

You might try stripping some things out of the container (like the bmp and other metadata that is in there) just to see if that makes a difference.

 

Do you mean the metadata in the mp4 or in the folder? I don't want to strip the MP4 metadata. The data in the folder was put there by the Emby server.  

 

On the extremely rare occasions that I might want to play the subs, I don't mind if it has to transcode as long as they are readable and it plays smoothly. The server normally handles the transcoding quite well, but Direct is obviously better.

 

On a side note, playing these files on ATV or Android with Emby is the only thing that has an issue playing these files. Plex works perfectly but I don't like the interface. Emby plays it perfectly in all browsers. The files play perfectly on every device I have tried, using the default player on the device, dozens over the years. They even play correctly if I use my smart TV's browser (Chrome v38) on Emby. It's just a nuisance to navigate there.

 

I can't be the only person using Emby with this issue. I suspect there may be others with this issue but they gave up after trying it and it not working for them. Honestly I would have too if hadn't worked initially.

 

When can I expect the 1.3.29 version?

 

Thanks for your patience and help!

Link to comment
Share on other sites

I meant in the .mp4 itself.  Just in case that was throwing off VLC somehow.

 

1.3.29 went out in beta a few hours ago.  You should have received an email from Amazon about it.

Link to comment
Share on other sites

Teknologist

I meant in the .mp4 itself.  Just in case that was throwing off VLC somehow.

 

1.3.29 went out in beta a few hours ago.  You should have received an email from Amazon about it.

 

It took a while for Amazon to get me Version 1.3.29. It didn't become available until later in the evening for me. Not really an issue though. But it does resolve the problem for almost all of my media.

I tested randomly and files derived from the same media types all seems to work fine. This also plays home videos recorded with my various phones without transcoding. Yay! More testing is required to determine if all are working as expected.

 

The only issue I found so far was media from a Blu-Ray encoded using DVDFab, same media format, at a higher quality, would play, but with no Video. It was again defaulted to Direct/V. When I used the playback correction, it switched to Trans/I which worked, albeit at a lower quality than I would prefer. Not sure why it wouldn't play Direct/I. It didn't even seem to try. Bandwidth is not an issue.

 

Why not offer a way to force (choose) Direct/I for either a library or Media type? Or even per Media file? Both would be ideal for those hard to determine scenarios. This way once set it works in the future.

 

Thank you for the quick fix! :D

Link to comment
Share on other sites

The most likely scenario that would cause an item to be direct playable in VLC but not the internal player would again be PGS (or other graphical) subs.

Link to comment
Share on other sites

Teknologist

The most likely scenario that would cause an item to be direct playable in VLC but not the internal player would again be PGS (or other graphical) subs.

 

Did you mean NOT Direct playable in VLC but playable with the Internal?

 

Any possibility of allowing a manual override of VLC vs Internal player for a given media type?

Link to comment
Share on other sites

Did you mean NOT Direct playable in VLC but playable with the Internal?

 

No - VLC can display PGS subs but the internal player cannot.

 

You said it played direct in VLC but transcoded in the internal one.  I'm just guessing without any other information but the subs are the most likely cause for that scenario.

Link to comment
Share on other sites

Teknologist

No - VLC can display PGS subs but the internal player cannot.

 

You said it played direct in VLC but transcoded in the internal one.  I'm just guessing without any other information but the subs are the most likely cause for that scenario.

 

Yes It played Direct/V but with no Video, why would there be no video in Direct/V with or without PGS?

 

These are standard format's I'm using, they play perfectly using any other type of player I have tried on various platforms.

 

I have to be honest, this is somewhat confusing.

Link to comment
Share on other sites

Yes It played Direct/V but with no Video, why would there be no video in Direct/V with or without PGS?

 

There is obviously some sort of issue with these particular videos and VLC.  It has to be something fairly rare related to these videos or we would be seeing this whole lot more from other folks.  If we can ever figure out exactly what it is, then we should be able to work around it but, for now, it should be a very limited impact even for you.

 

One option you have for the items for which you do require subs is to obtain text-based subs for them (Emby has a facility to make this easy) and then you won't have to deal with the problems of PGS.

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